2012-06-27 48 views
2
的某一個元素的樣式表

我已以下列方式QMessageBox提示:如何設置QMessageBox提示

msgBox.setText("Are you sure?"); 
msgBox.setStandardButtons(QMessageBox::Yes| QMessageBox::No); 
msgBox.setStyleSheet("background-image: url(image)"); 
msgBox.exec(); 

不幸的是使用上的消息框setStyleSheet設置了按鈕的背景,文本框和實際MSGBOX。這不是我想要的。我只想要msgbox有一個背景不是消息框的其他組件。我發現使用:

msgBox.button(QMessageBox::Yes)->setStyleSheet(...) 

可以用來設置僅在按鈕上的背景。有沒有一個命令,我可以只設置msgBox的背景,而不添加背景到按鈕和文本框?

回答

2

您可以通過使用選擇器限制樣式將應用於哪些元素。因此,僅將樣式應用到QMessageBox本身,而不是它的孩子,你會用:

msgBox.setStyleSheet("QMessageBox { background-image: url(image) }"); 

有關詳細信息,請參閱The Style Sheet Syntax - Selector Types

+0

太棒了!謝謝! – Frank

+1

就你而言,答案真的是:如果一切都失敗了,就像閱讀一本書一樣閱讀文檔。我發現,至少在Qt的情況下,在人們某個時刻只能閱讀所有內容是不可替代的。除非你真的讀過這些東西,否則你會繼續失去這樣的東西。逐頁。使用網絡瀏覽器和書籤/歷史記錄來跟蹤您讀過的內容。 –