2016-05-25 22 views
2

Ich programmiere in Linux eine Windows-Anwendung. In diesem Moment brauche ich eine Lösung, um festzustellen, ob der Standarddrucker angeschlossen ist. Ich habe den nächsten Code:Wie erkennt man, ob ein Drucker mit pyqt verbunden ist?

def mPrint(self, value): 
    font = QFont() 
    font.setPointSize(10) 

    self.mEditor = QTextEdit() 
    self.mEditor.setFont(font) 

    self.printer = QPrinter(QPrinterInfo.defaultPrinter()) 
    self.printer.setColorMode(QPrinter.GrayScale) 
    self.printer.setPageMargins(7, 20, 7, 7, QPrinter.Millimeter) 
    self.printer.setOrientation(QPrinter.Portrait) 

    try: 
     if value == 1: 
      self.printCommand() 
     else: 
      self.printDelivery() 
    except self.printer.Error as e: 
     print(e) 

mit QPrinterInfo kann ich den Standarddrucker und weiß, wenn es vorhanden ist.

QPrinterInfo.defaultPrinter().isNull() 

aber es gibt immer wahr, weil ich einen Standarddrucker in meinem PC habe, aber wenn es nicht angeschlossen ist, geht alles in die Druckerwarteschlange.

Weiß jemand, wie man erkennt, wenn der Drucker angeschlossen ist und wie man eine Qmessage zeigt, wenn es eine Ausnahme gibt?

+0

Wenn 'QPrinter.printerState()' nicht etwas Nützliches zurückkehren, dass ich in anderen Python-Bibliotheken empfehlen, suchen Sie könnten zum Prüfen des Druckerstatus verwenden können. –

+0

Ich habe versucht, printerState() zu verwenden, gibt aber immer 0 zurück –

Antwort

0

Ich finde eine Lösung:

self.mEditor = QTextEdit() 
self.mEditor.setFont(font) 

self.printer = QPrinter(QPrinterInfo.defaultPrinter()) 
self.mEditor.document().print_(self.printer) 
Verwandte Themen