Python 读取UI文件并连接按钮、文本等元素
我正在考虑使用PySide2,但是读取UI文件,而不是通过PySide2 uic生成Python。奇怪的是,我似乎找不到这种简单连接的例子 我看到了PyQt5和PySide2之间的区别: 但我不清楚在使用PySide2时按钮会如何连接 打开窗口的最简单代码在这里;我不能完全理解的是与UI中创建的元素(btnTest)挂钩的部分。我已经将这些东西用于Qt,但是语法让我无法理解。一旦解决了这个问题,剩下的就应该跟进了Python 读取UI文件并连接按钮、文本等元素,python,qt-designer,pyside2,Python,Qt Designer,Pyside2,我正在考虑使用PySide2,但是读取UI文件,而不是通过PySide2 uic生成Python。奇怪的是,我似乎找不到这种简单连接的例子 我看到了PyQt5和PySide2之间的区别: 但我不清楚在使用PySide2时按钮会如何连接 打开窗口的最简单代码在这里;我不能完全理解的是与UI中创建的元素(btnTest)挂钩的部分。我已经将这些东西用于Qt,但是语法让我无法理解。一旦解决了这个问题,剩下的就应该跟进了 import sys from PySide2 import QtCore, Q
import sys
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import (QToolTip, QMessageBox, QPushButton, \
QApplication, QCheckBox, QDialog, QFileDialog, QGraphicsScene, QWidget, \
QLabel,QMainWindow, QDialogButtonBox)
'''
button hookup is here
'''
if __name__ == '__main__':
print("Program start.")
loader = QUiLoader()
app = QtWidgets.QApplication(sys.argv)
window = loader.load("test.ui", None)
window.show()
app.exec_()
以及按钮的XML(.ui文件):
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>210</width>
<height>117</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="btnTest">
<property name="geometry">
<rect>
<x>40</x>
<y>30</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>210</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
根据XML,按钮名称为btnTest:
因此,您必须使用该名称访问按钮:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>210</width>
<height>117</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="btnTest">
<property name="geometry">
<rect>
<x>40</x>
<y>30</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>210</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
导入系统
从PySide2导入QtWidgets、QtUiTools
如果名称=“\uuuuu main\uuuuuuuu”:
打印(“程序启动”)
app=qtwidts.QApplication(sys.argv)
loader=qtutools.QUiLoader()
window=loader.load(“test.ui”,无)
window.btnTest.clicked.connect(lambda:print(“clicked”))
window.show()
sys.exit(app.exec_())
这让我开始了,谢谢。我还记得其他一些定义类的解决方案,所有的东西都放在那里。