QT QComboBox的定制,包括下拉菜单
来源:互联网 发布:计算机二级知乎 编辑:程序博客网 时间:2024/06/05 07:15
QCombox本身样式可以使用样式表定制,例如:
QComboBox#pcdevicecombo{
border: 2px solid #323232;
background: #0F0F0F;
color: #C4C4C4;
}
QComboBox#pcdevicecombo::drop-down{
background: #323232;
width:26px;
}
QComboBox#pcdevicecombo::down-arrow {
image: url();
}
关于QCombox的下拉菜单说明文档中的做法:
QComboBoxQAbstractItemView {
border: 2px solid darkgray;
selection-background-color: lightgray;
}
但经过试验发现下拉菜单起不到作用,如何定制呢
QListWidget *list_widget = new QListWidget();
list_widget->setObjectName("pccombox");
m_pEditCombo->setModel(list_widget->model());
m_pEditCombo->setView(list_widget);
新建一个QListWidget,使用这个listWidget作为QComboBox的View,设置listWidget的样式,就改变了QComboBox的样式,QComboBox还是按照之前那样使用,添加item的方式也不变,但如果需要定制复杂样式,可以使用QListWidget添加自定义Widget实现复杂的QComboBox下拉样式。
这是上例中QListWidgte的样式:
QListView#pccombox{
border: 0px;
}
QListView#pccombox::item{
height:36px;
background: #131313;
color: #999999;
}
QListView#pccombox::item:hover{
background: #323232;
}
如此设置之后效果99%,但你会发现,下拉菜单hover项会有一圈虚线框,通过 list_widget->setEditTriggers(QAbstractItemView::NoEditTriggers);
list_widget->setFocusPolicy(Qt::NoFocus); 还是不能解决,方法就是在 QListWidget样式中加入
outline:0px;
最终结果
QListView#pccombox{
border: 0px;
outline:0px;
}效果100%
0 0
- QT QComboBox的定制,包括下拉菜单
- Qt之QComboBox定制
- Qt QComboBox自定义的下拉框
- QT - qss(二)组合框QComboBox的定制
- QT 自定义Qcombobox样式,下拉项同时包括图片和文字
- QT QComboBox的下拉列表项设置高度
- Qt - 自定义QComboBox下拉框的item高度
- [Qt]QCombobox下拉列表文字显示一半的问题
- 组合框QComboBox的定制
- 组合框QComboBox的定制
- Qt的QComboBox类
- Qt-下拉列表框QComboBox类
- Qt QComboBox下拉框高度固定问题
- Qt Style Sheet实践(二):组合框QComboBox的定制
- Qt Style Sheet实践(二):组合框QComboBox的定制
- Qt QComboBox 的 setCompleter 问题
- Qt --------QCombobox组件的使用
- Qt中QComboBox下拉列表(popup)位置与样式的控制
- String.split()注意
- 遇到的小错误
- Count Numbers with Unique Digits
- 浅谈并小结java内存泄漏
- java基础学习之排序,查找
- QT QComboBox的定制,包括下拉菜单
- Manifest中的Permission
- 机器学习书单
- LNMP(Linux+Nginx+Mysql+PHP)搭建网站
- android .9.png
- tmux2.1 启用鼠标控制
- java Comparable 和Comparator详解及 区别(附代码)
- 内存管理
- 【python3】error: Microsoft Visual C++ 10.0 is