• qt的信号与槽函数



    关联:
    bool connect ( const?QObject?*?sender, const?char?*?signal, const QObject * receiver, const char * slot, Qt::ConnectionType?type?= Qt::AutoConnection)

    1.一个信号 对应槽函数
    connect(&a1,SIGNAL(mysignals()),&b1,SLOT(mySlot()));


    2.一个信号 对应多个槽函数
    connect(&a1,SIGNAL(mysignals()),&b1,SLOT(mySlot()));
    connect(&a1,SIGNAL(mysignals()),&c1,SLOT(mySlotccc()));
    connect(&a1,SIGNAL(mysignals()),&d1,SLOT(mySlotcccddd()));

    3.多个信号 对应一个槽函数
    connect(&a1,SIGNAL(mysignals()),&b1,SLOT(mySlot()));
    connect(&b1,SIGNAL(mysignalsb()),&b1,SLOT(mySlot()));
    connect(&c1,SIGNAL(mysignalsc()),&b1,SLOT(mySlot()));

    4.一个信号 对应一个信号

    connect(&c1,SIGNAL(mysignalsc()),&b1,SIGNAL(mysignal()));

    注意点:
    1.继承 QObject , Q_OBJECT宏
    2.public slots:包含了任何信号都可以相连的slots。
    protected slots:包含了该类和它的子类的信号才能连接的slots。就是说这些slots只是类的实现的一部分,而不是它和外界的接口。
    private slots:包含了只有该类本身的信号可以连接的slots。就是说这个类非常紧密,甚至它的子类都没有获得连接该类中slots的权利。

    win.h
    
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include<QTimer>
    #include<QTime>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private:
        Ui::MainWindow *ui;
    QTime *mytime;
    QDate *mydate;
    QTimer *mytimer;
    public slots:
        void mytimes();
    
    };
    
    #endif // MAINWINDOW_H
    win.cpp
    #include
    "mainwindow.h" #include "ui_mainwindow.h" #include<QTime> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); mytime = new QTime(); mydate = new QDate(); ui->label_2->setText(mydate->currentDate().toString("yyyy/MM/dd")); mytimer = new QTimer(); connect(mytimer,SIGNAL(timeout()),this,SLOT(mytimes())); mytimer->start(1000); } MainWindow::~MainWindow() { delete ui; } void MainWindow::mytimes() { ui->label->setText(mytime->currentTime().toString("hh:mm:ss")); ui->label_2->setText(mydate->currentDate().toString("yyyy/MM/dd")); }
  • 相关阅读:
    halcondraw_ellipse手动画椭圆
    halconconvexity获取凸度
    halconcount_obj获取区域集中区域的数量
    探索智能化测试技术
    华为云GaussDB数据库荣获国际CC EAL4+级别认证
    KubeEdge SIG AI发布首个分布式协同AI Benchmark调研
    数仓性能调优:如何进行函数下推
    颜值经济下,车企的必备武器
    DTT第7期直播回顾 | 低代码应用构建流程和适用场景,与你想的一样吗?
    【中秋特辑】嫦娥妹妹,你别着急~
  • 原文地址:https://www.cnblogs.com/defen/p/5344154.html
Copyright © 2020-2023  润新知