说好的计划,就要实现,今年我要把吹过的牛皮,设定的计划,统统给圆了。
打开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; }
我们可以设置一个属性,然后在找到对应的属性值。

我们运用到qss中,来看下效果吧。
首先我们界面布局如下

对应的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); }
运行程序后,点击按钮后,就会变成红色。

dynamicPropertyNames的使用
我们在按钮下,写下代码:
void MainWindow::on_pushButton_2_clicked() { QList
names = ui->lineEdit->dynamicPropertyNames(); for(auto name : names) { qDebug() << name << endl; } }
我们可以发现上面有我们设置的名字。

有关这个属性使用可以看我这个博客,之前写过一个功能,希望大家喜欢:
传送门: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
