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

西安学建网站网站建设少用控件

西安学建网站,网站建设少用控件,手机在线制作网站,贵阳手机网站建设情况描述 今天我创建了一个QT多线程的工程#xff0c;框架如下。我希望通过指针的方式#xff0c;让子线程去直接修改主线程的ui组件#xff0c;但事与愿违。 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.hkea.cn/news/14365299/

相关文章:

  • 许昌小学网站建设wordpress侧边联系方式
  • 外国游戏概念设计网站新农村建设在哪个网站申请
  • php做不了大型网站做英文网站 赚美元
  • 网站建设情况汇报做企业网站不好混
  • 网站模板怎么修改教程网站设置不可粘贴
  • 站长工具同大全站wordpress浏览插件
  • 网上做牙刷上什么网站深圳电商网站设计公司
  • 中国建设银行网站用户注册谈谈你对互联网营销的认识
  • 做seo网站优化多少钱西安俄语网站建设
  • 无锡外贸网站制作富阳建设局网站首页
  • 具有价值的建网站网站建设发布
  • 网站开发职业岗位个人做当地旅游网站
  • pc网站 手机网站 微信公众平台润滑油网站怎样做效果更好
  • 企业做网站需要做哪些工作广告公司有哪些
  • 会所网站建设360建筑工程网
  • 企业网站优化方案范本wordpress没显示已发布
  • 域名申请而完成以后怎么做网站中小企业网站设计与开发目的
  • wordpress 上传网站桐柏微网站开发
  • 手机网站版面设计如何修改网站logo
  • 推广不收费的网站有哪些wordpress 搜索无效
  • 网站开发报价单.doc网站建设项目售后服务承诺
  • 国外常用的seo站长工具软件开发各阶段产生的文档
  • 网站制作涉及哪些方面html5汽车网站模板
  • 在线网站教育平台网站
  • 专注营销型网站建设公司 做网站网站备案变更单位名称
  • 凤阳网站建设哪家好广东网站备案要求
  • 网站设计制作哪些阜新市建设学校管方网站
  • 正规投资软件app哪个好文明seo技术教程网
  • 七牛云wordpress图片郑州企业网站优化排名
  • 网站挂马黑链检测清除工具wordpress 国内视频教程