首页 > 其他分享 >QT 如何优雅地去掉对话框的问号

QT 如何优雅地去掉对话框的问号

时间:2022-11-19 15:14:10浏览次数:73  
标签:Qt 对话框 优雅 WindowContextHelpButtonHint flag QT 问号

QT 对话框的问号是什么?

QDialog 默认的 window flag 中包含了 Qt::WindowContextHelpButtonHint,这个 flag 意思是在窗口上提供 "上下文帮助" 按钮

 使用方式为,调用

void QWidget::setWhatsThis(const QString &)

比如:

ui.lineEditName->setWhatsThis(u8"lineEdit 的上下文提示");

效果如下:

 

 

优雅地去掉对话框的问号

去掉该问号其实就是去掉该 flag 即可,然而网上随便一搜索便是各种不优雅的实现,比如 [这里], 还有 [这里],这些实现都重置了窗口的原有属性,而这里问题只是要纯粹地去除 Qt::WindowContextHelpButtonHint 的属性

这里提供 3 个优雅的去除单个 window flag 的方式:

//方法一:获取所有标志位,使用 &(按位与) 和 ~(按位取反) 两种位运算去除标志位
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
//方法二:获取所有标志位,设置多个标志 Flags:使用 ^(按位抑或) 位运算去除标志位
setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);
//方法三:直接设置单个标志位,参数 on=false
setWindowFlag(Qt::WindowContextHelpButtonHint, false);

 

本文地址:https://www.cnblogs.com/BensonLaur/p/16906055.html

标签:Qt,对话框,优雅,WindowContextHelpButtonHint,flag,QT,问号
From: https://www.cnblogs.com/BensonLaur/p/16906055.html

相关文章