QT中QProgressDialog进度条对话框设置隐藏取消按钮和禁用右上角“X”关闭按钮、“?”帮助按钮

本文介绍了如何在QT中使用QProgressDialog进行进度条显示,并详细讲解了如何禁用或隐藏对话框内的取消按钮、关闭按钮以及帮助按钮,确保用户在等待过程中无法进行任何操作,简化程序逻辑并防止误操作。提供了三种不同的禁用或隐藏按钮的方法,包括设置窗口标志、替换默认取消按钮以及直接禁用整个对话框。
摘要由CSDN通过智能技术生成

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

    QProgressDialog oQProgressDialog(this);// 最好指定parent窗体,否则模态可能无效
    oQProgressDialog.setWindowModality(Qt::ApplicationModal);//对本程序模态,本程序所有窗口都禁止输入
    oQProgressDialog.setWindowTitle(QString::fromLocal8Bit("请等待..."));
    oQProgressDialog.setLabelText(QString::fromLocal8Bit("正在执行..."));
    oQProgressDialog.setRange(0, 5);
    oQProgressDialog.setValue(0);
    oQProgressDialog.resize(320,180);// 设置对话框的尺寸(不设置会自适应)
    oQProgressDialog.show();

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

//隐藏对话框内的Cancel按钮
oQProgressDialog.setCancelButtonText(nullptr);

//禁用右上角所有按钮,但最小化按钮可用
oQProgressDialog.setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint);

如果连最小化按钮都想隐藏,可以这样设置:

// 禁用右上角标题栏的关闭按钮,同时隐藏帮助按钮
oQProgressDialog.setWindowFlags(progress.windowFlags() & ~Qt::WindowCloseButtonHint & ~Qt::WindowContextHelpButtonHint);

这样设置后,既不能点击右上角的“X”关闭按钮,也不能点击“Cancel”按钮,还不能操作本程序的任何窗口,使用者啥都不能做,只能乖乖等待完成(睇你死未),从而省去做取消相关的逻辑,和避免误操作,本人最讨厌做取消流程。

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

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


//方法3:整个进度条对话框禁用
oQProgressDialog.setEnabled(false);

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Qt,你可以使用以下方法禁用隐藏右上角关闭按钮: 1. 使用setWindowFlag方法,设置Qt::WindowCloseButtonHint标志为false,即可隐藏右上角关闭按钮。例如: setWindowFlag(Qt::WindowCloseButtonHint, false); 2. 如果想要禁用取消右上角关闭按钮以及其他按钮,可以使用setWindowFlags方法,并同时设置Qt::CustomizeWindowHint和Qt::WindowMinimizeButtonHint标志。例如: setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint); 请注意,以上方法适用于Qt对话框或窗口的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Qt一骚操作】Qt QDialog 对话框 右上角关闭按钮屏蔽不显示](https://blog.csdn.net/Monster_H7/article/details/120687180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [QTQProgressDialog进度条对话框设置隐藏取消按钮禁用右上角“X”关闭按钮、“?”帮助按钮](https://blog.csdn.net/wu10188/article/details/120652797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值