一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

QT中的进度条对话框,默认设置状态下的QProgressDialog:

复制代码
1     QProgressDialog oQProgressDialog;
2     oQProgressDialog.setWindowModality(Qt::ApplicationModal);//对本程序模态
3     oQProgressDialog.setWindowTitle(QString::fromLocal8Bit("请等待..."));
4     oQProgressDialog.setLabelText(QString::fromLocal8Bit("正在执行..."));
5     oQProgressDialog.setRange(0, 5);
6     oQProgressDialog.setValue(0);
7     oQProgressDialog.show();
复制代码

在右上角是有一个 “ ? ” 帮助按钮和 “ X ” 关闭按钮,右下方则是一个 “ Cancel ” 按钮。如果需要禁用或者取消这三个按钮,则需要多加两句代码:

1 //去除对话框内的Cancel按钮
2 oQProgressDialog.setCancelButtonText(nullptr);
3  
4 //禁用右上角所有按钮,但最小化按钮可用
5 oQProgressDialog.setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint);

这样既不能点击右上角的“X”关闭,也不能点击“Cancel”按钮取消,使用者啥都不能做,只能乖乖等待完成,从而省去做取消相关的逻辑,和避免误操作。

其实对话框内的 “ Cancel ” 按钮还有其他方法禁用或者隐藏:

复制代码
1 //方法2:创建一个取消按钮,覆盖默认的“Cancel”按钮,然后隐藏按钮
2 QPushButton okButton(QString::fromLocal8Bit("取消"));//创建一个“取消”按钮
3 okButton.hide();//隐藏此按钮
4 okButton.setEnabled(false);//禁用此按钮
5 oQProgressDialog.setCancelButton(&okButton);//替换进度条对话框内默认的“Cancel”按钮
6  
7  
8 //方法3:整个进度条对话框禁用
9 oQProgressDialog.setEnabled(false);
复制代码

 

posted on   一杯清酒邀明月  阅读(3325)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2021-04-28 Qt QSS教程 QSpinBox
2021-04-28 Qt QSS教程 QLineEdit
2021-04-28 Qt QSlider qss(round handle) 圆形滑块
2021-04-28 Qt QSS之QSlider滑动条美化
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示