QSS属性选择器同时匹配多个属性的例子_qss 多个属性-程序员宅基地

技术标签: Qt  qt,qss,属性选择器  

Qt的QSS官方文档中关于属性选择器有如下的描述

按照官方文档中的描述匹配一个属性完全没问题,但如果需要同时匹配多个属性该如何处理呢?官方文档没有给出具体的方法,经过测试,按照QPushButton[property1="value1"][property2="value2"]的方式可以同时匹配多个属性,下面举个栗子:

mybutton.h

#ifndef MYBUTTON_H
#define MYBUTTON_H

#include <QPushButton>

class MyButton : public QPushButton
{
    Q_OBJECT
    Q_PROPERTY(QString type MEMBER m_type WRITE setType)
    Q_PROPERTY(int number MEMBER m_number WRITE setNumber)
public:
    explicit MyButton(QWidget *parent = 0);
    void setType(const QString &type);
    void setNumber(int number);

private:
    QString m_type;
    int m_number;
};

#endif // MYBUTTON_H

mybutton.cpp

#include "mybutton.h"

MyButton::MyButton(QWidget *parent)
    : QPushButton(parent)
    , m_number(1)
{
}

void MyButton::setType(const QString &type)
{
    this->m_type=type;
}

void MyButton::setNumber(int number)
{
    this->m_number=number;
}

mainwidget.h

#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>

namespace Ui {
class MainWidget;
}

class MainWidget : public QWidget
{
    Q_OBJECT

public:
    explicit MainWidget(QWidget *parent = 0);
    ~MainWidget();

private slots:
    void on_buttonSetup_clicked();

private:
    Ui::MainWidget *ui;
};

#endif // MAINWIDGET_H

mainwidget.cpp

#include "mainwidget.h"
#include "ui_mainwidget.h"

MainWidget::MainWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MainWidget)
{
    ui->setupUi(this);

    ui->button_AA_11->setType("AA");
    ui->button_AA_11->setNumber(11);

    ui->button_AA_22->setType("AA");
    ui->button_AA_22->setNumber(22);

    ui->button_BB_11->setType("BB");
    ui->button_BB_11->setNumber(11);
}

MainWidget::~MainWidget()
{
    delete ui;
}

void MainWidget::on_buttonSetup_clicked()
{
    this->setStyleSheet(ui->textStyleSheet->toPlainText());
}

运行效果(点击Setup按钮后的效果):

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

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zgrjkflmkyc/article/details/108046718

智能推荐

Intellij IDEA配置AndroidSDK报错,No Java SDK of appropriate version found.-程序员宅基地

文章浏览阅读5.5k次。我明明配置了jdk1.7的,配置AndroidSDK时报错 换了jdk1.8就行了_no java sdk of appropriate

嵌入式 独立看门狗实验_嵌入式看门狗实验-程序员宅基地

文章浏览阅读1.5k次。(1) 为什么需要看门狗?在MCU微型计算机系统中,MCU运行程序很容易受到外界电磁场的干扰,从而造成程序运行错误甚至发生跑飞现象,从而陷入死循环,程序的正常运行被打乱,从而造成不可预料的严重后果,于是人们就设计了一款用于实时监测计算机运行状态的芯片,我们就将其称为“看门狗”。(2) 看门狗的作用看门狗在我们程序正常工作的时候是不工作的,也就是说他根本没有任何作用,只有在单片机发生程序跑飞现象的时候看门狗才会产生一个复位脉冲强制单片机复位,从而使单片机正常运行。_嵌入式看门狗实验

Android与JS交互---内嵌框架iframe_安卓webview 如何获取iframe内容-程序员宅基地

文章浏览阅读7.7k次。1:Android端添加WebView控件,用于加载Html文件WebView webView= newWebView(this);setContentView(webView);webView.setVerticalScrollBarEnabled(false);webView.setHorizontalScrollBarEnabled(false);WebSetti_安卓webview 如何获取iframe内容

python中cdt库与R的依赖包连接问题解决_r call errored, is r available ?-程序员宅基地

文章浏览阅读1.3k次,点赞6次,收藏3次。python中的cdt库的安装后,在调用其中某些算法,如cdt.causality.graph.PC或者(LiNGAM)等,可能会报出错误:“R Call errored, is R available ?”出现这种错误的原因是:在cdt包中没有调整其中关于R的路径,导致找不到R包。由于在网上关于cdt包的介绍本来就少,找到一位老哥写的(链接在下面),十分不错,但是有瑕疵,所以特此写这个瑕疵的解决,让大家避坑,也是为了记录一下自己犯的错。好了废话不多说,解决办法就是:找到python的路径下的Lib\_r call errored, is r available ?

Elasticsearch Scripting脚本使用总结_elasticsearch 脚本script-程序员宅基地

文章浏览阅读3.4k次,点赞5次,收藏10次。目录一、概述二、Scripting脚本使用一、概述Elasticsearch提供的增删改查相关API虽然能解决大部分业务场景的问题,但是在一些相对复杂的业务场景,使用增删改查不太好实现的时候,此时就需要借助Elasticsearch脚本进行实现,Elasticsearch脚本可以帮助我们解决复杂业务问题,如:自定义评分、自定义文本相关度、自定义过滤、自定义聚合分析等。首先了解一下Scripting 使用语法:"script": { "lang": "...", // _elasticsearch 脚本script

java有什么岗位_java开发有哪些岗位?相关岗位及工作职责-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏15次。Java是所有编程语言排名第一的语言,受众范围非常广,大家学习了java之后,就可以出去找工作,那么java开发有哪些相关岗位呢?接下来我们就来给大家讲解一下相关岗位及工作职责。一、JAVA开发工程师1. 协助团队负责人,按照产品功能需求和任务进度要求,完成指派的研发与运维工作;2. 负责具体功能模块的需求分析、设计及编码实现;3. 遵守技术规范,保障代码质量;4. 负责系统运维的日常技术支持与快..._与java相关的岗位

随便推点

IDEA中文字体格式-程序员宅基地

文章浏览阅读1.1w次,点赞9次,收藏9次。背景:刚刚换了新版的IDEA,然后发现项目中中文巨丑,而且字体大小不一致如下图:原因分析:这两张图就是工具编辑面板的字体设置,只设置了主字体,备用字体没有设置,非常怀疑主字体不支持中文所以想到两种解决方式方式一:设置备用字体,切记一定要选可以支持中文的字体,举个例子“fangsong”,"Microsoft XXX"等等两图中得备用字体都设置成“fangsong”字体格式,然..._idea中文字体

23种设计模式详解与示例代码(详解附DEMO)_23种设计模式代码-程序员宅基地

文章浏览阅读1.3w次,点赞34次,收藏81次。本文将探讨设计模式在Java中的应用与实现。设计模式是一套被广泛接受的解决常见软件设计问题的经典方法。在Java编程中,设计模式是提高代码可读性、可维护性和可扩展性的关键。本文将详细介绍Java中常用的几种设计模式,包括工厂模式、单例模式、观察者模式和装饰器模式,并提供具体的代码示例和解释,帮助读者深入理解和学习这些模式的实现方式。_23种设计模式代码

vue-print设置页眉和页脚_掌握这5个Word页码设置技巧,写论文足够用了-程序员宅基地

文章浏览阅读3.6k次。1、每页添加一个文档双击页眉处,进入相应的编辑状态,将鼠标移到页脚处,点击设计——页眉和页脚——页码,插入合适的样式即可。PS:页码插入的方式还可以通过插入——页眉和页脚——页码方式来实现。2、第几页共几页如何将文档设置成第几页共几页的格式?点击插入——页码——选择第几页共几页的页码格式(即X/Y格式),之后选中页码按Shift+F9切换域代码,输入内容【第{PAGE}页/共{NUMPAGES}页..._v-print 设置页眉

云计算介绍-1.1,IaaS\PaaS\SaaS辨析_paas msb-程序员宅基地

文章浏览阅读6.4k次,点赞4次,收藏6次。云计算是个很神奇的词汇,神奇在一切基于WEB的应用似乎都可以套到云计算范围内。一个原因是:云计算几乎没有标准,因为大家都不清楚什么是云计算,大家觉得各种概念都像云计算,所以可以任意用,随意扩展云计算范围。作为一个研发人员,我希望从底层实现来了解云计算的实质。所以在介绍云计算时,我希望能够找到一种直观、容易理解、直接从底层实现而非商业模式入手 的介绍方法,这个突破口就是:1,计费模式,从中可以理解什么是按需购买,2,与旧技术对比(没有一种技术是凭空产生,大多数技术都是旧技术演进而来)。_paas msb

历年CSP-J(NOIP普及组)考点分析与分类汇总(纯干货)_cspj历年真题考点-程序员宅基地

文章浏览阅读2k次,点赞35次,收藏36次。noip/csp-j历年真题考点分类_cspj历年真题考点

idea报错-java file outside of source root_idea提示:java file outside of source-程序员宅基地

文章浏览阅读1.7w次,点赞25次,收藏15次。IntelliJ IDEA 工程Java文件上红色的无效符(红色表示该类是不可编译文件)在Java文件夹点击右键找到Mark Direc tory as -->Sources Root(告诉IntelliJ IDEA,Java文件夹及其子文件夹中包含的源代码,可以编译为构建过程的一部分)果然ok..._idea提示:java file outside of source

推荐文章

热门文章

相关标签