PySide6安装使用及QT Designer UI设计

安装pyside6

>>> pip install pyside6          

 查看QT Designer程序

>>> pip show pyside6

Location: c:\users\Administrator\...\python\python39\site-packages


//若上述代码运行报错
>>> where python
C:\...\Python\Python39\python.exe

python文件夹内搜索
C:\...\Python\Python39\site-packages\PySide6\designer.exe

Ⅰ. Init 

from PySide6.QtWidgets import *

class Window:
    def __init__(self):
        self.win = QMainWindow()

if __name__ == '__main__':
    app = QApplication([])
    w = Window()
    w.win.show()
    app.exec_()
from PySide6.QtWidgets import *

if __name__ == '__main__':
    app = QApplication([])
    win = QMainWindow()
    win.show()
    app.exec_()

Ⅱ Example

from PySide6.QtWidgets import *


class Window:
    def __init__(self):
        self.win = QMainWindow()
        self.win.resize(500, 400)
        self.win.move(700, 210)
        self.win.setWindowTitle("测试窗口")


        self.textEdit = QTextEdit(self.win)
        self.textEdit.move(50, 50)
        self.textEdit.resize(200, 300)
        self.textEdit.setPlaceholderText("请输入文本")


        self.button = QPushButton("button", self.win)
        self.button.move(300, 100)
        self.button.clicked.connect(self.btnClick)


    def btnClick(self):
        info = self.textEdit.toPlainText()   # 获取文本信息
        print(info)
        # print("button被点击")


if __name__ == '__main__':
    app = QApplication([])
    # win = QMainWindow()
    # win.show()
    w = Window()
    w.win.show()
    app.exec_()

PySide6安装使用及QT Designer UI设计_第1张图片


PySide6安装使用及QT Designer UI设计_第2张图片

QT Designer

1.自动生成python代码

...
from PySide6.QtCore import QFile
from PySide6.QtUiTools import QUiLoader

    ...

if __name__ == "__main__":
    app = QApplication([])
    win = QMainWindow()
    w = Ui_Form()
    w.setupUi(win)
    win.show()
    app.exec_()
view python code 报错:"Unable to lanch C"
-> PySide6文件夹下复制uic.exe到新建的bin文件夹内

C:\...\Python\Python39\site-packages\PySide6\bin\uic.exe

2.动态加载ui文件(首选)

from PySide6.QtWidgets import *
from PySide6.QtCore import QFile
from PySide6.QtUiTools import QUiLoader


class Window:
    def __init__(self):
        super(Window, self).__init__()
        # 从ui文件中加载UI定义
        qfile = QFile("demo1.ui")
        qfile.open(QFile.ReadOnly)
        qfile.close()
        # 从UI定义中动态创建一个相应的窗口对象
        self.ui = QUiLoader().load(qfile)

        
        # 信号处理
        self.ui.button.clicked.connect(self.btnClick)
        # self.button.clicked.connect(self.btnClick)

    def btnClick(self):
        info = self.ui.textEdit.toPlainText()   # 获取文本信息
        # info = self.textEdit.toPlainText()
        print(info)

if __name__ == '__main__':
    app = QApplication([])
    # app.setWindowIcon(QIcon("logo.png"))    # 添加图标
    w = Window()
    w.ui.show()
    # w.win.show()
    app.exec_()

最后:发布QT程序

>>> pip install pyinstaller

>>> pyinstaller *.py --noconsole --hidden-import PySide6.QtXml [--icon="logo.ico"]

并将ui文件移至dist文件夹内

QSS样式

Selector Example  instruction
* 匹配所有界面元素
QPushButton 选择所有QPushButton类型(包括子类)
Class .QPushButton 选择所有QPushButton类型(不包括子类)
ID QPushButton #closeButton 选择所有对象名为closeButton的QPushButton
QDialog QPushButton 选择所有QDilog内部QPushButton类型

鼠标操作时元素显示样式

// 悬浮
QPushButton:hover {color: red;}
// 点击
QPushButton:pressed {...}
// 悬浮且处于勾选状态时
QCheckBox:hover:checked {...}

你可能感兴趣的