• Qt:实现子线程发送信号父线程切换图片


    mainwindow.h中代码

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H

    #include <QMainWindow>
    #include "mythread.h"
    namespace Ui {
    class MainWindow;
    }

    class MainWindow : public QMainWindow
    {
      Q_OBJECT
      MyThread* thread;
      int count;
    public:
      explicit MainWindow(QWidget *parent = 0);
      ~MainWindow();

    private slots:
      void on_pushButton_clicked();

    private:
      Ui::MainWindow *ui;
    };

    #endif // MAINWINDOW_H

    mythread.h中代码

    #ifndef MYTHREAD_H
    #define MYTHREAD_H
    #include <QThread>
    #include <QLabel>

    class MyThread : public QThread
    {
      Q_OBJECT
    public:
      QLabel* label;
      //覆盖QThread中的run()函数
      void run()
      {
      sleep(5);
      emit done();//发送自定义信号done
      }


    signals:
      void done();//自己定义的信号
    };

    #endif // MYTHREAD_H

    main.cpp(创建时自动生成)

    #include <QtGui/QApplication>
    #include "mainwindow.h"

    int main(int argc, char *argv[])
    {
      QApplication a(argc, argv);
      MainWindow w;
      w.show();

      return a.exec();
    }

    mainwindow.cpp中代码

    #include "mainwindow.h"
    #include "ui_mainwindow.h"

    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
      ui->setupUi(this);
      thread = new MyThread;//创建对象
      thread->label = ui->label;
      count = 0;
      connect(thread,SIGNAL(done()),this,SLOT(on_pushButton_clicked()));//信号捕获
      thread->start();//子线程
    }

    MainWindow::~MainWindow()
    {
      delete ui;
      delete thread;
    }


    void MainWindow::on_pushButton_clicked()
    {
      count++;//图片在label中显示
      if(1 == count)
        ui->label->setStyleSheet("image: url(:/new/prefix1/image/1.jpeg);");
      if(2 == count)
        ui->label->setStyleSheet("image: url(:/new/prefix1/image/2.jpeg);");
    }

  • 相关阅读:
    vs code 编译python 输出到调试控制台
    vs code个性化设置
    IDEA 简拼输入
    微信小程序 audio组件 默认控件 无法隐藏/一直显示/改了controls=‘false’也没用2019/5/28
    win10的cortana搜索显示空白
    微信小程序tabbar不显示2019.04.06
    读《提问的智慧》有感
    CLion 控制台输出内容乱码问题的解决方法
    vs code C语言环境搭建
    利用python的爬虫技术爬去糗事百科的段子
  • 原文地址:https://www.cnblogs.com/gzk1171848896/p/9556240.html
Copyright © 2020-2023  润新知