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"));//设置图标
这些已经设置好了,还需要设置“确定”、“取消”按钮的背景图片或颜色,最好能够自定义添加鼠标移动窗口事件!(要不隐藏掉关闭按钮之后,提示框是不能移动的!),详细解答者有追加奖励。
设置按钮的属性,图标然后用addbutton添加到QMessageBox对象。
QWidget::setBackgroundRole设置背景。
好多分啊。。。追问
好多分就给你吧!
参考技术A 如果大改的话,那就重绘一个就好啦,用designer,因为本来功能也没多强大。 修改的话 可以qss追问能有具体一点的代码吗?我对qss设置QMessageBox不熟悉,搜了好多资料也没多少帮助!谢谢了
以上是关于Qt 去掉QMessageBox上的标题栏的主要内容,如果未能解决你的问题,请参考以下文章