Qt Designer 提供四种窗口布局方式
- 1.Vertical Layot(垂直布局)
- 2.Horizontal Layout(水平布局)
- 3.Grid Layout(栅格布局)
- 4.Form Layout(表单布局)
以上四种布局位于QtDesigner主窗口左侧区域的Widget Box工具箱的layouts中
垂直布局:控件默认按照从上到下的顺序进行纵向添加。
水平布局:控件默认按照从左向右的顺序进行横向添加。
栅格布局:将窗口放入到一个网格中,然后将他们合理的划分成若干行row 和列column 并把其中的每个窗口放置在合适的单元cell中,这里的单元就是行和列交叉划分出的空间。
表单布局:控件以两列的形式布局在表单中,其中左列包含标签,右列包含输入控件。
一般布局有两种方式:
1.通过布局管理器进行布局
2.通过容器控件进行布局
布局管理器布局
直接从QtDesigner 左侧拉去布局方式进去窗体 然后给窗体赋值(控件或窗体)
菜单与工具栏
import sys from PyQt5.QtWidgets import QApplication,QMainWindow,QWidget,QFileDialog from MainWindow352 import Ui_MainWindow from childrenform2 import Ui_Form class MainWin(QMainWindow,Ui_MainWindow): def __init__(self,parent=None): super(MainWin,self).__init__(parent) self.setupUi(self) # self.Child = ChildForm() self.fileCloseAction.triggered.connect(self.close) self.fileOpenAction.triggered.connect(self.openMsg) self.addAction.triggered.connect(self.CHildShow) def CHildShow(self): self.MaingridLayout.addWidget(self.Child) self.Child.show() def openMsg(self): file,ok = QFileDialog.getOpenFileName(self,"打开","c:/","All Files (*);;Text Fiels (*.txt)") self.statusBar.showMessage(file) class ChildForm(QWidget,Ui_Form): def __init__(self,parent=None): super(ChildForm,self).__init__(parent) self.setupUi(self) if __name__ == "__main__": app = QApplication(sys.argv) win = MainWin() win.show() sys.exit(app.exec_())
点击添加窗体之后结果如下
打包资源文件
新建窗体MainWin361.ui 如下图
然后在项目目录下创建(直接创建文本文件)apprcc.qrc
找到资源管理器-按照如下操作
再次查看qrc文件已经被修改了
在窗体中使用资源文件
在Display Widgets栏中找到Label控件拖到窗体Form中间并选中它,然后找到对应的属性编辑器找到pixmap属性,单击其后面的按钮,把它的值改为资源文件中的一张图片
然后使用如下命令将rcc文件转换成py文件
pyrcc5 apprcc.qrc -o apprcc_rc.py
import sys from PyQt5.QtWidgets import QApplication,QMainWindow from MainWin361 import Ui_MainWindow class MyMainWin361(QMainWindow,Ui_MainWindow): def __init__(self,parent=None): super(MyMainWin361,self).__init__(parent) self.setupUi(self) if __name__ == "__main__": app = QApplication(sys.argv) myWin = MyMainWin361() myWin.show() sys.exit(app.exec_())
运行结果如下