2017-11-11 51 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