【发布时间】:2016-05-25 01:54:52
【问题描述】:
我正在 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?
【问题讨论】:
-
如果
QPrinter.printerState()没有返回有用的信息,我建议您查看其他 Python 库,您可能可以使用它来检查打印机状态。 -
我尝试使用printerState() 但总是返回0