Python表格未使用show方法显示

2024-06-28 19:34:48 发布

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

我正在使用QGIS的python插件,我的主要形式是DlgQueryBuilder.py另一种形式是DlgDberror.py,显示查询。我的DlgDberror.py 包含以下内容:

class DlgDbError(QtGui.QWidget, Ui_DlgDbError):
def __init__(self,e,parent):


    QtGui.QWidget.__init__(self)
    Ui_DlgDbError.__init__(self)
    self.setupUi(self)
    msg = "<pre>" + e.msg.replace('<','&lt;') + "</pre>"


    self.txtMessage.setHtml(msg)



@staticmethod
def showError(e, parent):

    dlg = DlgDbError(e,parent)
    dlg.show()

来自DlgQueryBuilder.py是“DlgDbError.showError(e,self)“ 一切都很顺利,但当我试着运行我的主模式时DlgQueryBuilder.py,*DlgDberror.py*表单不是显示。它一秒钟内就消失了。 dlg.show公司()应该工作礼仪??在


Tags: pyselfuiinitdefmsgpre形式
1条回答
网友
1楼 · 发布于 2024-06-28 19:34:48

showError退出时,dlg会被垃圾回收并消失,这也会破坏底层的Qt对象和对话框。我怀疑你需要把你的对话以某种方式传给QGIS,这样它就可以处理任何需要的对话。所以是的,show()可以工作,但是你的程序在它做任何有用的事情之前就破坏了对话框。在

也许你想要exec_()而不是?它将弹出对话框,然后阻止等待用户关闭对话框。这称为模态对话框。见http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qdialog.html

相关问题 更多 >