如何在python中的pyqt4中销毁小部件

时间:2017-07-26 11:27:11

标签: python pyqt pyqt4

我最近从tkinter切换到pyqt4,也许这个问题是重复但我找不到工作示例/答案。在我的应用程序中,我有控制小部件输入和更新DB的按钮。它工作得非常好,但我不想制作像tkinter的.askyesno(或html模式)这样的东西,以便询问用户他/她是否确定那个命令。

def modal(self):
        d = QtGui.QDialog()
        d.setModal( True )

        b1 = QtGui.QPushButton("ok",d)
        b1.move(50,50)
        b1.clicked.connect(lambda event: self.yes(d))

        d.setWindowTitle("Dialog")
        d.setWindowModality(QtCore.Qt.ApplicationModal)
        d.exec_()

        print('b1 ans', self.ans)


def yes(self, d):
    self.ans =  True
    d.setParent(None)

现在,当我点击按钮时,它调用模态函数,它使QDialog中带有按钮。现在我的问题是,因为我已设置setModal(True)程序等待QDialog退出,但它只退出小,红色x /关闭按钮,我需要QDialog退出/删除/销毁任何按钮点击,例如在功能'是'?

是否可能(我猜它是),以及如何。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您想要的是QMessageBox提供的。这是一个小例子,带有Yes,No和Cancel按钮,您可以给出自定义名称。

font-weight: bold;