我尝试为Python项目使用PySide2和qt-designer工具。
我找到了这个有用的网站: http://www.blog.pythonlibrary.org/2018/05/30/loading-ui-files-in-qt-for-python/
这很好用,但是我尝试在单击按钮时打开另一个窗口。
我不知道该怎么办,因为第二个窗口也是由qt设计器生成的,并且是一个.ui
文件。
想象一下,您只有一个ui文件。然后,您可以使用以下代码直接在Python中打开应用程序,而无需更改ui文件。
De handler用于更多按钮等。您可以在每次需要时更改ui文件,而不会丢失按钮的代码。
但是我不是专家,如果要加载第二个ui文件,我也不知道该怎么办
我想在单击按钮时打开一个新窗口-并自动加载其他ui文件
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication, QPushButton, QLineEdit
from PySide2.QtCore import QFile, QObject
from PySide2.QtGui import QIcon
class Form(QObject):
def __init__(self, ui_file, parent=None):
super(Form, self).__init__(parent)
ui_file = QFile(ui_file)
ui_file.open(QFile.ReadOnly)
#self.icon = QIcon(self.__resource("basic_logo.png"))
#self.ui.setWindowIcon(self.icon)
loader = QUiLoader()
self.window = loader.load(ui_file)
ui_file.close()
self.line = self.window.findChild(QLineEdit, 'lineEdit')
btn = self.window.findChild(QPushButton, 'pushButton')
btn.clicked.connect(self.ok_handler)
self.window.show()
def ok_handler(self):
language = 'None' if not self.line.text() else self.line.text()
print('Favorite language: {}'.format(language))
if __name__ == '__main__':
app = QApplication(sys.argv)
form = Form('main_window.ui')
sys.exit(app.exec_())