在Linux下,从QPrintPreviewDialog打印文档时,我不会从调用的QPrinter设置对话框的打印机列表中删除“写为PDF”。有可能吗?
我尝试用自己的按钮和操作替换QPrintPreviewDialog中的打印图标,但Qt仍显示标准的QPrinter对话框,并且我不知道如何从该对话框的打印机列表中删除“写入PDF”。
答案 0 :(得分:0)
简短的回答:否,无法在默认的打印对话框中更改打印机列表。
解决方法:如果用户选择“打印到文件”选项,则不要打印任何内容(也许告诉他们他们不会从您的应用程序中获取PDF)。
您可以这样操作:将QPrintPreviewDialog::paintRequested
信号连接到这样的插槽上:
void Widget::onPaintRequested(QPrinter *printer)
{
QVariant printername = printer->printEngine()->property(QPrintEngine::PPK_PrinterName);
if(printername.toString().isEmpty())
{
QMessageBox::information(this, "Print issue", "Print to file is not available for weird unknown reasons ...");
}
else
{
//supply the requested paint code
}
}
在this这样的问题的答案中,对该主题有更多(也许是鼓舞人心的)想法。