2017-11-11 53 views
0

My dialog window如何使用条件

关闭对话框用OK按钮

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_); 
     } 
    } 
} 

如果表格单元格为空时,我按下确定,对话框关闭 - 但我想它不是关闭。我怎样才能实现这个?

+0

您可以重新实现[QDialog的::接受()](HTTP: //doc.qt.io/qt-5/qdialog.html#accept)插槽或未将按钮框连接到它。如果您分享对话的代码,我可以帮助您做一个例子。 – scopchanov

+0

PLZ编写代码... – DRPK

+0

我的代码https://pastebin.com/aQe7iRDe –

回答

0

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

enter image description here

enter image description here

现在添加您的病情所接受的功能:

void MainWindow::on_buttonBox_accepted() 
{ 
    if(ui->tableWidget->item(1,2)->text() != "") // for example 
    { 

    } 
    else 
    { 
     qApp->exit(); 
    } 
} 

QDialogButtonBox Class