簡體   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