qt 槽的使用心得

1.button 槽使用。

1.1 直接ui点击button,右键选择go to slot  出现go to slot对话框,里面有clicked(),pressed(),resealed()等事件,点击ok后,会在相应文件中出现相对的代码.

如clicked(); 

会在dialog.cpp出现

void Dialog::on_pushButton_clicked()
{
}

会在dialog.h出现

private slots:
    void on_pushButton_pressed();

保存全部后,可以再 on_pushButton_pressed方法内添加相应的代码.

void Dialog::on_pushButton_clicked()
{

  qDebug("======0========");
}

1.2

dialog.h加入

private slots:
    void button2();

dialog.cpp加入

void Dialog::button2(){
    qDebug("======1========");
}

dialog.cpp初始化加入以下

 QObject::connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(button2()));

1.3QLineEdit 等其他组件都可以应用以上两种方法。

2类之间的数值传送

dialog.h加入

private slots:

   void bbb2(int i);

dialog.cpp主函数加入

bbbb *bb0 = new bbbb();
QObject::connect(bb0,SIGNAL(bbb1(int)),this,SLOT(bbb2(int)));
 
bb0->cccc(2);

再加入

void Dialog::bbb2(int i)
{
     qDebug("======4========%d",i);
}

bbbb.h

#ifndef BBBB_H
#define BBBB_H
#include <QWidget>
class bbbb : public QWidget
{
    Q_OBJECT
public:
    explicit bbbb(QWidget *parent = 0);
     void cccc(int i);
signals:
    void bbb1(int i);
public slots:
};
#endif // BBBB_H

bbbb.cpp

#include "bbbb.h"
bbbb::bbbb(QWidget *parent) :
    QWidget(parent)
{
}
void bbbb::cccc(int i){
    emit bbb1(i);
}

1.4

如果碰上 没用过的槽函数 ,如下应用

例:


QQmlComponent

F1查看帮助

Signals

void progressChanged(qreal progress)
void statusChanged(QQmlComponent::Status status)
代码:

componentsinit.cpp

ComponentsInit::ComponentsInit(QQmlEngine *engine,QObject *parent) :
    QThread(parent)
{
    
  QQmlComponent* component = new QQmlComponent(engine, QUrl(lineStr),QQmlComponent::Asynchronous);
  connect(component,SIGNAL(statusChanged(QQmlComponent::Status)),this, SLOT(statusChanged(QQmlComponent::Status)));
}
 
void ComponentsInit::statusChanged(QQmlComponent::Status status) {
    if (status == QQmlComponent::Ready) {
       qDebug() <<"---AAAA---";
    }
}

componentsinit.h

public slots:
    void statusChanged(QQmlComponent::Status);








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值