使用Pysid从主窗口打开子对话框窗口

2024-10-01 11:23:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我开始用pyside学习python进行GUI开发,我一直在使用QT设计器来提高速度,并将.ui文件转换为.py

我目前有一个“主窗口”用户界面和一个“关于”用户界面(主窗口被设置为主窗口,“关于”是一个空对话框)

如何从主窗口打开“关于”对话框? 下面的代码从my主.py在

class MainWindow(QMainWindow, mainwindow.Ui_MainWindow):
def __init__(self, parent=None):
    super(MainWindow, self).__init__(parent)
    self.setupUi(self)

app = QApplication(sys.argv)
form = MainWindow()
form.show()

app.exec_()

一切都很好,打开主窗口。在我的主窗口中有一些菜单项,其中一个是“关于”选项当用户单击此项时,我希望它打开我创建的另一个对话框ui,我该怎么做?在

在主窗口.py(从ui转换)有以下引用:

^{pr2}$

以及关于.py(从ui转换)如下所示:

from PySide import QtCore, QtGui

class About_Dialog(object):
def setupUi(self, Dialog):
    Dialog.setObjectName("Dialog")
    Dialog.resize(400, 300)
    self.aboutLbl = QtGui.QLabel(Dialog)
    self.aboutLbl.setGeometry(QtCore.QRect(110, 40, 171, 16))
    self.aboutLbl.setObjectName("aboutLbl")

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

def retranslateUi(self, Dialog):
    Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
    self.aboutLbl.setText(QtGui.QApplication.translate("Dialog", "Mailer version 0.0.1 by .....", None, QtGui.QApplication.UnicodeUTF8))

我想我需要在里面创建一个新函数主窗口.py当调用打开about对话框时,我不知道该在该函数中放入什么,我也对插槽和连接感到困惑,如果有人能帮我解决一些示例代码,那就太好了。在

编辑:

我找到了代码的功能部分,仍然在想如何连接到菜单,但是我连接到了一个按钮按下器,它执行这个方法,然后打开一切正常:

def openAbout(self):
    aboutDialog = QtGui.QDialog(self)
    aboutUi = about.About_Dialog()
    aboutUi.setupUi(aboutDialog)
    aboutDialog.show()

Tags: 代码pyselfnoneuidefdialog对话框
1条回答
网友
1楼 · 发布于 2024-10-01 11:23:40

如果主窗口有一个名为actionAbout的菜单操作和一个名为openAbout的插槽,您只需将actionAbout触发的信号连接到插槽openAbout。在

self.actionAbout.triggered.connect(self.openAbout)

这个过程类似于你用这个按钮所做的。只需将本例中使用的名称更改为应用程序中的名称。在

相关问题 更多 >