gpt4 book ai didi

c++ - 单击“打印”按钮后,Qt 打印对话框重新出现

转载 作者:行者123 更新时间:2023-11-28 02:24:13 25 4
gpt4 key购买 nike

我正在尝试在 Qt 中打印图形。

信号槽的连接如下:

connectStat = connect(_ui->printButton, SIGNAL(clicked()), this, SLOT(doPrint()));

插槽如下:

...
QGraphicsScene * m_scene;
...
void GraphDrawerWidget::doPrint() {
QPrinter printer;
if (QPrintDialog(&printer).exec() == QDialog::Accepted) {
printer.setOrientation(QPrinter::Landscape);
QPainter painter(&printer);
painter.setRenderHint(QPainter::Antialiasing);
m_scene->render(&painter);
}
}

“打印”对话框出现,我可以通过单击“打印”按钮来打印场景。但是,在我这样做之后,打印对话框再次显示。无论我单击“打印”、“取消”还是“Window X”按钮,它在单击后仍会显示。

我是否可能将信号/插槽连接错误?

最佳答案

找到了!看来我是在另一个名为 run() (GraphDrawerWidget::run()) 的方法中执行 connect() 的,这是我将数据输入 Graphic 的地方。

我添加到图形中的每个信号都会调用一次此 run(),因此同一个插槽会被多次连接。

我现在在构造函数中连接,一切正常。

关于c++ - 单击“打印”按钮后,Qt 打印对话框重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com