在python代碼中加載pyqt5-tools生成的ui文件的幾種方式

前面章節中咱們介紹了在pycharm中配置pyqt5-tools設計師及將ui文件轉換爲py文件及資源文件的轉換,本章節介紹在py文件中若是加載ui文件的方法python

1、簡單的ui設計師的界面展現

2、方法一(直接加載ui)文件

  • 一、新建一個test.py的文件app

  • 二、導包函數

    from PyQt5.uic import loadUi
    複製代碼
  • 三、使用loadUi加載ui文件測試

    ...
    def set_ui(self):
        loadUi('./login.ui', self)
    ...
    複製代碼
  • 四、手動給按鈕綁定事件及獲取文本框的值ui

  • 五、完整代碼spa

    import sys
    from PyQt5.Qt import *
    from PyQt5.uic import loadUi
    
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('直接加載ui文件')
            self.resize(500, 500)
            self.move(400, 200)
    
            self.set_ui()
    
        def set_ui(self):
            loadUi('./login.ui', self)
            print(dir(self))
            self.login_btn.clicked.connect(self.login_btn_hand)
    
        def login_btn_hand(self):
            """ 點擊登陸的按鈕事件 :return: """
            print(self.account.text(), self.password.text())
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        window = Window()
        window.show()
        sys.exit(app.exec_())
    複製代碼

3、方式二(須要先使用以前介紹的UI2PY轉換爲py文件,使用python導包的方式)

  • 一、轉換爲py文件設計

  • 二、導包code

  • 三、實例化對象及調用方法orm

  • 四、完整代碼cdn

    import sys
    from PyQt5.Qt import *
    from login import Ui_Form
    
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('測試代碼')
            self.resize(500, 500)
            self.move(400, 200)
    
            self.set_ui()
    
        def set_ui(self):
            ui = Ui_Form()  # 實例化對象
            ui.setupUi(self)
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        window = Window()
        window.show()
        sys.exit(app.exec_())
    複製代碼

4、方式四(須要先使用以前介紹的UI2PY轉換爲py文件,使用類的多繼承方式實現)

  • 一、轉換爲py文件

  • 二、導包

  • 三、完整代碼

    import sys
    from PyQt5.Qt import *
    from login import Ui_Form
    
    
    class Window(QWidget, Ui_Form):  #類的多繼承
        def __init__(self):
            super().__init__()
            self.setWindowTitle('')
            self.resize(500, 500)
            self.move(400, 200)
    
            self.set_ui()
            self.setupUi(self)  # 當前類繼承了父類的方法,直接調用
    
        def set_ui(self):
    
            pass
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        window = Window()
        window.show()
        sys.exit(app.exec_())
    複製代碼

5、在開發過程當中常使用類的多繼承方式,咱們能夠將信號槽直接在設計師中寫好

  • 一、別的都不變,只要你根據本身定義的函數從新寫個槽函數的業務代碼就能夠

    ...
    def login_btn_hand(self):
        """ 信號槽函數 :return: """
        print(self.account.text(), self.password.text())
    ...
    複製代碼
相關文章
相關標籤/搜索