如何检测打印机是否与pyqt连接?

时间:2016-05-25 01:54:53

标签: python printing pyqt4

我正在Linux中编写一个Windows应用程序。在这一刻,我需要一个解决方案来检测默认打印机是否已连接。 我有下一个代码:

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)

使用QPrinterInfo我可以获得默认打印机并知道它是否存在。

QPrinterInfo.defaultPrinter().isNull()

但它总是返回true,因为我的PC中有一个默认打印机但如果没有连接,所有内容都会进入打印机队列。

有没有人知道如何识别打印机是否已连接以及如果出现异常,如何显示Qmessage?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

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

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