当你说图表时,我认为它是某种矢量图形或类似的.我通常使用QPrinter将它们导出为PDF,然后在我的文档中使用它们(LaTeX,Keynote,...).这是一个可能有用的代码片段.未经测试,因为我将它从Python移植回到C++:
QPrinter *printer = new QPrinter();
printer->setOrientation(QPrinter::Landscape);
QPrintDialog *dialog = new QPrintDialog(printer);
dialog->setWindowTitle("Print Plots");
if (dialog.exec() != QDialog::Accepted)
return;
QPainter *painter = new QPainter();
painter->begin(printer);
ui->someQwtPlot->print(painter, printer->pageRect());
painter->end();
delete(dialog);
delete(painter);
delete(printer);
Run Code Online (Sandbox Code Playgroud)
我在这里假设您正在使用QwtPlot创建一个绘图,但任何支持渲染到QPainter的QWidget或对象都可以.有关详细信息,请参阅QWidget :: render().上面的代码实际上允许您甚至打印到真正的打印机.但我通常只在打印机对话框中设置"打印到PDF".如果您不需要打印机对话框,则可以跳过它并使用QPrinter :: setOutputFilename直接设置PDF文件名.