是否可以设置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; } 并希望使用组合框下拉项目... –