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

设计软件网站制作网站建设广告投放方案

设计软件网站制作网站建设,广告投放方案,谁做网站,html常用软件情况描述 今天我创建了一个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.tj-hxxt.cn/news/69768.html

相关文章:

  • wordpress多站点建站淘宝关键词优化工具
  • 福田做商城网站建设找哪家公司好自己如何注册网站
  • wordpress站内信seo网站查询
  • 做自媒体在哪个网站好百度地址
  • 怎么优化网站的单个关键词排名百度推广登录平台官网
  • 网站建设中页面如何查看百度搜索指数
  • 检察院门户网站建设情况总结每日重大军事新闻
  • 上虞网站开发线上销售平台如何推广
  • 网站备案官网营销策划公司经营范围
  • 三合一网站一般多少钱cpu游戏优化加速软件
  • 网站做百度推广有没有效果百度搜索热度
  • 为什么做网站编辑永州网络推广
  • 网站建设实训实训心得网站制作企业
  • dw软件做网站百度认证考试
  • 英文网站怎么推广百度标记号码认证平台
  • 关于申请建设门户网站的今日国际军事新闻最新消息
  • 丹徒做网站电子商务平台建设
  • wordpress网站绑定多个域名营销技巧
  • wordpress自动添加动态内容百度seo 优化
  • 吉安网站建设0796abc青岛网站建设策划
  • 网站适配手机怎么做百度大全免费下载
  • 在家做农业关注什么网站ui设计公司
  • 新乡网站优化公司百度一下官网首页
  • 网站建设 睿达科推广自己的网站
  • 网站什么做的百度论坛首页
  • 视频模板网站推荐seo搜索引擎优化费用
  • 什么是企业营销型网站?做电商需要什么条件
  • 问卷调查网站怎么做免费b站软件下载
  • 网站蓝色导航栏代码西安自动seo
  • blogs to wordpress武汉seo结算