当前位置: 首页 > news >正文

CSS 文件格式

A QFrame#andrFrm[status="android_en"]
  • A:表示父类或顶层窗口的类型。如果 A 是一个自定义的类名,确保该类已经正确注册到 Qt 系统中。
  • QFrame:表示具体的控件类型。
  • #andrFrm:表示控件的对象名称(通过 setObjectName("andrFrm") 设置)。
  • [status="android_en"]:表示控件的动态属性值为 "android_en"
border-image: url(:/images/android_en.png) 0 0 0 0 stretch stretch;

(1) 动态属性未正确设置

  • 在 Qt 中,使用 [status="android_en"] 的前提是控件的 status 属性已被正确设置。
  • 如果没有调用 setProperty() 方法,或者属性值不匹配,样式表规则不会生效。

 

andrFrm->setProperty("status", "android_en");

设置属性后刷新样式

andrFrm->style()->unpolish(andrFrm);
andrFrm->style()->polish(andrFrm);
andrFrm->update();

(2)资源路径问题

 确保图片已添加到 .qrc

<RCC><qresource prefix="/images"><file>android_en.png</file></qresource>
</RCC>

完整代码示例

#include <QApplication>
#include <QFrame>
#include <QPushButton>
#include <QVBoxLayout>
#include <QFile>
#include <QDebug>class A : public QWidget {
public:A(QWidget *parent = nullptr) : QWidget(parent) {// 创建 QFrame 控件andrFrm = new QFrame(this);andrFrm->setObjectName("andrFrm");andrFrm->setFixedSize(200, 200);// 设置布局QVBoxLayout *layout = new QVBoxLayout(this);layout->addWidget(andrFrm);// 添加按钮用于切换状态QPushButton *btnAndroidEn = new QPushButton("Set Android_EN", this);QPushButton *btnClear = new QPushButton("Clear Status", this);layout->addWidget(btnAndroidEn);layout->addWidget(btnClear);// 连接信号与槽connect(btnAndroidEn, &QPushButton::clicked, this, [this]() {andrFrm->setProperty("status", "android_en");updateStyle();});connect(btnClear, &QPushButton::clicked, this, [this]() {andrFrm->setProperty("status", QVariant()); // 清除属性updateStyle();});}private:QFrame *andrFrm;void updateStyle() {andrFrm->style()->unpolish(andrFrm); // 解除样式andrFrm->style()->polish(andrFrm);   // 重新应用样式andrFrm->update();                   // 更新控件}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);// 加载样式表QFile styleFile(":/styles/style.css");if (styleFile.open(QFile::ReadOnly)) {QString styleSheet = QLatin1String(styleFile.readAll());app.setStyleSheet(styleSheet);}A window;window.show();return app.exec();
}

 

 

http://www.xdnf.cn/news/20305.html

相关文章:

  • 期货交易躲过AI捕杀—期货反向跟单策略
  • 基于PySide6与pyCATIA的圆柱体特征生成工具开发实战——NX建模之圆柱命令的参考与移植
  • 守护进程编程、GDB调试以及外网连接树莓派
  • 【数据结构】深入理解:完全二叉树中叶子节点与分支节点的数量关系推导
  • 每天学一个 Linux 命令(21):tree
  • Harmony5.0 设置应用全屏模式,隐藏导航栏和状态栏
  • 我的创作纪念日
  • HCIP-H12-821 核心知识梳理 (3)
  • 系统架构设计师:计算机组成与体系结构(如CPU、存储系统、I/O系统)高效记忆要点、知识体系、考点详解、、练习题并提供答案与解析
  • 4.3 熟悉字符串处理函数
  • 告别Feign:基于Spring 6.1 RestClient构建高可用声明式HTTP客户端
  • aop原理及场景
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年4月18日第56弹
  • 如何通过OTP动态口令登录Windows操作系统实现安全管控?安当SLA双因素认证的行业化解决方案
  • 《P2882 [USACO07MAR] Face The Right Way G》
  • AI Agent智能体是什么?如何使用?
  • Django 结合 Vue 实现简单管理系统的详解
  • vue3+axios下载哪后端返回错误信息并动态提示
  • 【学习笔记】Py网络爬虫学习记录(更新中)
  • thinkphp实现图像验证码
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(一级)真题
  • DDS Discovery数据
  • PM2模块
  • AI专题(一)----NLP2SQL探索以及解决方案
  • std::unordered_set(C++)
  • Java课程内容大纲(附重点与考试方向)
  • 算法01-最小生成树prim算法
  • C语言复习笔记--字符函数和字符串函数(上)
  • Xen安装ubuntu并启动过程记录
  • final关键字带来的问题