QT中button中没有accept()和reject()这两个槽解决办法

这两个是QDialog里才有的,用如下的步骤之后可以调用accept()和reject()这两个槽

点击QT设计师类

我选择的是没有按键的,按键一会可以自己添加

类名可以自己写,然后点击下一步即可

最后如下所示y可以看到信号与槽里面有accept跟reject()

两种方法可以使用accept()跟reject()

一、可以选择转到槽

可以在如下的槽函数中编辑使用

void Login::on_But_login_clicked()
{
    if(ui->line_account->text().operator==("adminer")&&ui->line_password->text().operator==("adminer"))
    {    accept();
    }
    else {
         QMessageBox::information(this,tr("Warning"),tr("登录失败"),QMessageBox::Yes);
         ui->line_account->clear();
         ui->line_password->clear();
         ui->line_account->setFocus();//将光标移动到用户名框内
    }
}

void Login::on_But_exit_clicked()
{
    reject();//等于close关闭窗口
}

然后主函数中使用这个信号可以作为界面的切换

#include "mainwindow.h"
#include "loginform.h"
#include "login.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    Login w1;//登录窗口新建的对象
    MainWindow w;//新建的主窗口的对象
    if(w1.exec()==QDialog::Accepted)//利用Accepted 信号判断enterButn是否按下
    {
         w.show(); //如果按下了显示主窗口
         return a.exec(); //程序一直执行,直到主窗口关闭
    }
    else {
        return 0; //如果没有按下则不会进入主窗口,整个程序结束运行
    }
}

如图输入正确的用户名跟密码以后,点击登录

可以进入了主界面

二、也可以自己添加按钮可以拖入pushbutton然后按下F4按键会如图所示:

此时再拖拽按钮到此空白区域:

就会出现accept与reject两个槽了

发布了27 篇原创文章 · 获赞 6 · 访问量 5088

猜你喜欢

转载自blog.csdn.net/qq_21449473/article/details/99881289
今日推荐