繁体   English   中英

是否可以从QPrintPreviewDialog调用的QPrinter对话框中删除“写入PDF”?

[英]Is it possible to remove “Write to PDF” from QPrinter dialog called from QPrintPreviewDialog?

当从QPrintPreviewDialog打印文档时,我不会在Linux下从称为“ QPrinter设置”对话框的打印机列表中删除“写入PDF”。 有可能吗?

我尝试用自己的按钮和操作替换QPrintPreviewDialog中的打印图标,但Qt仍显示标准的QPrinter对话框,并且我不知道如何从该对话框的打印机列表中删除“写入PDF”。

简短的答案:不,没有办法在默认的打印对话框中更改打印机列表。

解决方法:如果用户选择“打印到文件”选项,则不要打印任何内容(也许告诉他们,您的应用程序将没有PDF)。

您可以这样进行:将QPrintPreviewDialog::paintRequested信号连接到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
    }
}

SO问题的答案中,关于该主题的其他一些想法(可能是鼓舞人心的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM