1

我会让这个相当快,因为​​这是一个非常简单的问题。如何在 Qt 中创建一个插槽,打印出我的文本编辑器中的所有内容。只是一个打印按钮,其行为与您期望的打印按钮行为一样。我正在阅读有关 QPrintDialog 的信息,但我无法让它工作。这是我尝试过的:

QPrintDialog printDialog(printer, this);
if(printDialog.exec() == QDialog::Accepted){
    ui->textBox->print(printer);
}

我尝试在它之前做 QPrinter *printer = new QPrinter ......但这给了我各种各样的错误,我有点认为它会。我已经有#include QPrintDialog 那么我该如何真正让它工作呢?非常感谢任何帮助或建议。

编辑:我一直在寻找我的问题的答案,如果有意义的话,我发现了一个似乎更接近工作的代码。

QPrinter 打印机;

QPrintDialog *printDialog = new QPrintDialog(&printer, this);
printDialog->setWindowTitle("Print Document");
if (printDialog->exec() != QDialog::Accepted)
         return;

但是,现在我收到一条错误消息:

C:\Documents and Settings\Me\My Documents\C++ Projects\Qt Gui Applications\WordWrite-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug\..\WordWrite\wordwritemain.cpp:130: error: aggregate 'QPrinter printer' has incomplete type and cannot be defined
4

1 回答 1

1

我在诺基亚网站的帮助部分解决了问题的答案。我使用的代码是:

QPrinter printer;
QPrintDialog *printDialog = new QPrintDialog(&printer, this);
printDialog->setWindowTitle("Print Document");
if (printDialog->exec() != QDialog::Accepted){
    ui->textBox->print(&printer);
}

这基本上是我之前所做的,除了:

  • 我添加了 &printer 而不是打印机

- I added #include <QPrinter>

无论如何感谢您的帮助,我希望这对未来的文本编辑器开发人员有所帮助。

于 2012-09-01T01:27:41.877 回答