|
本帖最后由 云水闲 于 2022-11-2 10:54 编辑
已解决。这里打印的是文本编辑器的内容,print函数的父指针应该是QtextEdit类,是一个部件(Widget);而这里的activeMdiChild是一个窗口,所以需要进行类型转换。
更改如下成功运行。
void TextEdit::on_action_Print_triggered()//打印文档{ //QTextEdit *child = qobject_cast<QTextEdit *>(ui->mdiArea->activeSubWindow()->widget()); QMdiSubWindow *window = ui->mdiArea->activeSubWindow(); // QTextEdit *child = qobject_cast<QTextEdit *>(activeMdiChild()); QTextEdit *child = qobject_cast<QTextEdit *>(window->widget()); QPrinter printer; QPrintDialog dlg(&printer,ui->mdiArea->activeSubWindow()); if(dlg.exec() == QDialog::Accepted) { child->print(&printer); /****/ }}
|
|