当前位置: 首页 > news >正文

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, QPushButtonapp = 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_())

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

 

http://www.lryc.cn/news/337849.html

相关文章:

  • 蓝桥集训之三国游戏
  • MySQL知识整理
  • 代码随想录算法训练营第36天| 435. 无重叠区间、 763.划分字母区间*、56. 合并区间
  • SpringBoot整合Nacos
  • vue3 浅学
  • 三小时使用鸿蒙OS模仿羊了个羊,附源码
  • 如何使用 ArcGIS Pro 制作热力图
  • SpringBoot之集成Redis
  • mybatis-plus与mybatis同时使用别名问题
  • MySQL基础知识——MySQL日志
  • uniapp 地图分幅网格生成 小程序基于map组件
  • python项目练习——22、人脸识别软件
  • Linux中账号登陆报错access denied
  • python语言之round(num, n)小数四舍五入
  • 安全风险攻击面管理如何提升企业网络弹性?
  • 常用的几款性能测试软件
  • 谷歌google浏览器无法更新Chrome至最新版本怎么办?浏览器Chrome无法更新至最新版本
  • 认识异常(1)
  • C++矩阵
  • 解锁智能未来:用Ollama开启你的本地AI之旅
  • CSS实现卡片在鼠标悬停时突出效果
  • GPT建模与预测实战
  • 传统方法(OpenCV)_车道线识别
  • Git以及Gitlab的快速使用文档
  • MyBatis Interceptor拦截器高级用法
  • Python学习入门(2)——进阶功能
  • 华为改进点
  • 分布式技术---------------消息队列中间件之 Kafka
  • BGP扩展知识总结
  • 华为OD-C卷-按身高和体重排队[100分]