Python 開發GUI之UI界面的三種引入形式


【純手工代碼】

# -*- coding: utf-8 -*-
# Author:Jack LEE 
# FileName:main
# CreatedDate: 2020/9/17

# 手寫代碼的基礎框架
# 導入需要的庫and元件
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QTextEdit

# 初始化函數
def sayHello():
    textEdit.setText("hello")

# 初始化控件
app = QApplication([])
window = QMainWindow()
window.resize(800, 600)
window.move(300, 310)
window.setWindowTitle('MainWindow')
textEdit = QTextEdit("init-information", window)
textEdit.resize(500, 400)
textEdit.move(40, 50)
# textEdit.setText("init-information")
button = QPushButton('pushButton', window)
button.move(600, 300)
button.resize(130, 50)
# button.setText('pushButton')

# 編寫信號與槽,以及圖像化

button.clicked.connect(sayHello)
window.show()
app.exec_()

{載入UI的路徑}

注意:

需要將UI目錄加入路徑;

方法:點擊UI文件夾,單擊右鍵 Make Directory As,Source Root

 【直接載入UI文件】

# -*- coding: utf-8 -*-
# Author:Jack LEE 
# FileName:UIloader
# CreatedDate: 2020/9/17

import sys
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication
from PySide2.QtCore import QFile


# 定義觸發函數
def sayHello():
    window.textEdit.setText("hello world!")
    print("Button click!")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    ui_file = QFile("UI/mainWindow.ui")
    ui_file.open(QFile.ReadOnly)
    loader = QUiLoader()
    window = loader.load(ui_file)
    ui_file.close()
    # 在這里加入信號觸發、空間位置控制等代碼
    window.pushButton.clicked.connect(sayHello)
    # 添加結束
    window.show()
    sys.exit(app.exec_())

【載入UI文件編譯后的PY文件】

# -*- coding: utf-8 -*-
# Author:Jack LEE 
# FileName:PYloader
# CreatedDate: 2020/9/17

import sys
# from sys import argv
# 如果使用sys 那將意味着將要打包很多多西,所以可能會出現問題
from mainWindow import Ui_MainWindow
from PySide2.QtWidgets import QMainWindow, QApplication


# 定義信號和槽函數
def signleAndSlot():
    UI.pushButton.clicked.connect(sayHello)


# 定義觸發函數
def sayHello():
    UI.textEdit.setText("Hello World!")


class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = MainWindow()
    UI = main.ui
    # 調用信號和槽的函數以及空間管理等函數
    signleAndSlot()
    main.show()
    sys.exit(app.exec_())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM