正文之前首先说下环境的配置,这个比较闹心,前前后后弄了几天的时间,本来考虑使用eric6+qyqt5来做,结果发现汉化版居然不更新了,配置英文版又出现了python模块加载的问题,考虑是pyqt版本与python不相匹配。又考虑了anaconda+pyqt+eric的方法,还是出现了让人捉急的问题。好在天无绝人之路,发现pycharm也可以做pyqt5的IDE,终于配置成功
过程如下:
参考博文


1.布局管理

qtdesigner,提供了四种布局方式:分别是Vertical Layout(垂直布局),Horizontal Layout(水平布局),
Grid Layout(栅格布局),Form Layout(表单布局)四种布局形式。
Vertical Layout:控件按照从上到下的顺序纵向添加
Horizontal Layout:从左到右横向添加
Grid Layout:将窗口控件放在一个网格之中,然后将他们分为若干行和列,并把其中的每个窗口放在合适单元之中
Form Layout:控件以两列的形式布局在表单中,左列标签,右列输入控件

一般进行布局有两种形式,一是布局管理器进行布局,而是容器控件进行布局

布局管理器布局

简单的说就是先编辑控件,然后选中,使用layout子菜单,将选中的控件以指定的布局方式。
例如

这里使用的就是布局管理器,容易看出使用布局管理器,可以将相干的若干控件,划分为几个类。

容器布局

所谓容器控件,就是指能够容纳子控件的控件。使用容器控件,目的是将容器控件中的控件改为一类,以有别于其他控件。

2.布局相关基本概念以及应用

这里以push Button为例

通过属性管理器查看其属性

介绍几个属性:
geometry:用来设置控件在窗口中的绝对坐标(距离左上角的距离)与控件自身的大小
minimumSize:设置控件在布局管理器的最小属性
maximumSize:设置控件在布局管理器中的最大属性
SizeHint:尺寸提示,窗口控件的的期望尺寸
SizePolicy:如果窗口部件在布局管理器的布局不能满足要求,使用SizePolicy来实现微调
其下主要有水平策略,垂直策略,水平伸展,垂直伸展几种属性
默认如下:

水平策略与垂直策略相关解释如下、
Fixed:窗口控件具有sizeHint所提示的尺寸且尺寸不再改变
miniimum:sizeHint提示的尺寸就是其最小尺寸
maximum:sizeHint提示的尺寸就是其最大尺寸
Preferred:sizeHint提示的尺寸就是其期望尺寸
Expanding:可以比sizeHint提示的尺寸大,也可以比sizeHint提示的尺寸小,但期望更大
MinimumExpanding :可以比sizeHint提示的尺寸大,也可以缩小到Minimum提示的尺寸,但期望更大
Ignored:无视提示尺寸,按照默认设置
水平伸展与垂直伸展
就是设置控件相对伸展比

3.Qt Designer布局的顺序

(1)将控件拖入窗口中并放置在大致位置,一般不需调整窗口大小
(2)对于要用代码引用的控件,指定一个名字,需要微调的控件,可以设置其属性
(3)重复步骤12
(4)如有需要,比如控件之间需保持一定距离,可以用Vertical Spacer, Horizontal Spacer,Vertical Line,Horizontal line 隔开
(5)选择需要布局的窗口控件,使用布局管理器进行布局或切分窗口
(6)重复5,直至窗口控件布局完成
(7)单击窗口,使用布局管理器进行布局
(8)为窗口标签设置伙伴关系。
(9)若按键顺序有问题,设置窗口的tab键顺序
(10)在适当的窗口为内置的信号和槽建立信号与槽连接
(11)预览窗口(CTRL+r)检查是否正常
(12)设置窗口的对象名,窗口的标题进行保存
(13)pyuic生成py代码
(14)编写业务逻辑文件
解释
(7)窗口布局可以使窗口充满,同时对于不合理的布局,可使用breaklayout 打破布局
(8)伙伴:在这个模式下,可以把QLabel跟其它控件连起来。QLabel可以设置快捷键,当按下快捷键后,窗口焦点就移动到与它连接扩控件上
例如
以3为例,首先将3重命名为&3然后使用Edit 栏中的编辑伙伴(Buddy)鼠标左键按住&3不动,右拉到需要关联的对象
需要注意的是,设置伙伴关系只对英文名字的Display Widgets有效
(9)设置tab键顺序(当按下tab键时,光标跳动的顺序),Edit->Edit Tab Order
上图ui文件的一个简单应用(命名很混乱,仅作测试用,无实际含义)

from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow,QApplication
from shizhan1 import Ui_Form #导入转化后的窗口模块
class shizhanDemo(QMainWindow,Ui_Form):def __init__(self, parent=None):# [parent含义](https://www.cnblogs.com/dcb3688/p/4255467.html)super(shizhanDemo,self).__init__(parent)self.setupUi(self)@pyqtSlot()#生成对话框def on_pushButton_clicked(self):#当点击pushButtonprint("1_min:",self.doubleSpinBox.text())print("1_max:", self.doubleSpinBox_4.text())print("2_min:", self.doubleSpinBox_2.text())print("2_max:", self.doubleSpinBox_5.text())print("3_min:", self.doubleSpinBox_3.text())print("3_max:", self.doubleSpinBox_6.text())if __name__== "__main__":#f __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。import sysapp=QApplication(sys.argv)ui=shizhanDemo()ui.show()sys.exit(app.exec_())

其他

Qt designer-窗口布局相关推荐

  1. Qt Designer中布局工具的使用

    从anaconda启动QtDesigner anaconda3是自带QtDesigner以及pyqt库的.QtDesigner的位置在%anaconda3%\Library\bin文件夹(其中%ana ...

  2. Qt第十八章:Qt Designer窗口切换

    典型使用场景:登录成功后,要跳转到应用主界面. 1.新建一个类,专门用来管理窗口的句柄. 注意存储的时候类型不要使用自定的类型.否则后面容易出现循环依赖的错误!!!  2.在每个窗口实例化的时候,将实 ...

  3. PyQt5学习笔记02----初探Qt Designer 设计师

    网上很多教程都是纯代码,对于新手看起来就很头疼,pyqt为我们提供了Qt designer来设计窗口界面,用起来也非常方便.对于新手来说应该善用它,虽然做出来的界面不那么华丽,但至少可以做出个像样的窗 ...

  4. Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)

    目录 1. 水平布局类(QHBoxLayout) 2.垂直布局类(QVBoxLayout) 3.网格布局类(QGridLayout) 3.1.单一的网络布局 3.2.跨越行.列的网络布局 4.表单布局 ...

  5. Python Qt GUI设计:窗口布局管理方法【基础】(基础篇—5)

    目录 1.布局管理器进行布局 2.容器控件进行布局 3.geometry属性:控件绝对布局 4.sizePolicy属性:微调优化控件布局 Qt Designer提供4种窗口布局方式,分别如下: Ve ...

  6. myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...

    在主窗口中放置多个控件,最好的方法是使用布局.控件的布局是学习PyQt路上比较关键也也是比较难理解的部分,赶快跟着木辛老师一起去看看吧. 请点击右上角"关注"按钮关注我们哟:跟着木 ...

  7. 【Qt开源项目推荐】完美的Dock窗口布局解决方案 Qt-Advanced-Docking-System

    1 概述 1.1 介绍 这是GitHub上一个基于Qt实现并且非常完美的Dock窗口布局解决方案--Qt-Advanced-Docking-System,支持Windows.Linux和MacOS跨平 ...

  8. distiller的另一个实例正忙于启动_PYQT5学习(02):利用Qt Designer制作第一个窗口程序

    目标 利用Qt Designer设计窗口界面 使用PyUIC把Qt Designer生成的UI文件转换为py文件 使用转换生成的py文件 创建项目 启动启动pycharm并创建项目 这一环节在这里就不 ...

  9. Qt designer设置窗口背景图

    给pyqt5窗口设置背景图,特别是在登录窗口,根据具体需求添加背景图.个人就记录一下在设置过程中的几个重要的点. 一.首先需要建立.qrc文件 新建文本文档,输入以下代码: <RCC>&l ...

  10. Qt Designer下的一些基础操作

    第一个Qt Designer程序设计(Visual Stdio下) <一>.在vs下新建一个Qt Console Application工程,打开designer,就开始布局你的窗口吧. ...

最新文章

  1. ListView详解(二)
  2. MvvmLight学习心得三
  3. oracle判断是否是手机号码,oracle判断手机号码是否合法
  4. 如何在Debian 9 / Debian 8上安装MariaDB 10.3
  5. flex学习网站大全(转)
  6. SQL中不建议使用 where 1=1 的说法,是错误的
  7. 极客大学架构师训练营 毕业典礼 奉献优秀架构师升级攻略
  8. [BZOJ2286] [Sdoi2011]消耗战
  9. Asio tcp异步例子
  10. 条码追溯系统解决外贸企业进销存管理
  11. 优秀的html布局,优秀的网页设计中常见的六大布局
  12. 自学Java!三面蚂蚁核心金融部,Java岗
  13. 超强大的手机端logo设计制作软件免费分享!
  14. 【jiasuba】分享:键盘失灵烦恼多 教你轻松禁用原键盘
  15. 浏览器便携化操作方法
  16. 可汗学院统计学17-24课笔记
  17. 微积分入门书籍(一)
  18. 吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 人脸识别和神经风格转换--编程作业
  19. python爬房源信息_Python爬链家网租房信息
  20. Appium基础篇16-appium截图方法

热门文章

  1. KLD Loss( tf.nn.softmax, torch.nn.functional.softmax, log_softmax, kl_div) 计算技巧(一)
  2. linux---用户管理
  3. 怎么把emlog文章做成html,EMLOG调用文章图片代码
  4. python中mul是什么意思_Python:运算符mul return'inf'
  5. ORACLE RAC中expdp出现ORA-29283错误解决方法
  6. java常见数据集合分析
  7. 实体类作为另一个实体类的属性
  8. python 数据恢复软件_linux数据恢复工具
  9. java url是什么_什么是 URL?
  10. 满了18岁你就要这样