>>> pip install pyside6
>>> 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_()
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 {...}