是否可以設置QComboBox下拉列表的選定項目樣式(Qt樣式表)?QComboBox下拉列表 - 設置選定的項目樣式
9
A
回答
2
如果您的意思是您希望在組合框顯示其元素(即處於「下降」狀態)時選定的項目顯示爲不同,您可以更改調色板或樣式中的突出顯示和高亮文本的顏色內QAbstractItemView
#include <QtGui>
int main(int argc, char **argv) {
QApplication app(argc, argv);
QComboBox cb;
cb.addItem("Item 1");
cb.addItem("Item 2");
cb.addItem("Item 3");
cb.show();
QPalette p = cb.palette();
p.setColor(QPalette::HighlightedText, QColor(Qt::red));
p.setColor(QPalette::Highlight, QColor(Qt::green));
cb.setPalette(p);
// OR ...
// cb.setStyleSheet("QComboBox QAbstractItemView { "
// "selection-background-color: green; "
// "selection-color: red; }");
return app.exec();
}
如果你僅僅意味着在其「崩潰」的元素的樣式狀態,我會看看的例子Qt的樣式表參照的「Customizing QComboBox」一節你是什麼試圖去做。
11
的解決方案是
- 創建一個ListView對象
- 設置其樣式表
- 使用它作爲組合框
這裏的觀點是如何:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow * mainWindow = new QMainWindow();
QComboBox * combo = new QComboBox(mainWindow);
QListView * listView = new QListView(combo);
combo->addItem("foo");
combo->addItem("bar");
combo->addItem("foobar");
combo->addItem("fooooo");
listView->setStyleSheet("QListView::item { \
border-bottom: 5px solid white; margin:3px; } \
QListView::item:selected { \
border-bottom: 5px solid black; margin:3px; \
color: black; \
} \
");
combo->setView(listView);
mainWindow->show();
app.exec();
return 0;
}
備註: 我認爲,according to the Qt docs應用這種風格也應該工作......但它不。
QComboBox QAbstractItemView::item {
border-bottom: 5px solid white; margin:3px;
}
QComboBox QAbstractItemView::item:selected {
border-bottom: 5px solid black; margin:3px;
}
+0
謝謝!但還有一個問題......如何擺脫薄選框?看例子:http://vlasovsoft.net/images/1.png –
+5
事件更好的解決方案在這裏展示http://stackoverflow.com/questions/13308341/qcombobox-abstractitemviewitem?rq=1 – bkausbk
相關問題
- 1. PyQt QComboBox設置下拉列表中可見項目的數量
- 2. QCombobox透明項目列表樣式表
- 3. 爲QComboBox設置選定的項目
- 4. 點擊下拉列表QComboBox
- 5. 從QComboBox中的樣式列表中使用QStyleFactory設置樣式
- 6. QComboBox - 根據項目數據設置選定的項目
- 7. 設置HTML下拉列表選項
- 8. 設置下拉列表選定的值
- 9. 在下拉列表中設置選定的選項
- 10. WPF:如何自定義ComboBox的下拉列表選擇項目樣式?
- 11. 獲取下拉列表中選定項目的位置(數量)
- 12. 在列表視圖中選擇的項目設置樣式
- 13. CodeIgniter樣式下拉選項
- 14. 設置下拉列表的選項列表高度
- 15. angularjs:從數據庫的下拉列表中設置選定的項目
- 16. 檢索下拉列表的值並將其設置爲選定的項目
- 17. Mootools - 設置下拉式樣
- 18. 在視圖代碼中設置下拉列表中的選定項目
- 19. 如何爲所選列表項目設置背景樣式?
- 20. 選擇的項目 - 下拉列表 - SQL
- 21. 下拉列表選擇的項目
- 22. 如何將下拉列表選項設置爲特定值
- 23. Jquery 2下拉列表,從下拉列表中刪除選定的項目1
- 24. 樣式引導多選下拉列表
- 25. 選擇下拉列表中的已選項目/選擇列表
- 26. 如何在Honeycomb的ActionBar中設置下拉列表的樣式?
- 27. php下拉列印選定項目
- 28. 下拉列表後,新項目選擇
- 29. 的下拉列表選項
- 30. jquery將選定的項目設置到列表中的下一個選項
謝謝你的回答!我只是想改變組合框的下拉項選擇。我不想使用背景顏色進行選擇。我想使用底部邊框。我設法用QMenu做到這一點: QMenu :: item { border-bottom:5px solid white; margin:3px; } QMenu :: item :: selected { border-bottom:5px solid black; margin:3px; } 並希望使用組合框下拉項目... –