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

wordpress用户站内信今日新闻国际头条新闻

wordpress用户站内信,今日新闻国际头条新闻,陕西做网站公司哪家好,电商网站建设收费文章目录 0.前言1.带命名空间Qt自定义类在QT设计器中的使用技巧1.1 定义一个带命令空间QLabel自定义类1.2 在QT设计器中引入自定义控件类 2.带命名空间Qt自定义类在qss中的使用技巧2.1 命名空间在 QSS 中的特殊语法2.1 在QSS中定义带命名空间的样式 3.在项目中使用带命名空间的…

文章目录

  • 0.前言
  • 1.带命名空间Qt自定义类在QT设计器中的使用技巧
    • 1.1 定义一个带命令空间QLabel自定义类
    • 1.2 在QT设计器中引入自定义控件类
  • 2.带命名空间Qt自定义类在qss中的使用技巧
    • 2.1 命名空间在 QSS 中的特殊语法
    • 2.1 在QSS中定义带命名空间的样式
  • 3.在项目中使用带命名空间的Qt自定义控件类
  • 4.总结

0.前言

在大型QT项目中我们需要定义自己的自定义控件库,而这种自定义控件为了避免类名冲突往往都会将类放到特定的命名空间中,从而会在一些场景中导致使用上的问题,本篇文章主要介绍Qt自定义控件在Qt设计器中使用的问题和qss中样式的定义问题。

1.带命名空间Qt自定义类在QT设计器中的使用技巧

1.1 定义一个带命令空间QLabel自定义类

// ColorTextLabel.h


#ifndef COLORTEXTLABEL_H
#define COLORTEXTLABEL_H#include <QLabel>
#include <QMetaObject>
#include <QMetaEnum>namespace CustomCotrols
{class ColorTextLabel : public QLabel{Q_OBJECTQ_ENUMS(ColorMode)Q_PROPERTY(ColorMode colorMode READ colorMode WRITE setColorMode NOTIFY colorModeChanged)public:enum ColorMode {Normal,Success,Warning,Danger};explicit ColorTextLabel(QWidget *parent = nullptr);~ColorTextLabel();ColorMode colorMode() const;void setColorMode(ColorMode mode);signals:void colorModeChanged(ColorMode mode);private:ColorMode m_colorMode;};
}
#endif // COLORTEXTLABEL_H

#include “ColorTextLabel.h”

// ColorTextLabel.cpp
namespace CustomCotrols
{ColorTextLabel::ColorTextLabel(QWidget *parent) : QLabel(parent), m_colorMode(Normal){// 设置对象名称以便在QSS中引用setObjectName("ColorTextLabel");// 启用样式表中的属性选择器setProperty("colorMode", Normal);}ColorTextLabel::~ColorTextLabel(){}ColorTextLabel::ColorMode ColorTextLabel::colorMode() const{return m_colorMode;}void ColorTextLabel::setColorMode(ColorMode mode){if (m_colorMode != mode) {m_colorMode = mode;setProperty("colorMode", mode);style()->unpolish(this);style()->polish(this);update();emit colorModeChanged(mode);}}
}

1.2 在QT设计器中引入自定义控件类

实际项目开发中为了提高开发效率,对于比较固定的页面我们都是通过Qt设计器进行布局的,而要在Qt设计器中使用自定义类,我们需要对Qt内置空间类进行提升。
在提升对话框上填写提升类名时需要将命名空间全部写上CustomCotrols::ColorTextLabel,写头文件时如果头文件有目录需要将目录也写上CustomControls/ColorTextLabel,这样就能正常使用带命名空间的自定义Qt类了。

2.带命名空间Qt自定义类在qss中的使用技巧

2.1 命名空间在 QSS 中的特殊语法

在 C++ 中,命名空间的写法是使用 “::”,比如MyNamespace::MyCustomWidget,用于明确标识类所属的命名空间,避免命名冲突。然而,在 QSS 中,这种写法会与 Q 的子控件写法产生冲突。为了解决这个问题,QSS 采用了 “–” 来表示命名空间 。

2.1 在QSS中定义带命名空间的样式

/* styles.qss */
CustomCotrols--ColorTextLabel {border: 1px solid #cccccc;border-radius: 4px;padding: 6px;min-height: 24px;color: #333333;
}CustomCotrols--ColorTextLabel[colorMode="0"] { /* Normal */background-color: #f0f0f0;
}CustomCotrols--ColorTextLabel[colorMode="1"] { /* Success */background-color: #d4edda;color: #155724;border-color: #c3e6cb;
}CustomCotrols--ColorTextLabel[colorMode="2"] { /* Warning */background-color: #fff3cd;color: #856404;border-color: #ffeeba;
}CustomCotrols--ColorTextLabel[colorMode="3"] { /* Danger */background-color: #f8d7da;color: #721c24;border-color: #f5c6cb;
}

3.在项目中使用带命名空间的Qt自定义控件类

// main.cpp (示例使用)
#include <QApplication>
#include "colortextlabel.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);// 加载QSS样式QFile styleFile(":/styles.qss");if (styleFile.open(QIODevice::ReadOnly | QIODevice::Text)) {QString styleSheet = styleFile.readAll();a.setStyleSheet(styleSheet);styleFile.close();}// 创建示例标签ColorTextLabel label("Hello World");label.setColorMode(ColorTextLabel::Success);label.show();return a.exec();
}

4.总结

带命名空间的QT类在QT设计器中和qss中使用时都需要把命名空间带上。

http://www.dtcms.com/wzjs/133472.html

相关文章:

  • 织梦网站怎么做模板seo是什么
  • 贷款在线申请西安百度快照优化
  • 方案 网站建设北京百度推广官网首页
  • 做网站域名起什么作用电商运营培训哪个机构好
  • 邯郸做网站哪家好线上推广员是做什么的
  • 起名网站开发广告营销是做什么的
  • 广州网站建设网站推广seo在线排名优化
  • 定西市党政廉风建设网站seo网站推广批发
  • 石家庄房产网站关键词优化软件效果
  • 投资管理有限公司注册要求北京seo产品
  • 响应式布局和自适应布局郑州搜狗关键词优化顾问
  • flash源码网站sem分析
  • 做计量检定的网站做网站推广
  • 成都网站设计公司十大免费软文推广平台
  • 个人怎么制作网站作品推广
  • 做阀门销售在哪个网站上做好公司域名注册步骤
  • 阳江优化网站排名网络优化工作应该怎么做
  • 仿 花瓣 wordpressseo关键词排名在线查询
  • 咋样着做自己的网站网站建设公司哪家好?该如何选择
  • 深圳市建委网站官网seo关键词排名系统
  • 应付网站软件服务怎么做分录可以免费发广告的网站
  • 网站首页做一点开有动画免费二级域名平台
  • 网站验证码怎么做百度竞价效果怎么样
  • 郑州哪家专业做淘宝网站360开户
  • 图书馆门户网站建设方案关键词搜索工具
  • 哪家网站开发好百度seo公司报价
  • 丹阳是哪个省咸阳seo
  • 沈阳专业做网站公司整合网络营销公司
  • 武进常州做网站微信朋友圈广告代理
  • 试析媒体网站品牌建设软文范例300字