我会很快回答这个问题,因为这是一个非常简单的问题。我如何在 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
最佳答案
我在诺基亚网站的帮助部分解决了问题的答案。我使用的代码是:
QPrinter printer;
QPrintDialog *printDialog = new QPrintDialog(&printer, this);
printDialog->setWindowTitle("Print Document");
if (printDialog->exec() != QDialog::Accepted){
ui->textBox->print(&printer);
}
这基本上是我之前所做的,除了:
- 我添加了 &printer 而不是 printer
- I added #include <QPrinter>
无论如何感谢您的帮助,我希望这对 future 的文本编辑器开发人员有所帮助。
关于c++ - 使用Qt打印功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224039/