0

我使用 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()
4

1 回答 1

0

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

Appli=QtGui.QApplication(sys.argv)

然后再试一次。我认为这次您的主窗口将保持响应。

于 2012-07-25T22:09:47.987 回答