退出打印对话框-pyqt

时间:2012-07-25 17:58:50

标签: python printing pyqt

我使用QPrinter和QDialog定义了一个打印功能。但是,当我启动打印机对话框然后按取消时,整个主窗口进入无响应模式。我试过QtGui.QPrintDialog.close()但是没有用。

代码:

import sys

from PyQt4 import QtCore
from PyQt4 import QtGui

class QButton(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.button = QtGui.QPushButton('Button', self)
        self.name='me'
        self.button.clicked.connect(self.calluser)
    def calluser(self):
        Appli=QtGui.QApplication(sys.argv)
        printer= QtGui.QPrinter()
        doc=QtGui.QTextDocument("Set local variables in this printing slot." )
        dialog = QtGui.QPrintDialog(printer)
        dialog.setModal(True)
        dialog.setWindowTitle("Print Document" )
        if dialog.exec_() == True:
            doc.print_(printer)

# dialog.addEnabledOption(QAbstractPrintDialog.PrintSelection)


def demo_QButton():
    app = QtGui.QApplication(sys.argv)
    tb = QButton()
    tb.show()
    app.exec_()

if __name__=='__main__':
    demo_QButton()

1 个答案:

答案 0 :(得分:0)

您在calluser方法中创建了一个新应用程序。删除或评论该行:

Appli=QtGui.QApplication(sys.argv)

然后再试一次。我想这次你的主窗口仍会保持响应。