首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自另一个未显示的QDialog的QDialog

来自另一个未显示的QDialog的QDialog
EN

Stack Overflow用户
提问于 2017-08-04 11:34:01
回答 1查看 1K关注 0票数 2

在我的主要应用程序中,我打开了一个QDialog,而在这个QDialog中,我想打开/显示另一个。它不是显示第二个对话框的焦点,而是出现在我的主应用程序后面,并且被阻塞/禁用,我不能使用它。每个表单都位于一个单独的文件中:

在mainform.py中:

代码语言:javascript
复制
form_gui = uic.loadUiType("mainform.ui")[0] # Load the UI
class MainForm(QtGui.QMainWindow, form_gui):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent) 
        self.btnOpenForm1.clicked.connect(self.showFirstDialog)
    ...
    def showFirstDialog(self):
        browser1 = UI_Form1(self)
        browser1.setWindowTitle('UI_Form1')
        browser1.show()
    ... 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    myapp = MVSGUI()
    myapp.show()
    sys.exit(app.exec_())

在文件UI_Form1.py中:

代码语言:javascript
复制
form_gui = uic.loadUiType("uiform1.ui")[0] # Load the UI
class UI_Form1(QtGui.QDialog, form_gui):
    def __init__(self, parent):
        super(UI_Form1, self).__init__(parent)
        self.btnOpenForm2.clicked.connect(self.showSecondDialog)
    ...
    def showSecondDialog(self):
        browser2 = UI_Form2(self)
        browser2.setWindowTitle('UI_Form2')
        browser2.show() 
    ...

在文件UI_Form2.py中:

代码语言:javascript
复制
form_gui = uic.loadUiType("uiform2.ui")[0] # Load the UI
class UI_Form2(QtGui.QDialog, form_gui):
    def __init__(self, parent):
        super(UI_Form2, self).__init__(parent)
    ...

这可能很容易猜出是什么问题,但我找不到如何解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-07 06:33:25

QDialogs可以在模式和无模式模式下创建。如果你想同时使用不止一种的话,一定要让它们成为无模式的。

您可以查看文档 of QDialog,以了解如何更改模式模式。您还可以使用情态枚举更改模态窗口的行为。

另外,确保使用正确的工具来完成正确的任务,文档声明:

对话框窗口是一个顶层窗口,主要用于短期任务和与用户的简短通信。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45505777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档