Как показать больше Windows с .ui файлами, созданными с помощью qt-designer и pyside2? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь работать с PySide2 и инструментом qt-designer для проекта Python.

Я нашел этот полезный сайт: http://www.blog.pythonlibrary.org/2018/05/30/loading-ui-files-in-qt-for-python/

Это прекрасно работает, но я пытаюсь открытьдругое окно при нажатии на кнопку.Я не знаю, как это сделать, потому что второе окно тоже создается с помощью дизайнера qt и представляет собой файл .ui.

Представьте, что у вас есть только один файл пользовательского интерфейса.Затем вы можете использовать следующий код, чтобы открыть приложение непосредственно в Python без изменения файла пользовательского интерфейса.

Обработчик De предназначен для дополнительных кнопок и т. Д., И вы можете изменять файл пользовательского интерфейса каждый раз, когда захотите, не теряя код длякнопки.

Но я не эксперт, и я не знаю, что делать, если я хочу загрузить второй файл пользовательского интерфейса

Я хочу открыть новое окно при нажатии накнопка - и загрузка другого пользовательского файла автоматически

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_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...