QListView的item去掉选中时的虚线、更改鼠标悬浮与选中时背景样式

来源:互联网 发布:双十一淘宝退货率 编辑:程序博客网 时间:2024/05/18 17:41

1.去掉选中时的虚线

#ifndef MYPROXYSTYLE_H#define MYPROXYSTYLE_H#include <QProxyStyle>class MyProxyStyle : public QProxyStyle{public:    MyProxyStyle();protected:    virtual void drawPrimitive(PrimitiveElement element, const QStyleOption * option,                                   QPainter * painter, const QWidget * widget = 0) const;};#endif // MYPROXYSTYLE_H
#include "myproxystyle.h"MyProxyStyle::MyProxyStyle(){}void MyProxyStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const{    if (PE_FrameFocusRect == element)    {        /// do not draw focus rectangle    }    else    {        QProxyStyle::drawPrimitive(element, option,painter, widget);    }}
#include "mainwidget.h"#include <QApplication>#include "myproxystyle.h"int main(int argc, char *argv[]){    QApplication a(argc, argv);    a.setStyle(new MyProxyStyle);    MainWidget w;    w.setWindowTitle("Test");    w.show();    return a.exec();}

更改前的效果:

更改后的效果:



可以看出,选中时的虚线被成功去掉。


2.更改鼠标悬浮与选中时背景的样式

为程序添加如下央视表

QListView::item:hover {     border-radius: 5px;    background: #EEEEEE;    color: black;}QListView::item:selected {     border-radius: 5px;    background: #DDDDDD;    color: black;}
更改前效果:

更改后效果:

可以看出更改了选中时背景的颜色,并为背景添加了圆角。(注意最中间那张猫是鼠标悬浮时的效果)

(------完-----)