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兩個槽了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章