QListWidget
1.失去焦点背景颜色,代码设置全选的时候,背景会是白色,需要设置失去焦点背景颜色。(设置焦点,会出现白转化成设置背景色,效果不好)
QPalette p;
p.setColor(QPalette::Inactive,QPalette::Highlight,QColor(51,153,255));
p.setColor(QPalette::Inactive,QPalette::HighlightedText,QColor(Qt::white));
p.setColor(QPalette::Inactive,QPalette::Text,QColor(Qt::white));
lwItems->setPalette(p); 去掉选择虚线框
MyListWidgetDelegate *listWidgetDelegate=new MyListWidgetDelegate(lwItems);
lwItems->setItemDelegate(listWidgetDelegate);
void DataDlg::createMiddleListView()
{ lwItems=new QListWidget();
lwItems->setSelectionMode(QAbstractItemView::MultiSelection);
lwItems->setEditTriggers(QAbstractItemView::SelectedClicked);
QPalette p;
p.setColor(QPalette::Inactive,QPalette::Highlight,QColor(,,));
p.setColor(QPalette::Inactive,QPalette::HighlightedText,QColor(Qt::white));
p.setColor(QPalette::Inactive,QPalette::Text,QColor(Qt::white));
lwItems->setPalette(p);
lwItems->setIconSize(QSize(,));
lwItems->setObjectName("lwItems");
MyListWidgetDelegate *listWidgetDelegate=new MyListWidgetDelegate(lwItems);
lwItems->setItemDelegate(listWidgetDelegate);
addExportItems();
contentLayout->addWidget(lwItems); }
添加数据
void DataDlg::addExportItems()
{
isExportData=true;
lwItems->clear();
btnImportExport->setText(exportText);
for(int i=;i<ExportFieldsCount;i++)
{
lwItems->addItem(ExportFields[i].fields);
setListWidgetIcon(i,false);
} }
选择触发事件
void DataDlg::listWidgetEvent(QListWidgetItem *clickedItem)
{ bool isSeleced=clickedItem->isSelected(); if(isSeleced==true)
{
clickedItem->setIcon(QIcon(":/res/icons/images/checkbox_checked.png")); }
else
{
clickedItem->setIcon(QIcon(":/res/icons/images/checkbox_unchecked.png")); } }
设置全选或者取消全选
void DataDlg::onSelectAll()
{
isSelectAll=!isSelectAll; int itemCount=lwItems->count();
for(int i=;i<itemCount;i++)
{
lwItems->item(i)->setSelected(isSelectAll); setListWidgetIcon(i,isSelectAll);
} }
添加图标
void DataDlg::setListWidgetIcon(int row,bool isChecked)
{
if(isChecked)
{
lwItems->item(row)->setIcon(QIcon(":/res/icons/images/checkbox_checked.png"));
}
else
{
lwItems->item(row)->setIcon(QIcon(":/res/icons/images/checkbox_unchecked.png")); } }
取出选中的值
int selectedCount=lwItems->selectedItems().count();
if(selectedCount==)
{
return;
} QString selectedText="";
for(int i=;i<selectedCount;i++)
{ selectedText=lwItems->selectedItems().at(i)->text();
}
2. 去掉选择虚线框
#ifndef MYLISTWIDGETDELEGATE_H
#define MYLISTWIDGETDELEGATE_H #include <QObject>
#include<QItemDelegate>
#include<QPen>
#include<QPainter>
#include<QBrush>
#include<QStyledItemDelegate> #include<QDebug> class MyListWidgetDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit MyListWidgetDelegate(QObject *parent = ); protected:
void paint(QPainter *painter,const QStyleOptionViewItem &option, const QModelIndex &index) const; private: signals: public slots:
}; #endif // MYLISTWIDGETDELEGATE_H
#include "mylistwidgetdelegate.h" MyListWidgetDelegate::MyListWidgetDelegate(QObject *parent) : QStyledItemDelegate(parent)
{ }
void MyListWidgetDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{ QStyleOptionViewItem itemOption(option);
if(itemOption.state & QStyle::State_HasFocus)
{
itemOption.state = itemOption.state ^ QStyle::State_HasFocus;
} //调用默认委托
QStyledItemDelegate::paint(painter,itemOption,index); QPen pen;
pen.setColor(QColor(,,));
pen.setStyle(Qt::DotLine);
painter->setPen(pen);
painter->drawLine(itemOption.rect.bottomLeft(),itemOption.rect.bottomRight()); }
qss
QListWidget#lwItems{
color:#FFFFFF;
font:16pt "DejaVu Sans";
background-color:#;
margin:2px;
padding-left:10px;
padding-right:10px;
border: 1px solid #32435E;
}
QListWidget#scaleItemsList,QListWidget#connectedIPList{
color:#FFFFFF;
font:16pt "DejaVu Sans";
background-color:#;
margin:20px;
border: 1px solid #32435E;
}
QListWidget::item{
border:solid #;
border-width:0px 0px 1px 0px;
padding:10px 0px 10px 15px;
margin:0px 5px 0px 5px;
}
QListWidget::item:selected {
background: qlineargradient(x1: , y1: , x2: , y2: ,
stop: #6A848C, stop: 1.0 #0F9EAF);
}
QListWidget::item:selected:!active {
border-width: 0px ;
}
QListWidget::item:selected:active {
border-width: 0px;
}
QListWidget的更多相关文章
- Pyqt QListWidget之缩略图列表
QListWidget 可以设置模型setViewMode 当setViewMode值为QListView.IconMode 表示Icon模式 以下代码来自Pyqt Example #!/usr/b ...
- Pyqt QListWidget 展示系统环境变量
今天学习了下Pyqt的 QListWidget 控件 我们先看下这个图片 这张图片就是典型的listWidget效果,我们今天就仿这样布局新建个ListWidget 在网上找了个关于QListWidg ...
- 列表框QListWidget类
QListWidget类也是GUI中常用的类,它从QListView下派生: class Q_GUI_EXPORT QListWidget : public QListView { Q_OBJECT ...
- Pyqt在QListWidget中添加右键菜单
Pyqt 的资料奇少, 攻破难点之后, 就在这里记一下笔记. QListWidget 是继承 QWidget 的, 所以 QListWidget 是有右键菜单的, 从文档上可以找到 QWidget 上 ...
- QPushButton 与 QListWidget 的按键响应
在Qt中添加按钮或表格控件时需要添加其按键响应,一般来说有两种方法,一种是直接实现其响应函数,第二种是自己写一个响应函数,然后用Qt的信号槽将它们连接起来.愚以为第一种方法更为简单一些. 声明这些控件 ...
- QListWidget特别简单,但有两种添加item的方式
虽然特别简单,但是对于小白来说,还是有必要过一下脑子和眼睛,当然还得过手(江湖传言:眼过千变,不如手过一遍),所以记录在此: #include "tablewidgetxxx.h" ...
- QListWidget代码刷新界面
我有一个特殊效果要求实现(其实很弱智,也变成特殊效果,汗一下自己):两个QRadioButton切换的时候,让旁边的QListWidget自动变化不同的背景色.想了很多办法: 1. 控件自己刷新,不行 ...
- QListWidget方式显示缩略图
最近在工作中经常遇到了一个问题就是把把文件夹中的图片全部以缩略图的形式显示出来,刚开始的时候一头雾水,不知道怎么办,经过在网上查资料,发现QListWidget控件可以实现图片的缩略图显示,但是不知道 ...
- qt model/view 架构基础介绍之QListWidget
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from Py ...
随机推荐
- SignalR 资料
链接:http://www.cnblogs.com/royding/p/3919134.html
- 【9-6】Centos学习笔记
linux文件系统结构 常用技巧 快捷键启动终端 su命令,使用超级用户登陆 visudo :编辑用户权限 tar xf 文件名:解压文件 Vim编辑器 Tips yum包管理:Yum(全称为 Yel ...
- Linux服务器管理: 系统的进程管理ps命令
源码包:2015-06-30 12:11:25 首先我们可以通过网络去下载相应的源码包:我们以apache为例: [root@localhostA1 opt]# wget http://archive ...
- [AngularJS] 入门
什么是AngularJS AngularJS是Google开源的一款JavaScript MVC框架,弥补了HTML在构建应用方面的不足, 其通过使用指令(directives)结构来扩展HTML词汇 ...
- 只会CSS还不够,LESS、SASS、BootStrap、Foundation一网打尽!
有些人想学CSS,不知如何下手:有些人已经学会CSS的各种属性,却不知如何运用:有些人会平面设计,不知道如何与网页设计结合:有些人会HTML,就是学不会CSS.试问自己,图中的技术你都会了吗? 别总是 ...
- php打印出来金字塔
/* 空格数($k): 第几($i)层 所以:$k+$i=$m $k=$m-$i * * 3--- ...
- Yahoo News Digest(雅虎新闻摘要)APP的推出,未来的seo界又要受伤了
雅虎在 CES 上公布了旗下首款基于 Summly (天才青少年尼克·阿洛伊西奥(Nick D'Aloisio)开发,此前将其公司以3300万美元出售给雅虎)的新闻 APP - Yahoo News ...
- 【C语言入门教程】4.4 指针 与 指针变量
在程序中声明变量后,编译器就会为该变量分配相应的内存单元.也就是说,每个变量在内存会有固定的位置,有具体的地址.由于变量的数据类型不同,它所占的内存单元数也不相同.如下列声明了一些变量和数组. int ...
- git之tag
参考:git命令之git tag 给当前分支打标签 1.git tag //查看已有标签 2.创建本地标签 git tag tag_name //创建标签 git tag -a v0.1.2 -m ...
- RFM
前面博客中讲到的聚类,聚类是对客户的一些特征进行分群,属于描述,不涉及客户价值的判断,然而在营销中,其实第一步应该是搞清楚谁才是你的关键客户,哪些用户的价值较高,这就需要用到RFM模型.RFM模型是众 ...