Я завершил простое приложение в PyQt5, где я разработал пользовательский интерфейс в дизайнере QT, преобразовал в код py с помощью pyuic5
и запустил его через интерпретатор python.
Теперь я хотел бы добавить еще одно представление пользовательского интерфейса, хотя я не знаком с PyQt5, и в большинстве учебников, которые я нашел, упоминается только одно представление. Например, если бы я использовал Visual Studio, я мог бы создать новую форму и использовать методы отображения и скрытия для их отображения, например, когда я нажимаю кнопку, но я не уверен, как сделать то же самое с PyQt5.
Преобразованный код из pyuic5
включает также функцию if __name__ == "__main__"
, которая создает экземпляр и запускает приложение, поэтому достаточно ли просто взять что-нибудь над ним, чтобы получить только данные пользовательского интерфейса? И как мне создать представление из этого, чтобы я мог показывать и скрывать его по мере необходимости? Спасибо.
РЕДАКТИРОВАТЬ. Продвинулся немного дальше, так как нашел другой способ загрузки UI
файлов. Похоже, что у PyQt есть метод, который может загружать файл пользовательского интерфейса напрямую, а не преобразовывать его в код Python. Это означает, что я могу создать класс, являющийся подклассом используемого типа окна (пример: QApplication
, QMainWindow
, QWidget
и т. д.), и я могу получить доступ к этому объекту, как если бы он был формой в Visual Studio.
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
from PyQt5.uic import loadUI
class UIObject(QMainWindow):
def __init__(self):
super(UIObject, self).__init__()
loadUI('mainapp.ui', self)
self.mybutton1.clicked.connect(self.printhello)
def printhello():
print("hello")
app = QApplication(sys.argv)
mainview = UIObject()
mainview.show()
sys.exit(app.exec_())
Это загрузит файл пользовательского интерфейса и отобразит его на экране; Я предполагаю, что я могу использовать одну и ту же конструкцию для загрузки нескольких файлов ui
, а затем показывать или скрывать их, как я делаю в Visual Studio? Кажется простым, но я не знаю много о QT или PyQT, я не уверен, почему этот способ обработки файлов ui
чаще не рекламируется в учебниках; Я нашел это случайно, читая документы.