Qt每天一个小技巧之setProperty 设置属性功能

Qt每天一个小技巧之setProperty 设置属性功能说好的计划 就要实现 今年我要把吹过的牛皮 设定的计划 统统给圆了 打开 Qt 帮助文档 我们接着看到了这个函数 QList QByteArray dynamicPrope const 这个函数的目的就是获取到动态属性的名字 那我们相关运用到上面是那些呢 与其相关联就是下面函数了 QVariantprop constchar name constboolset constchar name constQVari QByteArray

说好的计划,就要实现,今年我要把吹过的牛皮,设定的计划,统统给圆了。

打开Qt帮助文档,我们接着看到了这个函数:

QList 
  
    dynamicPropertyNames() const 
  

这个函数的目的就是获取到动态属性的名字,那我们相关运用到上面是那些呢。

与其相关联就是下面函数了:

QVariant property(const char *name) const bool setProperty(const char *name, const QVariant &value) 

一个是获取属性,一个是设置属性。那我们一般如何用这个呢,好多情况在qss中配合使用。

首先看下代码:

void MainWindow::setPropertA() { QPushButton *button = new QPushButton; button->setProperty("flat",true); QVariant isflat = button->property("flat"); qDebug() << isflat << endl; }

我们可以设置一个属性,然后在找到对应的属性值。

Qt每天一个小技巧之setProperty 设置属性功能

我们运用到qss中,来看下效果吧。

首先我们界面布局如下

Qt每天一个小技巧之setProperty 设置属性功能

对应的qss表写如下:

QLineEdit#lineEdit { background:yellow; } #lineEdit[required = true] { background:red; }

 在改变属性按钮写下如下代码:

void MainWindow::on_pushButton_clicked() { ui->lineEdit->setProperty("required",true); //设置为true ui->lineEdit->style()->polish(ui->lineEdit); }

运行程序后,点击按钮后,就会变成红色。

Qt每天一个小技巧之setProperty 设置属性功能

  

 dynamicPropertyNames的使用

我们在按钮下,写下代码:

void MainWindow::on_pushButton_2_clicked() { QList 
  
    names = ui->lineEdit->dynamicPropertyNames(); for(auto name : names) { qDebug() << name << endl; } } 
  

我们可以发现上面有我们设置的名字。

Qt每天一个小技巧之setProperty 设置属性功能

有关这个属性使用可以看我这个博客,之前写过一个功能,希望大家喜欢:

传送门:https://blog.csdn.net/weixin_/article/details/ 

下面是cpp整体的代码:

#include "mainwindow.h" #include "ui_mainwindow.h" #include 
  
    #include 
   
     #include 
    
      #include 
     
       MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setPropertA(); } MainWindow::~MainWindow() { delete ui; } void MainWindow::setPropertA() { QPushButton *button = new QPushButton; button->setProperty("flat",true); QVariant isflat = button->property("flat"); qDebug() << isflat << endl; } void MainWindow::on_pushButton_clicked() { ui->lineEdit->setProperty("required",true); //设置为true ui->lineEdit->style()->polish(ui->lineEdit); } void MainWindow::on_pushButton_2_clicked() { QList 
      
        names = ui->lineEdit->dynamicPropertyNames(); for(auto name : names) { qDebug() << name << endl; } } 
       
      
     
    
  

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217069.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午10:25
下一篇 2026年3月18日 上午10:25


相关推荐

  • 使用API Monitor监测到目标程序对系统API函数的调用(常用分析工具)

    使用API Monitor监测到目标程序对系统API函数的调用(常用分析工具)本文通过一个具体的问题实例讲述如何使用 APIMonitor 工具

    2025年12月4日
    13
  • 通过APKIDE 反编译文件得到.java文件方法

    通过APKIDE 反编译文件得到.java文件方法一 找到 apk 中的 class dex 把 apk 文件改名为 zip 然后解压缩其中的 class dex 文件 它就是 java 文件编译再通过 dx 工具打包成的 1 把 class dex 拷贝到 dex2jar bat 所在目录 直接拖动 class dex 到 dex2jar bat 生成 classes dex dex2jar jar 或者 1 在 cmd 下进入 dex2jar bat 所在路径 然后输入 dex2j

    2026年3月18日
    2
  • netstat命令参数和使用详解

    netstat命令参数和使用详解netstat-Printnetworkconnections,routingtables,interfacestatistics,masqueradeconnections,andmulticastmembershipsnetstat-打印网络连接、路由表、接口统计、伪装连接和多播成员关系参数usage:netstat[-…

    2022年5月7日
    50
  • ORB-SLAM——a Versatile and Accurate Monocular SLAM System)

    ORB-SLAM——a Versatile and Accurate Monocular SLAM System)ORB-SLAM:一种通用的(全能的)精确的单目SLAM系统#摘要本文提出了ORB-SLAM,在大小场景、室内室外环境下都可以实时操作的一种基于特征的单目SLAM系统。系统对复杂的剧烈运动具有鲁棒性,允许宽基线的闭环和重定位,且包含完整的自动初始化。基于最近几年的优秀算法之上,我们从头开始设计了一种新颖的系统,它对所有SLAM任务使用相同的特征:追踪、建图、重定位和闭环。合适策略的存在使得选…

    2022年6月7日
    33
  • Java基础——成员变量、局部变量和静态变量的区别

    Java基础——成员变量、局部变量和静态变量的区别之前在刚开始学习Java的时候,就谈了谈Java基础中的变量,虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量、局部变量和静态变量。变来变去太容易让人搞晕了,挑拣出来梳理一下喽!    要想区分这哥仨,首先,我们得知道它们分别是什么。先从成员变量下刀。成员变量    我们来研究一个事物:        属性:外在特征;例如人的身高

    2022年5月1日
    64
  • upx手动脱壳

    upx手动脱壳upxupx是一个开源的工具,可以到github下载upxupx简单的用法upxsrc.exe命令将src.exe加壳upxsrc.exe-odst.exe命令将src.exe加壳并另存为dst.exeupx手动脱壳

    2022年7月19日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号