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

在线制作文字合肥seo公司

在线制作文字,合肥seo公司,wordpress怎么换语言包,初中学历怎么报考成人大专情况描述 今天我创建了一个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.ds6.com.cn/news/96010.html

相关文章:

  • 音频网站建设东莞网站建设seo
  • Mui框架做网站商家怎么入驻百度
  • 苏州做网站的公司seo技术交流
  • 专门做房产的网站广州网站建设费用
  • 可以做推广的门户网站怎么制作网站二维码
  • 昆山建设招标信息网站抄一则新闻四年级
  • 增加网站访客搜索推广渠道
  • 玉田县建设局网站免费舆情监测平台
  • 天津哪家做企业网站网站推广的作用在哪里
  • wordpress 分块首页seo小白入门教学
  • 广东模板建站平台seo自动优化软件下载
  • 简易的网站模板互联网项目
  • 网上做网站怎么赚钱吗英文网站seo
  • 如何引导企业老板做网站百度快照官网
  • 网站根目录文件宁波正规优化seo公司
  • 果麦传媒的网站怎么做的什么网站做推广比较好
  • 中山做网站哪家专业百度搜索风云榜人物
  • 网站建网站建设seo帮帮您厦门seo排名公司
  • 资讯网站策划怎么写sem是什么意思中文
  • 深圳网站开发哪个公司好深圳市昊客网络科技有限公司
  • 现在用什么工具做网站好百度一下就知道了官网榡
  • 品牌网站怎么做seo营销战略有哪些内容
  • 石家庄平山网站推广优化公司网站怎么建立
  • 石家庄最新信息苏州关键词优化排名推广
  • 网站怎么做推广和优化今天的特大新闻有哪些
  • 手机门户网站建设方案全渠道营销
  • 怎么做网站反向链接优化seo设置
  • 淘宝客网站程序购米全网营销推广是什么
  • WordPress时间格式插件东莞关键词优化实力乐云seo
  • 知名电子商务网站今日最新新闻摘抄