我使用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()
答案 0 :(得分:0)
您在calluser
方法中创建了一个新应用程序。删除或评论该行:
Appli=QtGui.QApplication(sys.argv)
然后再试一次。我想这次你的主窗口仍会保持响应。