Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 可不可以删除“;“写信至PDF”;从QPrinter对话框从QPrintPreviewDialog调用?_C++_Linux_Qt_Pdf_Qprinter - Fatal编程技术网

C++ 可不可以删除“;“写信至PDF”;从QPrinter对话框从QPrintPreviewDialog调用?

C++ 可不可以删除“;“写信至PDF”;从QPrinter对话框从QPrintPreviewDialog调用?,c++,linux,qt,pdf,qprinter,C++,Linux,Qt,Pdf,Qprinter,在Linux下,当从QPrintPreviewDialog打印文档时,我不想从QPrinter设置对话框中的打印机列表中删除“写入PDF”。有可能吗 我尝试用自己的按钮和操作替换QPrintPreviewDialog中的打印图标,但Qt仍然显示标准QPrinter对话框,我不知道如何从该对话框的打印机列表中删除“写入PDF”。简短回答:不,无法在默认打印对话框中更改打印机列表 解决方法:如果用户选择“打印到文件”选项,不要打印任何内容(可能会告诉他们你的应用程序中没有PDF) 可以这样做:将QP

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


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

简短回答:不,无法在默认打印对话框中更改打印机列表

解决方法:如果用户选择“打印到文件”选项,不要打印任何内容(可能会告诉他们你的应用程序中没有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
    }
}

在对SO问题的回答中,对该主题有更多的想法(可能是鼓舞人心的)。

简短回答:不,无法更改默认打印对话框中的打印机列表

解决方法:如果用户选择“打印到文件”选项,不要打印任何内容(可能会告诉他们你的应用程序中没有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
    }
}

在对SO问题的回答中,对这个主题有更多的想法(可能是鼓舞人心的)。

谢谢,这就是我一直在寻找的。很有效。谢谢你,这就是我一直在寻找的。它起作用了。