Qt Designer 控件箱中的控件介绍及布局比列分配

控件箱介绍

Qt Designer的控件箱(Widget Box)包含了各种常用的控件,用户可以通过拖放的方式将这些控件添加到窗体设计器中,用于构建用户界面。以下是一些常见控件箱中的控件及其功能的讲解:

1.基本控件

  • 标签(Label):用于显示文本或图像。
  • 按钮(Push Button):用于触发操作或事件。
  • 文本框(Line Edit):用于接受用户输入的单行文本。
  • 文本域(Text Edit):用于接受用户输入的多行文本。

2.容器控件

  • 布局(Layout):用于管理子控件的位置和大小。
  • 组(Group Box):用于将相关控件组合在一起,并提供可选的标题。
  • 栈(Stacked Widget):用于在同一个区域显示多个子窗口,只显示其中一个。

3.选择控件

  • 复选框(Check Box):用于用户勾选或取消选项。
  • 单选按钮(Radio Button):用于从多个互斥选项中选择一个。
  • 下拉框(Combo Box):用于选择一个选项或输入内容。

4.显示控件

  • 进度条(Progress Bar):用于显示操作进度。
  • 滑块(Slider):用于选择一个范围内的值。
  • 表格(Table View):用于显示表格数据。

5.图形控件

  • 画布(Canvas):用于绘制图形或图像。
  • 图表(Chart):用于显示图表数据。

6.其他控件

  • 菜单栏(Menu Bar):用于创建菜单。
  • 工具栏(Tool Bar):用于创建工具栏。
  • 状态栏(Status Bar):用于显示状态信息。

这些控件可以通过拖放的方式添加到窗体设计器中,并通过属性编辑器进行属性设置和布局调整。希望这些控件的介绍对您有帮助!如果有任何问题,请随时询问。

布局比例分配

问题?

复制代码
如果在Qt Designer 设计了两个垂直布局,现在需要将这两个布局合并成一个布局,要求左边的布局占布局的三分之二宽度,右边的布局占用总布局宽度的三分之一,该如何设计呢?

您可以通过在Qt Designer中使用水平布局和嵌套布局来实现左右布局比例的设置。以下是具体的步骤:

1.在Qt Designer中创建一个水平布局(QHBoxLayout)作为整体布局。

2.将两个垂直布局分别添加到水平布局中。

3.对左边的垂直布局设置一个占比为2的拉伸因子,对右边的垂直布局设置一个占比为1的拉伸因子。

这样设置后,左边的布局将占据总布局宽度的三分之二,右边的布局将占据总布局宽度的三分之一。在实际运行程序时,布局会根据窗口大小动态调整布局的宽度比例。

如果需要在代码中实现这个布局,可以在代码中使用布局管理器并设置相应的拉伸因子。以下是一个示例代码:

复制代码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QPushButton

app = QApplication(sys.argv)

# 创建主窗口
window = QWidget()
window.setWindowTitle('Resizable Layout Example')

# 创建水平布局
h_layout = QHBoxLayout()

# 创建左边垂直布局
left_layout = QVBoxLayout()
left_layout.addWidget(QPushButton('Button 1'))
left_layout.addWidget(QPushButton('Button 2'))

# 创建右边垂直布局
right_layout = QVBoxLayout()
right_layout.addWidget(QPushButton('Button 3'))

# 设置拉伸因子
h_layout.addLayout(left_layout, 2)
h_layout.addLayout(right_layout, 1)

# 将水平布局应用到主窗口
window.setLayout(h_layout)

window.show()
sys.exit(app.exec_())

通过以上代码,您可以在程序中实现左右布局按比例分配宽度的效果。您可以根据需要进一步调整布局和添加更多控件。希望这能帮助到您!如果还有其他问题,请随时提问。

相关推荐
疾风铸境2 小时前
qt+halcon开发相机拍照软件步骤
数码相机·qt·halcon·拍照
抠脚学代码3 小时前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
眠りたいです5 小时前
基于脚手架微服务的视频点播系统-播放控制部分
c++·qt·ui·微服务·云原生·架构·播放器
bikong79 小时前
一种高效绘制余晖波形的方法Qt/C++
数据库·c++·qt
追烽少年x11 小时前
QProxyStyle类中drawControl和drawComplexControl函数的区别是什么
qt
长沙红胖子Qt11 小时前
VTK开发笔记(五):示例Cone2,熟悉观察者模式,在Qt窗口中详解复现对应的Demo
qt·观察者模式·vtk·回调
郝学胜-神的一滴12 小时前
基于OpenGL封装摄像机类:视图矩阵与透视矩阵的实现
c++·qt·线性代数·矩阵·游戏引擎·图形渲染
华溢澄17 小时前
macOS下基于Qt/C++的OpenGL开发环境的搭建
c++·qt·macos·opengl
刃神太酷啦17 小时前
C++ 异常处理机制:从基础到实践的全面解析----《Hello C++ Wrold!》(20)--(C/C++)
java·c语言·开发语言·c++·qt·算法·leetcode
枫叶丹417 小时前
【Qt开发】显示类控件(一)-> QLabel
开发语言·qt