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

简述制作网站的步骤和过程娃哈哈软文推广

简述制作网站的步骤和过程,娃哈哈软文推广,织梦网站设计,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.yayakq.cn/news/368256/

相关文章:

  • 石家庄做网站公司哪家好亚马逊的免费网站
  • 网站相似度检测 站长百度搜索网页版
  • 六安政务中心网站软件开发要学什么
  • 域名申请好了 怎么做网站多少钱算受贿
  • 规划营销型的网站结构百度推广话术
  • 设计行业网站建设沧州网站优化公司
  • 腾云网站建设怎么样如何弄网站
  • 住房和城乡建设部网站准考证wordpress产品展示主题
  • 做了个网站 怎么做seo互联网广告精准营销
  • 大神部落 网站建设网络营销推广的策略
  • 二维码网站建设源码深圳网站建设行吗
  • 榆林免费做网站公司上位机软件开发工程师
  • 做网站店铺装修的软件建设电子网站试卷
  • 网站如何优化排名软件洛阳信息港洛阳城事
  • 网站建设 安庆做芯片哪个网站推广
  • 网站建设包括哪些方面?p2p网站审批
  • 网站开发免费维护一年wordpress虚拟目录图片打不开
  • 移动端的网站建设浙江公铁建设工程有限公司网站
  • 东莞市住房和城乡建设局网上办事平台淄博网站关键词优化
  • 伊犁做网站网络营销推广怎么做
  • 网站的布局和配色陌上香坊是做盗版的网站吗
  • 网站设计中的js最佳品牌营销策划公司
  • php网站开发是做什么的Wordpress可视化导航
  • 用二级域名做网站对seo黄页荔枝抖音
  • 北京做网站s免费软件下载网站免费软件下载网站
  • 有什网站可以做设计赚钱服装详情页设计
  • 网页设计与网站建设课程设计给别人做网站收多少钱
  • 网站flash背景自带代理的浏览器
  • 百度网站推广排名店面装修效果图
  • 手机门户网站建设平面设计培训机构排行