如何使用条件关闭带有确定按钮的对话框[重复]

Posted

技术标签:

【中文标题】如何使用条件关闭带有确定按钮的对话框[重复]【英文标题】:How to close a dialog with an OK button using a condition [duplicate] 【发布时间】:2017-11-11 15:38:59 【问题描述】:

My code

我的第一次尝试,所以我可以在 Mainwindow.cpp 中得到结果,但它可能是//不正确的

void Dialog::on_buttonBox_accepted()
 
     Cities.clear();
     for(int row = 0; row<ui->tableWidget->rowCount(); row++)
     
         cities s(get_city(row),get_time(row,3),get_time(row,4));
         Cities.push_back(s);
     
 
// my attempt to make another button but I could not get a result in 
//Mainwindow.cpp but could check correctly
void Dialog::on_pushButton_clicked()

    if(cities_is_filled())
    
        Cities.clear();
        for(int row = 0; row<ui->tableWidget->rowCount(); row++)
        
            cities s(get_city(row),get_time(row,3),get_time(row,4));
            Cities.push_back(s);
        
    


//GET RESULT
void MainWindow::on_actionAdd_train_triggered()

    Dialog e;
    if(e.exec())
    
       for(auto City: e.Cities)
       
           ui->textBrowser->append(City.city_+ " " + City.depart_+ " " 
           +City.leave_);
       
    

如果当我按 OK 时表格单元格为空,则对话框关闭 - 但我希望它关闭。我该如何实现?

【问题讨论】:

您可以重新实现QDialog::accept() 插槽或不将按钮框连接到它。如果你分享你的对话代码,我可以帮你举个例子来说明如何做到这一点。 请写你的代码... 我的代码pastebin.com/aQe7iRDe 这是我打印结果的 mainwindow.cpp void MainWindow::on_actionAdd_train_triggered() 对话框 e; if(e.exec()) for(auto City: e.Cities) ui->textBrowser->append(City.city_+ " " + City.depart_+ " " +City.leave_); 【参考方案1】:

buttonBox 上按鼠标右键,然后选择Go To Slot...,然后选择accepted() 插槽。

现在将您的条件添加到接受的函数中:

void MainWindow::on_buttonBox_accepted()

    if(ui->tableWidget->item(1,2)->text() != "") // for example
    

    
    else
    
        qApp->exit();
    

QDialogButtonBox Class

【讨论】:

以上是关于如何使用条件关闭带有确定按钮的对话框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python Tkinter 中的单选按钮值

asp网页中,如何实现点击按钮弹出对话框,然后点击“确定”关闭窗口,点击“取消”返回?尽快,非常感谢!

如何获取窗口标题按钮的大小和位置(最小化,恢复,关闭)

Python:QMainWindow 对话框关闭后如何关闭(或退出)Python 进程

手机wps如何查找相同内容?

关闭对话框后如何触发方法