<
>

PyQT实现多窗口切换

2020-06-25 07:31:50 来源:易采站长站 作者:易采站长站整理


return s

try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)

class Dialog2(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(400, 300)
self.form = Dialog
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(180, 60, 54, 12))
self.label.setObjectName(_fromUtf8("label"))
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(160, 140, 75, 23))
self.pushButton.setObjectName(_fromUtf8("pushButton"))

self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)

#信号连接到指定槽
self.pushButton.clicked.connect(self.on_pushButton_clicked)

def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.label.setText(_translate("Dialog", "dialog2", None))
self.pushButton.setText(_translate("Dialog", "返回主窗体", None))

def on_pushButton_clicked(self):
self.form .close()

if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Dialog2()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())

按钮绑定到新弹出界面的处理函数,使用的槽连接方式为:


self.pushButton.clicked.connect(self.on_pushButton_clicked)

如果是Menu项绑定到新弹出界面的处理函数,则应使用的槽连接方式为:


QtCore.QObject.connect(self.set_value_menu, QtCore.SIGNAL(_fromUtf8("triggered()")), self.open_set_value_form)

二者使用的槽处理函数基本一致。
若不显示原界面,只需将原界面hide()即可,如:


self.form.hide()

若需在弹出新窗口时同时原窗口保持可见,则不需这一步。且在这种情况下,若要原窗口可选为顶层窗体,则在显示新窗口时应使用show():


Form1.show()

若新窗口为固定的顶层窗体,原窗体被遮盖,则应使用exec_():


Form1.exec_()

您可能感兴趣的文章:PyQt5 多窗口连接实例PyQt 实现使窗口中的元素跟随窗口大小的变化而变化PyQt5实现从主窗口打开子窗口的方法pyqt 多窗口之间的相互调用方法

暂时禁止评论

微信扫一扫

易采站长站微信账号