Qt使用StyleSheet美化QListView或QListWidget

Qt使用StyleSheet美化QListView或QListWidget

1 子控件与伪状态

QListWidget是QListView的子类,对这两个控件的美化是基本一样的。

对列表框的美化,分为对它本身的美化和对它的子控件item的美化。

对列表框的美化,主要就是保持背景色与item一致,以及其他一些通用的属性。

对item的美化,主要为default,hover,selected三个状态的配置。

2 分析

对QListView和QListWidget使用outline: none可以不显示item切换焦点的虚线。

如果需要对item添加边框,只显示下边框就好了(都设置边框的话前一个item的下边框会和后一个item的上边框叠在一起,边框显得很粗)。

对于选中状态后列表左侧显示小长条,有两种实现方法,这里直接设置了左边框来实现。对于一些情况控件设置左边框无效的情况下,也可以通过渐变背景色来实现。

3 编写StyleSheet

准备了两个QListWidget:listWidget、listWidget_2。其中,listWidget使用亮配色,绘制边框;listWidget_2使用暗配色,不绘制边框。

QListView {
    outline: none;
}

#listWidget::item {
    background-color: #ffffff;
    color: #000000;
    border: transparent;
    border-bottom: 1px solid #dbdbdb;
    padding: 8px;
}

#listWidget::item:hover {
    background-color: #f5f5f5;
}

#listWidget::item:selected {
    border-left: 5px solid #777777;
}

#listWidget_2::item {
    background-color: #393d49;
    color: #ffffff;
    border: transparent;
    padding: 8px;
}

#listWidget_2::item:hover {
    background-color: #4e5465;
}

#listWidget_2::item:selected {
    border-left: 5px solid #009688;
}

效果

效果图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,609评论 0 11
  • Windows 常用消息大全 表A-1 Windows消息分布 消息范围说 明 0 ~ WM_USER – 1系统...
    北风知我意阅读 2,116评论 0 0
  • 第一章 人生若只如初见 青东的夏秋季节,是这个城市一年中最美丽的季节,好多人都这样说,因为本市的银杏树非常多,一到...
    微微小甜阅读 130评论 0 0
  • 纯理性会让人丢掉七情六欲,变得漠然,成为臣服于教条的工具,与机器人无异。对世界认识、事物研究越客观越深刻的...
    安定区张虎阅读 687评论 9 19