【QT】根据控件的自定义属性进行qss样式区别设置,包括使控件不能编辑

news/2024/11/22 22:19:18/

目录

  • 1.自定义属性筛选器
  • 2.使用qss使qtextedit不能编辑
  • 3.批量给某类控件设置自定义属性

1.自定义属性筛选器

可以使用QTextEdit的setProperty方法来设置自定义属性,然后在QSS样式表中使用QTextEdit[propertyName=“propertyValue”]来设置当该属性为特定值时QTextEdit的样式。

例如:

QTextEdit *textEdit = new QTextEdit;
textEdit->setProperty("customProperty", "value");textEdit->setStyleSheet("QTextEdit[customProperty=\"value\"] { border: none; background-color: transparent; }");

这样,当customProperty属性的值为"value"时,QTextEdit的边框和背景色都会被去掉。

注意,在使用QSS设置样式时,属性值需要用双引号括起来。

2.使用qss使qtextedit不能编辑

可以在 qtextedit 的 QSS 样式表中添加属性 pointer-events: none 来禁用其编辑功能。例如:

QTextEdit {pointer-events: none;
}

这会使 qtextedit 的整个区域都不能触发事件,因此用户也不能通过鼠标或键盘编辑它。如果你想仅在特定的情况下禁用编辑功能,你可以使用一个类选择器并应用这个属性,例如:

QTextEdit.readonly {pointer-events: none;
}

然后,你可以使用 setReadOnly(true) 函数来将 qtextedit 设置为只读状态,例如:

ui->textEdit->setReadOnly(true);
这样,你就可以通过控制 qtextedit 的只读状态来控制它是否可以编辑了。

3.批量给某类控件设置自定义属性

要给 Qt 窗口中的某一类控件设置自定义属性,可以使用 QObject 类的 setProperty() 方法。

假设你想给所有的 QPushButton 控件设置一个自定义属性 “custom_property”,可以这样做:

QList<QPushButton *> buttons = ui->centralWidget->findChildren<QPushButton *>();
foreach (QPushButton *button, buttons) {button->setProperty("custom_property", "some value");
}

在这里,ui 是指向应用程序界面的指针,centralWidget 是窗口的中央部件。findChildren() 方法可以查找 centralWidget 中的所有子对象,并返回所有指定类型的子对象的列表。然后,使用 foreach 循环遍历列表中的每个按钮,并使用 setProperty() 方法设置自定义属性。

注意,你需要在窗口的 .h 文件中包含 QObject 头文件,才能使用 setProperty() 方法。


http://www.ppmy.cn/news/10206.html

相关文章

C++基本数据类型

C基础课程 第六讲 数据类型目录 数据类型 一、整型 整型数据类型的定义&输出 二、字符型 字符型数据类型的定义&输出 三、浮点型 浮点型数据类型的定义&输出 四、布尔型 布尔型数据类型的定义&输出 数据类型 定义数据前&#xff0c;我们首先要明白我们所…

Git配置、版本控制与分支管理

文章目录一、创建版本库1. 配置git环境二、时光机穿梭1. 版本回退2. 撤销修改3. 删除文件三、分支管理1. 创建与合并分支2. 解决冲突3. Bug分支4. 多人协作参考文献以前有些过渡依赖“小乌龟”&#xff0c;关于Git基本上只会pull、add、push、commit&#xff0c;其余的git操作用…

【C语言进阶】动态内存管理

1. 为什么存在动态内存分配我们已经掌握的内存开辟方式有&#xff1a;int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点&#xff1a;1. 空间开辟大小是固定的。2. 数组在申明的时候&#xff0c;…

『年度总结』时光如梭 | 再见 2022 | 你好 2023

⭐创作时间2022年12月31日⭐ ✨结果一直到现在才发&#xff0c;说真的写年度总结还是第一次写比较不熟练&#xff0c;去年有这个活动也有佬叫我参加&#xff0c;不过没参加。今年想着有时间来写下的&#xff0c;结果写到现在才发&#xff0c;这东西说真的挺难写的&#…

通用vue组件化搜索组件页面

一、组件化封装 1.首先创建一个form文件夹&#xff0c;将搜索框组件的内容全部写在这个里面&#xff0c;然后再在需要的页面直接引入相应的组件即可 2.首先先在goods.vue文件里面写对应的文本数组formItems&#xff0c;将所定义的类型IFormItem引用进去&#xff0c;这个里面写…

【5G RRC】5G系统消息介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

C语言实现插入排序和希尔排序(动态图演示过程)

插入和希尔插入排序时间和空间复杂度分析希尔排序时间和空间复杂度分析本篇文章将插入排序和希尔排序放在一起讲解&#xff0c;是因为后者可以说是前者的排序方式的一种优化&#xff0c;思路上大体一样&#xff0c;插入和希尔在整个排序的大章节中&#xff0c;算是比较简单的&a…

Python深度学习基础(八)——线性回归

线性回归引言损失函数解析解公式代码实例梯度下降理论随机梯度下降的手动实现代码torch中的随机梯度下降引言 我们生活中可能会遇到形如 yw1x1w2x2w3x3byw_1x_1w_2x_2w_3x_3byw1​x1​w2​x2​w3​x3​b 的问题&#xff0c;其中有y为输出&#xff0c;x为输入&#xff0c;w为权…