Pyqt5部分学习笔记2——qtdesigner生成的ui布局或者py布局文件的调用

1、ui动态布局文件的使用

简单用法

from PyQt5.uic import loadUi

app = QApplication([])
ui = loadUi('layout.ui')
ui.show()
app.exec_()

实际开发用法

from PyQt5.QtWidgets import QApplication
from PyQt5.uic import loadUi

class MyMainwin:

    def __init__(self):
        # 从文件中加载UI定义

        # 从 UI 定义中动态 创建一个相应的窗口对象
        # 注意:里面的控件对象也成为窗口对象的属性了
        # 比如 self.ui.button , self.ui.textEdit
        self.ui = load('main.ui')

        self.ui.button.clicked.connect(self.handleCalc)

    def handleCalc(self):
        ...
        
if __name__ = 'main':
	app = QApplication([])
	mywin = MyMainwin()
	mywin.ui.show()
	app.exec_()

2.py布局文件的使用(使用pyUic转换后的布局文件)

转换后的py布局文件格式如下

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(770, 582)
        self.widget = QtWidgets.QWidget(Form)
        ...

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "抖音下载助手"))
		...

转换后的py布局文件是一个Ui_Form类或者Ui_MainWindow类(取决与你用QtDesigner创建的窗体类型),该类里含有一个setUi方法,可传入一个窗体Form对象,即可对该窗体对象进行相应的控件创建和布局。’

简单用法

app = QApplication([])
mywin = QMainWindow()
ui = Ui_Form()
ui.setupUi(mywin)
mywin.show()
app.exec()

实际开发用法1

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        # 使用ui文件导入定义界面类
        self.ui = Ui_MainWindow()
        # self.ui = Ui_Form 取决于创建的窗体类型
        
        # 初始化界面
        self.ui.setupUi(self)
        # 使用界面定义的控件,也是从ui里面访问
        self.ui.webview.load('http://www.baidu.com')
app = QApplication([])
mainw = MainWindow()
mainw.show()
app.exec_()

实际开发用法2

from layout import Ui_Form
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
 
class MyWin(QMainWindow,Ui_Form):
 def __init__(self,parent=None):
  super(MyWin,self).__init__(parent)
  self.setupUi(self)
 
if __name__ == '__main__':
 app = QApplication(sys.argv)
 ui=MyWin()
 ui.show()
 sys.exit(app.exec_())

版权声明:本文为qq_31761067原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。