Qt 信号与槽connect方式

1、自动连接

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    QPushButton *pushButton = new QPushButton(this);
    pushButton->setObjectName("TestButton");
    ui->setupUi(this);
}



Widget::~Widget()
{
    delete ui;
}


void Widget::on_TestButton_clicked()
{
    close();
}

如果槽函数命名方式为:on_控件名称_clicked,则不需要再手动connect连接信号与槽函数,此时QT内部会有相应的机制,将控件与对应的槽函数关联起来。

2、手动关联

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    QPushButton *pushButton =new QPushButton(this);
    pp->setObjectName("TestButton");
    ui->setupUi(this);
    connect(pp,SIGNAL(clicked()),this,SLOT(mySlot()));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::mySlot(){
    qDebug() << "Hello World";
}

槽函数并不是按 on_控件名称_clicked 方式命名的,此时想将控件与该槽函数关联的话,可以用手动connect,让它们关联起来。

3、设计模式关联

在QT Creator 的 design 模式下,点击下图中提示的按钮,可以进入信号槽编辑模式,可直接在两个控件之间拖动,在两者添加信号槽关联机制

猜你喜欢

转载自www.cnblogs.com/qiang-upc/p/12732702.html