Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检测打印机是否与pyqt连接?_Python_Printing_Pyqt4 - Fatal编程技术网

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

Python 如何检测打印机是否与pyqt连接?,python,printing,pyqt4,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(

我正在用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,因为我的电脑中有一台默认打印机,但如果它没有连接,所有内容都将进入打印机队列

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

我找到了一个解决方案:

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

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

如果
QPrinter.printerState()
没有返回有用的内容,我建议您查看其他Python库,您可以使用这些库来检查打印机状态。我尝试使用printerState(),但始终返回0