1. 程式人生 > 其它 >QSS系列:自定義QMessageBox

QSS系列:自定義QMessageBox

技術標籤:QSS

QSS系列:自定義QMessageBox

簡述

QMessageBox的textLabel物件名為qt_msgbox_label ,iconLabel物件名為qt_msgboxex_icon_label ,buttonBox物件名為qt_msgbox_buttonbox,通過物件名可以在樣式表中有限的設定樣式。

效果

在這裡插入圖片描述

程式碼

QMessageBox messagebox(this);
messagebox.setWindowIcon(QIcon(":/Resource/logo"));
messagebox.setWindowTitle
("QMessageBox"); messagebox.setText("QMessageBox style sheet"); messagebox.setIconPixmap(QPixmap(":/Resource/border_image").scaled(40, 40)); messagebox.addButton("Okay", QMessageBox::AcceptRole); messagebox.addButton("Cancel", QMessageBox::RejectRole); QLabel *
textlabel = messagebox.findChild<QLabel*>("qt_msgbox_label"); //獲取textLabel if (textlabel) { textlabel->setAlignment(Qt::AlignCenter); //設定textLabel文字居中 } messagebox.exec();

樣式表

QMessageBox {
	background-color: #F2F2F2; /* QMessageBox背景顏色 */
}

QMessageBox QLabel#qt_msgbox_label { /* textLabel */
color: #298DFF; background-color: transparent; min-width: 240px; /* textLabel設定最小寬度可以相應的改變QMessageBox的最小寬度 */ min-height: 40px; /* textLabel和iconLabel高度保持一致 */ } QMessageBox QLabel#qt_msgboxex_icon_label { /* iconLabel */ width: 40px; height: 40px; /* textLabel和iconLabel高度保持一致 */ } QMessageBox QPushButton { /* QMessageBox中的QPushButton樣式 */ border: 1px solid #298DFF; border-radius: 3px; background-color: #F2F2F2; color: #298DFF; font-family: "Microsoft YaHei"; font-size: 10pt; min-width: 70px; min-height: 25px; } QMessageBox QPushButton:hover { background-color: #298DFF; color: #F2F2F2; } QMessageBox QPushButton:pressed { background-color: #257FE6; } QMessageBox QDialogButtonBox#qt_msgbox_buttonbox { /* buttonBox */ button-layout: 0; /* 設定QPushButton佈局好像沒啥作用 */ }

參考

參考Qt助手,如有錯誤,請指正,謝謝!