Qt 去掉QMessageBox上的标题栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 去掉QMessageBox上的标题栏相关的知识,希望对你有一定的参考价值。

点击按钮后,弹出的QMessageBox对话框,然后去掉QMessageBox对话框上面黑色的标题栏。

参考技术A msgBox->setWindowFlags(Qt::Widget | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowStaysOnTopHint);
试试这个
msgBox->setWindowFlags(Qt::Widget);

MAC上我试了这两个都可以
我在开发版上运行都直接就没有标题栏
参考技术B // QMessageBox点击按钮后右响应的int nRet = QMessageBox::question(NULL, "询问", "是否继续?", QMessageBox::Yes, QMessageBox::No);// 选择是if (QMessage::Yes == nRet) // 选择否if (QMessage::No == nRet) 追问

我是想要去掉QMessageBox上的标题栏,而不是修改。

参考技术C 估计得自己写一个了,QMessageBox貌似做不到

Qt中提示框QMessageBox怎样进行美化!

比如:去掉关闭按钮、更改背景色、更改Ok/Cancel等按钮背景图片等!
QMessageBoxmsgBox;//定义提示框
msgBox.setWindowTitle("确认删除文件");
msgBox.setText("您确定要删除吗?");msgBox.setInformativeText("亲,删除之后不可恢复哦。。。");msgBox.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);msgBox.setDefaultButton(QMessageBox::Ok);msgBox.setButtonText(QMessageBox::Ok,"确定");msgBox.setButtonText(QMessageBox::Cancel,"取消");msgBox.setWindowFlags(Qt::FramelessWindowHint);//隐藏关闭按钮msgBox.setStyleSheet("background-color:white");//设置背景色msgBox.setIconPixmap(QPixmap(":/ico/ppt"));//设置图标

这些已经设置好了,还需要设置“确定”、“取消”按钮的背景图片或颜色,最好能够自定义添加鼠标移动窗口事件!(要不隐藏掉关闭按钮之后,提示框是不能移动的!),详细解答者有追加奖励。

你可以先生成QMessageBox对象,然后定义自己定义的按钮。QPUSHBUTTON
设置按钮的属性,图标然后用addbutton添加到QMessageBox对象。
QWidget::setBackgroundRole设置背景。
好多分啊。。。追问

好多分就给你吧!

参考技术A 如果大改的话,那就重绘一个就好啦,用designer,因为本来功能也没多强大。 修改的话 可以qss追问

能有具体一点的代码吗?我对qss设置QMessageBox不熟悉,搜了好多资料也没多少帮助!谢谢了

以上是关于Qt 去掉QMessageBox上的标题栏的主要内容,如果未能解决你的问题,请参考以下文章

Qt中提示框QMessageBox怎样进行美化!

qt中如何去掉主窗口标题栏

qt去掉标题栏的窗口,最小化到任务栏后,怎么没有系统菜单?

QT学习之路

为啥我需要一个 QTranslator 来在 Windows 上的 QMessageBox 中本地化按钮文本?

QMessageBox:warning里怎么显示中文