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

网站建设好的公司餐饮vi设计案例欣赏

网站建设好的公司,餐饮vi设计案例欣赏,青岛网站美工,黄山注册公司一、场景 常常会需要实现点击/hover时修改图片#xff0c;可能是一个QPushButton、QLabel、QToolButton…… 由于Qt bug#xff0c;QIcon/QSS只能实现常规态、按下态的图标切换#xff0c;hover态的图片设置无效。 解决思路无非是安装事件过滤器、自定义类并重实现事件。 …一、场景 常常会需要实现点击/hover时修改图片可能是一个QPushButton、QLabel、QToolButton…… 由于Qt bugQIcon/QSS只能实现常规态、按下态的图标切换hover态的图片设置无效。 解决思路无非是安装事件过滤器、自定义类并重实现事件。 然而总要为这些鸡毛蒜皮的操作“小动干戈”会让人不爽。 这里选择更通用的类模板来简化操作。 二、实现说明 Q_OBJECT不能在类模板中使用导致我们不能在模板类中设置信号。不过也不是刚需上面的场景回调函数足够用了。 如果一定要使用信号那么就要用一个类来代理信号的发送。 比如下面定义了InteractiveSignalSender只用于发送信号。 绑定时信号发送者需要调getSignalSender() 注意只能通过组合的方式。如果通过多继承的方式例如让模板类继承QObject会出现重复继承QObject因为WidgetType也继承自QObjectQObject不支持多重继承会有问题。 如果需要在Qt Deigner中使用需要提升那么可以单独写个头文件来放入模板实例例如 // InteractivePushButton.h #pragma once #include interactiveTemplate.husing InteractivePushButton InteractiveQPushButton;然后添加该头文件选择提升为InteractivePushButton即可。 三、实现 使用例子 ui.btnFeedback-setEnterCallback([] { ui.btnFeedback-setIcon(QIcon(:/img/hover.png)); }); ui.btnFeedback-setLeaveCallback([] { ui.btnFeedback-setIcon(QIcon(:/img/simple.png)); }); ui.btnFeedback-setClickCallback([] { ui.btnFeedback-setIcon(QIcon(:/imgpressed.png)); });connect(ui.btnFeedback-signalSender(), InteractiveSignalSender::signalEnter, this, [] {}); 模板实现如下 InteractiveTemplate.h #pragma once#include QWidgetclass InteractiveSignalSender : public QObject {Q_OBJECT public:explicit InteractiveSignalSender(QObject *parent) : QObject(parent){}Q_SIGNALS:void signalEnter(); Q_SIGNALS:void signalLeave(); };template typename WidgetType class Interactive : public WidgetType { public:explicit Interactive(QWidget *parent nullptr);void setEnterCallback(std::functionvoid() callback);void setLeaveCallback(std::functionvoid() callback);void setClickCallback(std::functionvoid() callback);InteractiveSignalSender *signalSender();protected:void mousePressEvent(QMouseEvent *event) override;void enterEvent(QEvent *event) override;void leaveEvent(QEvent *event) override; private:std::functionvoid() m_enterCallback nullptr;std::functionvoid() m_leaveCallback nullptr;std::functionvoid() m_clickCallback nullptr;InteractiveSignalSender *m_signalSender new InteractiveSignalSender(this);static_assert(std::is_base_ofQWidget, WidgetType::value, WidgetType must be a QWidget); };template typename WidgetType InteractiveWidgetType::Interactive(QWidget *parent) : WidgetType(parent) { }template typename WidgetType InteractiveSignalSender * InteractiveWidgetType::signalSender() {return m_signalSender; }template typename WidgetType void InteractiveWidgetType::setEnterCallback(std::functionvoid() callback) {m_enterCallback callback; }template typename WidgetType void InteractiveWidgetType::setLeaveCallback(std::functionvoid() callback) {m_leaveCallback callback; }template typename WidgetType void InteractiveWidgetType::setClickCallback(std::functionvoid() callback) {m_clickCallback callback; }template typename WidgetType void InteractiveWidgetType::mousePressEvent(QMouseEvent *event) {if (m_clickCallback) {m_clickCallback();}WidgetType::mousePressEvent(event); }template typename WidgetType void InteractiveWidgetType::enterEvent(QEvent *event) {emit m_signalSender-signalEnter();if (m_enterCallback) {m_enterCallback();}WidgetType::enterEvent(event); }template typename WidgetType void InteractiveWidgetType::leaveEvent(QEvent *event) {emit m_signalSender-signalLeave();if (m_leaveCallback) {m_leaveCallback();}WidgetType::leaveEvent(event); }
http://www.w-s-a.com/news/371909/

相关文章:

  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设
  • 辽宁网站推广爱前端wordpress5.0.3主题
  • python怎么做网站贵阳网站制作
  • 深圳网站的优化seo网络推广有哪些
  • 网站建设实习报告范文荆州市城市建设档案馆网站
  • 网站开发信息平台项目总结企业网站如何推广
  • 网站备案名称规定手机免费h5制作软件
  • 接网站建设单子的网站网页设计尺寸多大
  • 订制型网站费用做网站的问题
  • 淮阳住房和城乡建设网站桂林新闻桂林人论坛
  • 公司网站建设价格标准老版本网站开发工具
  • 门户网站开发费怎做账做网站交互demo工具
  • 中山最好的网站建设黄村网站建设价格
  • 企业网站首页应如何布局互联网营销师证书报名入口
  • 绍兴做网站哪家好篮球网站设计
  • 鹤岗市城乡建设局网站西域电商平台官网
  • 外贸网网站建设蓝色管理系统网站模版
  • 网站服务器关闭阿里巴巴logo
  • 青岛 网站制作公司乐从网站制作
  • wordpress 微网站模板怎么用wordpress 文档下载
  • ppt网站建设的目的合肥做网站找哪家好