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

品牌设计公司排名品牌形象广告西昌seo快速排名

品牌设计公司排名品牌形象广告,西昌seo快速排名,怀化建设企业网站,搜网站旧域名情况描述 今天我创建了一个QT多线程的工程,框架如下。我希望通过指针的方式,让子线程去直接修改主线程的ui组件,但事与愿违。 class ChildThread : public QThread {Q_OBJECT public:ChildThread (MainThread* par):m_Par(par){}; protecte…

情况描述

今天我创建了一个QT多线程的工程,框架如下。我希望通过指针的方式,让子线程去直接修改主线程的ui组件,但事与愿违。

class ChildThread : public QThread {Q_OBJECT
public:ChildThread (MainThread* par):m_Par(par){};
protected:void run() override {while(true){m_Par.ui->label.setValue()//子线程修改主线程的ui组件}}
public:MainThread* m_Par
};class MainThread : public QWidget {Q_OBJECT
public:MainThread (QWidget *parent = nullptr) : QWidget (parent) {QLabel *label = new QLabel("Current Time: ", this);setCentralWidget(label);// 创建子线程m_ChildThread= new ChildThread (this);// 启动子线程m_ChildThread->start();}
private:ChildThread *m_ChildThread;
};

存在的问题:子线程修改主线程ui是不安全操作

在Qt中,GUI相关的操作(例如更新UI元素)通常应该在主线程中执行。直接在子线程中更新UI是不安全的,可能会导致未定义的行为或崩溃。
正确的做法是:利用QT的信号与槽函数机制。在子线程处理完业务后,发出信号并携带上结果给主线程,交给主线程渲染。

class ChildThread : public QThread {Q_OBJECT
signals:void Msg(const QString& message);
public:ChildThread ();
protected:void run() override {while(true){emit Msg("这是一条消息");}}
public:MainThread* m_Par
};class MainThread : public QWidget {Q_OBJECT
public:MainThread (QWidget *parent = nullptr) : QWidget (parent) {QLabel *label = new QLabel("Current Time: ", this);setCentralWidget(label);// 创建子线程m_ChildThread= new ChildThread ();connect(m_ChildThread, &m_ChildThread::Msg, this, &MainThread::Msg);// 启动子线程m_ChildThread->start();}
private slots:void Msg(const QString& message){ this.label.setText(message); }
private:ChildThread *m_ChildThread;
};

这里要注意两点:
1、信号携带的数据要和槽函数接受的数据保持一致,变量名可以不一样。

子线程信号: signals:void Msg(const QString& message);
主线程槽函数:private slots:void Msg(const QString& message){ this.label.setText(message); }

2、信号与槽函数链接,如果官方的链接方式无效果,就换成直接引用。

方式一 connect(m_ChildThread, SINGAL(m_ChildThread::Msg), this, SLOT(&MainThread::Msg));
方式二 connect(m_ChildThread, &m_ChildThread::Msg, this, &MainThread::Msg);

http://www.hrbkazy.com/news/30903.html

相关文章:

  • 长春建站公司百度网盟广告
  • 搭建网站 优帮云google推广妙招
  • 东方资产营销网站惠州网站建设方案推广
  • 自己电脑做服务器网站网上营销培训课程
  • 福田祥菱怎么样百色seo外包
  • 少儿类网站怎么做西安网站到首页排名
  • 网站建站网站80s隐秘而伟大营销外包公司
  • 网站链接怎么做标记百度关键词指数排行
  • 做网站免费空间seo网站建设优化
  • 新网域名官网sem和seo的关系
  • 公司企业邮箱怎么填写关键词优化公司如何选择
  • 护肤品网站建站模板自己做一个网站
  • 做网站还是做淘宝seo投放
  • 计算机网络技术网站开发百度seo怎么操作
  • 中国工厂网官网整站seo排名
  • 韩雪冬网站公司品牌宣传方案
  • 企业作风建设包括哪些方面seo优化方案报价
  • 深圳价格实惠的网站建设公司免费制作永久个人网站
  • 吴桥县网站建设公司网站维护收费标准
  • 内蒙古自治区建设厅网站淘宝客推广有效果吗
  • 专业网站排名优化公司网站搜索优化
  • 云虚拟主机 多个网站百度首页优化
  • 网站建设最关键的两个素材大型的营销型网站
  • 网站建设情况怎么写范文整合营销活动策划方案
  • php学完可以做网站seo网站建设优化
  • 个人接单做网站的平台网络营销网络推广
  • 做服务的网站吗seo广告平台
  • 南宁哪些公司专业做网站seo快速工具
  • 目前跨境电商平台有哪些seo的培训课程
  • 专门做尾单的那个网站叫啥优化最狠的手机优化软件