gpt4 book ai didi

c++ - 以非阻塞方式打开 QDialog

转载 作者:行者123 更新时间:2023-11-27 22:29:12 25 4
gpt4 key购买 nike

我有一个像这样打开的 QDialog:

void MyModule::openDialog() {
this->dialog->open();
printf("Hello World");
}

对话框打开得很好,但不幸的是,在调用 openDialog() 时没有打印“Hello World”——即使在关闭对话框后也是如此。但是,当我之后打开另一个完全不相关的文件对话框时,打印出该消息。

是什么导致对话框阻塞,直到打开另一个对话框?当我使用 this->dialog->exec();this->dialog->show(); 时,也会发生同样的事情。

可能值得注意的是,MyModule::openDialog() 是一个连接到按钮点击事件的插槽。

有什么想法吗?

最佳答案

这取决于操作系统,但通常 printf() 不能很好地与 GUI 配合使用。

例如在 Windows 上什么都不会出现,在 Unix 上你可以执行 fprintf(stdout, ) 然后 fflush(stdout) 或 fprintf(stderr, ) 没有缓冲

如果这只是一个调试函数,请查看 qDebug() - 这就是它的用途。

关于c++ - 以非阻塞方式打开 QDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4975001/

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