Как открыть второе окно из 1-го окна в pyqt?

У меня есть 2 формы, form_1 и form_2 (в другом классе и файле), я открою form_2 из form_1 с помощью кнопки, как создать об этом в Pyqt?

code form_1:

def retranslateUi(self, MainWindow): QtCore.QObject.connect(self.bt_form1, QtCore.SIGNAL(_fromUtf8("clicked()")), self.show_form2()) MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.bt_form1.setText(_translate("MainWindow", "FORM_1", None))
def show_form2(self): self.form2 = form2(self) # in here ??????
2 ответа

im все еще довольно новичок в pyqt, но я думаю, что вы можете сделать это так

def show_form2(self): newDialog = uic.loadUi(r"uifile.ui") newDialog.show()

или если вы подклассифицировали его, убедитесь, что вы импортируете его, если его в другом файле и используете

def show_form2(self): newDialog = subDialog.subDialog() newDialog.show()

edit - oh и убедитесь, что вы подключили его к кнопкам

self.bt_form1.clicked.connect(self.show_form2)


class Main(QMainWindow): def __init__( ... ) def retranslateUi(self, MainWindow): QtCore.QObject.connect(self.bt_form1, QtCore.SIGNAL(_fromUtf8("clicked()")), self.show_form2()) MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.bt_form1.setText(_translate("MainWindow", "FORM_1", None)) def show_form2(self): self.form2 = Form2(self) self.form2.show()

Ваш код Form2 должен выглядеть так:

class Form2(QDialog): def __init__(self, parent=None) .... # do whatever #

licensed under cc by-sa 3.0 with attribution.