用styleSheet去掉qmessagebox::question标题栏
时间: 2024-01-05 13:04:49 浏览: 34
可以使用Qt的样式表(styleSheet)来去掉QMessageBox的标题栏。具体的做法是,通过样式表设置QMessageBox的标题栏的高度为0,从而达到隐藏的效果。示例代码如下:
```cpp
QMessageBox msgBox;
msgBox.setStyleSheet("QHeaderView::section{background-color:#E6E6FA;}"
"QMessageBox {"
" font-size: 16px;"
"}"
"QMessageBox QLabel#qt_msgbox_label {"
" font-weight: bold;"
"}"
"QMessageBox QPushButton {"
" font-size: 16px;"
" padding: 5px 10px;"
" margin: 10px;"
" border: none;"
" border-radius: 5px;"
" background-color: #E6E6FA;"
"}"
"QMessageBox QPushButton:hover {"
" background-color: #D8BFD8;"
"}"
"QMessageBox QPushButton:pressed {"
" background-color: #BA55D3;"
"}"
"QMessageBox QFrame {"
" border: none;"
" border-top: 1px solid #E6E6FA;"
"}"
"QMessageBox QFrame#qt_msgbox_buttonbox {"
" margin-top: 10px;"
"}"
"QMessageBox QFrame#qt_msgbox_icon {"
" width: 64px;"
" height: 64px;"
"}"
"QMessageBox QFrame#qt_msgbox_label {"
" border: none;"
" border-bottom: 1px solid #E6E6FA;"
" padding-bottom: 10px;"
" margin-bottom: 10px;"
"}"
"QMessageBox QFrame#qt_msgbox_label QLabel {"
" margin-top: 10px;"
" margin-bottom: 10px;"
"}"
"QMessageBox QFrame#qt_msgbox_buttonbox QPushButton:first-child {"
" margin-left: 0;"
"}"
"QMessageBox QFrame#qt_msgbox_buttonbox QPushButton:last-child {"
" margin-right: 0;"
"}"
"QMessageBox QFrame#qt_msgbox_buttonbox QPushButton:only-child {"
" margin: 0;"
"}"
"QMessageBox QHeaderView::section {"
" max-height: 0;"
" padding: 0;"
" border: none;"
" margin: 0;"
"}"
"QMessageBox QHeaderView {"
" border: none;"
" margin: 0;"
"}"
);
msgBox.setWindowTitle("Title");
msgBox.setText("Message");
msgBox.setIcon(QMessageBox::Question);
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
msgBox.setDefaultButton(QMessageBox::No);
msgBox.setEscapeButton(QMessageBox::No);
msgBox.exec();
```
在这段代码中,我们首先使用样式表设置了QMessageBox的各个部分的样式,然后在样式表中添加了下面一段代码:
```cpp
"QMessageBox QHeaderView::section {"
" max-height: 0;"
" padding: 0;"
" border: none;"
" margin: 0;"
"}"
"QMessageBox QHeaderView {"
" border: none;"
" margin: 0;"
"}"
```
这段代码的作用是将QMessageBox的标题栏的高度设置为0,从而达到了隐藏标题栏的效果。