pyqt5-布局管理入门-信号和槽关联-菜单与工具栏-打包资源文件
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_())
运行结果如下