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

网络公司属于什么行业广西seo关键词怎么优化

网络公司属于什么行业,广西seo关键词怎么优化,五种关键词优化工具,独立站谷歌seo做项目的时候我使用了Qt,不同的界面使用了不同的ui的类进行解耦,但是信号和槽绑定的时候可能是不同界面的控件互相进行通讯连接,然而ui指针对于各个界面类是私有成员,无法直接跳过访问,在网上看了一些参考资料&#xf…

做项目的时候我使用了Qt,不同的界面使用了不同的ui的类进行解耦,但是信号和槽绑定的时候可能是不同界面的控件互相进行通讯连接,然而ui指针对于各个界面类是私有成员,无法直接跳过访问,在网上看了一些参考资料,感觉都不太好,以下是几种可行的方案:

  1. 把ui成员变成一个public成员,但这样不仅破坏了封装性,而且把所有的ui成员全部暴露出去了。
  2. 使用一个static指针来将当前的界面指针传到外面,但是如果多个界面都要这样设计指针满天飞感觉非常的凌乱。
  3. 使用类似职责链模式将信号和槽进行一层层传递,但是要写很多层,太麻烦了。

思来想去,我想了一个解决办法,我们需要的是控件的指针,那么不妨直接用一个类管理这些指针,就可以最小化暴露指针成员。具体的思路是这样的:使用一个哈希表,键自己定,值是一个控件的指针,为了所有的控件都可以放入哈希表,哈希表的值设置为void*,取出来的时候用户再自己进行强转。

  • SignalSlotObjectMap.h
#ifndef SIGNAL_SLOT_OBJECT_MAP_H
#define SIGNAL_SLOT_OBJECT_MAP_H
#include <QString>
#include <QMap>
class SignalSlotObjectMap
{
public:static void InsertSignalObjectMap(const QString &key, void *value);static void InsertSlotObjectMap(const QString &key, void *value);static void *FindSignalObjectMap(const QString &key);static void *FindSlotObjectMap(const QString &key);static void DebugPrintMap(void);private:static QMap<QString, void *> s_signalObjectMap;static QMap<QString, void *> s_slotObjectMap;
};#endif // SIGNAL_SLOT_OBJECT_MAP_H
  • SignalSlotObjectMap.cpp
#include "SignalSlotObjectMap.h"
#include <QDebug>
// 初始化静态成员变量
QMap<QString, void *> SignalSlotObjectMap::s_signalObjectMap = {};
QMap<QString, void *> SignalSlotObjectMap::s_slotObjectMap = {};void SignalSlotObjectMap::InsertSignalObjectMap(const QString &key, void *value)
{auto it = s_signalObjectMap.find(key);if (it != s_signalObjectMap.end())return;s_signalObjectMap.insert(key, value);
}void SignalSlotObjectMap::InsertSlotObjectMap(const QString &key, void *value)
{auto it = s_slotObjectMap.find(key);if (it != s_slotObjectMap.end())return;s_slotObjectMap.insert(key, value);
}void *SignalSlotObjectMap::FindSignalObjectMap(const QString &key)
{auto it = s_signalObjectMap.find(key);if (it != s_signalObjectMap.end())return it.value();return nullptr;
}void *SignalSlotObjectMap::FindSlotObjectMap(const QString &key)
{auto it = s_slotObjectMap.find(key);if (it != s_slotObjectMap.end())return it.value();return nullptr;
}void SignalSlotObjectMap::DebugPrintMap(void)
{qDebug() << "s_signalObjectMap:";for (auto it = s_signalObjectMap.begin(); it != s_signalObjectMap.end(); it++){qDebug() << "key:" << it.key() << ",value:" << it.value();}qDebug() << "s_slotObjectMap:";for (auto it = s_slotObjectMap.begin(); it != s_slotObjectMap.end(); it++){qDebug() << "key:" << it.key() << ",value:" << it.value();}
}

在我的场景里我想将mainWindow的OpenGLWidget发送的【信号】连接到mainWindow的tabView(我自己定义的一个继承自QWidget的类)的SimSettingWidget(也是我自己定义的一个继承自QWidget的类)的一个lineEdit_Fps控件【】显示我的帧率,首先先统一插入到静态的Slot哈希表,这写在SimSettingWidget的构造函数里

SimSettingWidget::SimSettingWidget(QWidget *parent) : QWidget(parent),ui(new Ui::SimSettingWidget)
{ui->setupUi(this);SignalSlotObjectMap::InsertSlotObjectMap("lineEditFps", static_cast<void *>(ui->lineEdit_Fps));
}

这样mainWindow里把这个指针取出来就行了:


MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// 其他程序QLineEdit *lineEditFps = static_cast<QLineEdit *>(SignalSlotObjectMap::FindSlotObjectMap("lineEditFps"));connect(ui->widget_robotSim, &RobotView::sendFPS, this, [lineEditFps](float currentFPS){ lineEditFps->setText(QString("%1").arg(currentFPS)); });
}

这样就统一管理的需要的控件,所有的connect都可以在mainWindow进行,相当于树的根节点,表除了可以插入信号控件的指针,也可以插入槽控件的指针,写起来就比较舒服了。

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

相关文章:

  • 杭州工程网站建设搜索广告是什么
  • 做加油机公司网站企业微信营销系统
  • 网站建设公司.百度搜索关键词排名靠前
  • 做动态网站文字显示问号10条重大新闻
  • 网站建设的语言与工具seo自动发布外链工具
  • 网站设计的公司怎么样免费建站的网站
  • 域名备案步骤长沙靠谱seo优化价格
  • 公司企业网站建设目的推广小程序
  • 如何借用别人网站做模板镇江网站关键字优化
  • 黑河建设网站百度手机助手免费下载
  • ui做网站流程营销培训机构哪家最专业
  • 西安建筑网站建设学大教育培训机构电话
  • 网站做的好不好看什么网站优化的关键词
  • 合肥专业做网站的公司有哪些新闻头条今日新闻
  • 个人做盈利网站免费建站工具
  • 在社保网站做调动seo网站分析报告
  • 一个完整的工程项目流程优化设计电子版在哪找
  • 江苏网站建设机构搜索引擎优化技术都有哪些
  • 网站设计需要会什么优化大师的优化项目有哪7个
  • 各种广告图片大全青岛seo网站推广
  • 网站建设好的公司关键词seo排名优化如何
  • 企业网站管理系统怎么修改密码成都企业seo
  • 网站建设类的论文题目网站排名顾问
  • 政府网站集约化建设专题代运营网店公司
  • 在外汇局网站做登记报告每天三分钟新闻天下事
  • behance是什么网站百度人工在线客服
  • 关掉自己做的网站央视新闻最新消息今天
  • 品牌网站建设 t磐石网络网络舆情分析报告模板
  • 湖滨区建设局网站新区seo整站优化公司
  • 腾讯云网站搭建深圳搜狗seo