Qt模态对话框和主流程

发布于 2024-12-12 05:49:51 字数 104 浏览 0 评论 0原文

我有一个在主窗口中执行某些进程的程序,我需要一个模式对话框,其中显示一些自定义元素以显示进度。它还必须阻止用户与主窗口的交互。显示对话框时应运行主进程。 对于这个目的,哪种方法更好(在qt中)?

I have a program which executes some process in main window and I need a modal dialog with some custom elements to be shown over it to show the progress. It also must block user interaction with main window. Main process should run while dialog is shown.
Which way is better (in qt) for this purpose?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云归处 2024-12-19 05:49:51

实际上,这听起来很简单(除非我误解了你的问题)。

QDialog my_progress_dialog( this );
my_progress_dialog.setModal( true );
my_progress_dialog.show();

调用 show() 而不是 exec() 将使您处于主事件循环中。同时,设置对话框模式会阻止所有用户输入到主窗口。工作完成了。

你看过QProgressDialog吗?它正是为了这个目的而存在的。

Actually, this sounds kinda easy (unless I misunderstand your question).

QDialog my_progress_dialog( this );
my_progress_dialog.setModal( true );
my_progress_dialog.show();

Calling show() not exec() will leave you in the main eventloop. At the same time, setting the dialog modal blocks all user input to the main window. Job done.

Have you looked at QProgressDialog? It's there for exactly this purpose.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文