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 に答える