Qt5.8.0信号和槽

 方法一

 例子:

connect(loginBtn,&QPushButton::clicked,this,&LoginDialog::login);

connect(exitBtn,&QPushButton::clicked,this,&LoginDialog::close);

这里的connect()函数就是用来关联信号和槽的,简单来说,第一个参数就是发射信号的部件,比如这里的loginBtn按钮;第二个参数是发射的信号,比如这里是QPushButton类的单击clicked()信号;第三个参数是接受信号的部件,比如这里是this即本部件也就是LoginDialog;第四个参数是要执行的槽,比如这里是LoginDialog类的login()。使用connect()函数就相当于以前在设计模式进行的关联设置。


方法二:

向界面上拖入一个Push Button,然后更改显示文本为“登录到主界面”。为了实现点击这个按钮后可以关闭该对话框并显示主窗口,我们需要设置信号和槽的关联。点击设计模式上方的  图标,或者按下F4,便进入了信号和槽编辑模式。按着鼠标左键,从按钮上拖向界面,如下图所示。


Qt5.8.0信号和槽_第1张图片

        当放开鼠标后,会弹出配置连接对话框,这里我们选择pushButton clicked() 信号和LoginDlg accept() 槽并按下确定按钮。如下图所示。

Qt5.8.0信号和槽_第2张图片


        设置好信号和槽的关联后,界面如下图所示。


Qt5.8.0信号和槽_第3张图片


这里简单介绍一下信号和槽:大家可以把它们都看做是函数,比如这里,当单击了按钮以后就会发射单击信号,即clicked();然后对话框接收到信号就会执行相应的操作,即执行accept()槽。一般情况下,我们只需要修改槽函数即可,不过,这里的accept()已经实现了默认的功能,它会将对话框关闭并返回QDialog::Accepted标识,所以无需再做更改。
完成后,可以 按下   图标或者F3键 来返回控件编辑模式。



方法三

使用另外一种信号和槽的关联方法来设置退出按钮。在设计模式下方的信号和槽编辑器(Signals & Slots Editor)中,先点击左上角的绿色加号添加关联,然后选择发送者为exitBtn,信号为clicked(),接收者为LoginDialog,槽为close()。如下图所示。这样,当单击退出按钮时,就会关闭登录对话框。


Qt5.8.0信号和槽_第4张图片


右击登录按钮,在弹出的菜单中选择“转到槽”,然后选择clicked() 信号并确定。转到相应的槽以后,添加函数调用:


void LoginDialog :: on_loginBtn_clicked()
{
    accept ();
}


下面到main.cpp 文件,更改内容如下:


#include
#include "mainwindow.h"
#include "logindialog.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    LoginDialog dlg;
    if (dlg. exec() == QDialog::Accepted)
    {
       w. show();
       return a. exec();
    }
    else return 0 ;         
}








你可能感兴趣的:(Qt5.8)