如何使用条件关闭带有确定按钮的对话框[重复]
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
【讨论】:
以上是关于如何使用条件关闭带有确定按钮的对话框[重复]的主要内容,如果未能解决你的问题,请参考以下文章
asp网页中,如何实现点击按钮弹出对话框,然后点击“确定”关闭窗口,点击“取消”返回?尽快,非常感谢!