Есть ли способ определить, подключен ли принтер к сети, используя libcups или Qt?
Я работаю над программой, которая требует принтер, и использует как libcups и QPrinter
Я хотел бы дать пользователю хорошее сообщение об ошибке, если текущий / принтер по умолчанию не подключен.
Прямо сейчас, если принтер по умолчанию выключен (или не подключен),
cups_dest_s printers = NULL;
int printerCount = cupsGetDests(&printers);
это вылетает:
*** glibc detected *** /home/me/myApp/myApp: double free or corruption (out): 0x088501e0 ***
Как определить, физически подключен и включен ли текущий принтер / принтер по умолчанию?
Нет точного способа определить состояние принтера, так как некоторые принтеры не имеют возможности сообщать об их состоянии операционной системе.
Тем не менее, вы можете узнать текущее состояние принтера:
PrinterState QPrinter::printerState() const
Который возвращается Idle
, Active
, Aborted
а также Error
, Вы можете проверить, если состояние принтера Active
или же Idle
, Но нет никакой гарантии, что ваш принтер правильно сообщает о своем состоянии.