pyside2
>>> pip install pyside2
QT Designer
>>> pip show pyside2
Location: c:\users\Administrator\appdata\roaming\python\python39\site-packages
文件位置
C:\Users\Administrator\AppData\Roaming\Python\Python39\site-packages\PySide2\designer.exe
Ⅰ. Init
from PySide2.QtWidgets import *
class Window:
def __init__(self):
self.win = QMainWindow()
if __name__ == '__main__':
app = QApplication([])
w = Window()
w.win.show()
app.exec_()
from PySide2.QtWidgets import *
if __name__ == '__main__':
app = QApplication([])
win = QMainWindow()
win.show()
app.exec_()
Ⅱ Example
from PySide2.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.自动生成代码
...
from PySide2.QtCore import QFile
from PySide2.QtUiTools import QUiLoader
...
if __name__ == "__main__":
app = QApplication([])
win = QMainWindow()
w = Ui_Form()
w.setupUi(win)
win.show()
app.exec_()
2.动态加载ui文件
from PySide2.QtWidgets import *
from PySide2.QtCore import QFile
from PySide2.QtUiTools import QUiLoader
class Window:
def __init__(self):
# 从文件中加载UI定义
qfile = QFile("demo1.ui")
qfile.open(QFile.ReadOnly)
qfile.close()
# 从UI定义中动态创建一个相应的窗口对象, 将其内部文件定义为self.ui.button
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([])
w = Window()
w.ui.show()
# w.win.show()
app.exec_()