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_())

运行结果如下

posted @ 2020-02-12 02:40  simp00  阅读(584)  评论(0编辑  收藏  举报