QT Designer 水平布局生成horizontal.ui,生成horizontal.py,调用py文件
设计稿
代码 :
import sys
import horizontal
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
# 定义窗口
app = QApplication(sys.argv)
main_window = QMainWindow()
# 向主窗口添加控件
ui = horizontal.Ui_MainWindow()
ui.setupUi(main_window)
main_window.show()
sys.exit(app.exec_())
实际效果 :
设计样式,选择垂直布局,选择几个控件,拖拽到垂直布局的框里,生成文件
代码
import sys
import vertical
from PyQt5.QtWidgets import QApplication,QMainWindow
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = QMainWindow()
ui = vertical.Ui_MainWindow()
ui.setupUi(main_window)
main_window.show()
sys.exit(app.exec_())
实际效果
设置样式,生成py文件
代码 :
import sys
import grid
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = QMainWindow()
ui = grid.Ui_MainWindow()
ui.setupUi(main_window)
main_window.show()
sys.exit(app.exec_())
例子
控件的相对坐标都是左上角的(x,y, 宽,高)
水平间隔
垂直间隔
水平线
垂直线
sizePolicy 尺寸策略
sizeHint 期望尺寸,类似默认值,,对大部多数控件是只读的
设计
代码
import sys
import sizepolicy
from PyQt5.QtWidgets import QApplication, QMainWindow
"""
获取期望尺寸sizeHint
self.pushButton.sizeHint().width() 77px
self.pushButton.sizeHint().height() 32px
与当前尺寸没有关系
self.textEdit.sizeHint().width() 256px
self.textEdit.sizeHint().height() 192px
最小期望尺寸
self.textEdit.minimumSizeHint().width() 71
self.textEdit.minimumSizeHint().height() 71
"""
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = QMainWindow()
ui = sizepolicy.Ui_MainWindow()
ui.setupUi(main_window)
main_window.show()
sys.exit(app.exec_())
1、默认Mininum, 如果Mininumsize是0x0,没有设置,这个值就是 sizeHint,如果设置值,就会按照最小值展示
2、fixed 固定值
3、maxinum 最大值,不会超过sizehint的最大值
4、Expanding 延展 : 最常用
水平延伸 :设置水平策略是expanding
在一个水平布局里面,如果有3个控件就是,0就表示是3等分,如果这某个控件设置为2,其他两个为1 , 就会表示这个控件占2/4, 就是一半
如果有两个控件,1个设置为2,一个设置为1, 设置为2的控件就表示占据了2/3 的布局。
垂直策略与水平策略类似
按tab键盘,跳转,编辑--》编辑tab顺序,可以自定义顺序
信号与槽是qt的核心机制,pyqt继承了qt的核心机制
信号 singal :是对象或控件发射出去的消息, 例如:按钮的单击事件,当单击按钮时,按钮就会向外部发送单击消息,这个消息就是信号singal, 接受这个消息处理响应的就槽 slot
槽 slot :是接受并处理信号的方法,本质事件函数
需要将信号和槽绑定,一个singal可以和多个slot绑定,一个slot也可以拦截多个singal
可以通过qt designer,也可以通过代码绑定
通过Qt Designer,编辑->编辑信号与槽, 设置按钮单击事件,是关闭窗口。
设置单选框,控制文本框控件的显示/隐藏, 可用与不可用
菜单栏的设置
工具栏的设置
动作编辑器设置
运行效果