2017-01-07 5 views
0

Я создал графический интерфейс для проекта, он имеет несколько форм, и я не знаю, как их соединить ... дело в том, что навигация между этими формами не является линейным.Где я могу изменить ярлык при нажатии кнопки QT

Выбор пользователя на первой странице (radioobuttons) определяет, какой будет следующая форма, я разработал базовый алгоритм с использованием операторов if, но я не знаю действия навигации.

вот если заявление

void InputChoice::on_commandLinkButton_clicked() 
{ 
if (ui->radioButton->isChecked()){ 
    //Go to state vector input; 
} 
if (ui->radioButton_2->isChecked()){ 
    //Go to orbital element input 
} 

if (ui->radioButton_3->isChecked()){ 
    //Go to TLE input 
} 

Так я хочу знать

1- синтаксис и/или принципала, которые мы используем, чтобы связать формы вместе. 2- Как я могу поместить его в условное утверждение. 3- я прочитал в каком-то месте, что было бы хорошим вариантом для использования на кнопку команды ссылку

Большое спасибо :))

+0

Я ищу синтаксисе заявление, написанное в сером комментарии ниже каждого оператора if –

+0

Я надеюсь, что [это] (http://stackoverflow.com/questions/26162336/qt-any-guideline-on-how-to-implement-navigation-between-ui-forms) может вам помочь. – Tarod

+0

Если вы создаете волшебный интерфейс, рассмотрели ли вы использование среды QWizard? – RobbieE

ответ

0
void InputChoice::on_commandLinkButton_clicked() { 

    if (ui->radioButton->isChecked()){ 

    //Go to state vector input; 
    vectorInput = new VectorInput(); // show the form 
    vectorInput->exec(); // Don't let anything else happen until choice is made on form 

    //or you could also just use show(); but the user can do other things while form is showing 
    vectorInput = new VectorInput();// show the form 
    vectorInput->show(); 

    } 
    else if (ui->radioButton_2->isChecked()){ 
    //Go to orbital element input 
    //Same as above 
    } 

    else if (ui->radioButton_3->isChecked()){ 
    //Go to TLE input`enter code here` 
    //same as above 
    } 

    else{ 
      //Do something. 
     } 


    //Should be something like this. If not, can you elaborate a little more    or where can I see the code? 
+0

Спасибо большое за помощь :)) Я нашел способ сделать это, создав формы «диалог» вместо «виджета». Но как вы имеете дело с формами как векторы, знает ли QT сам по себе, что vectorInput является формой? Я имею в виду, мы ничего не заявляли там. спасибо еще раз :)) –

+0

Вы должны были создать частный член в вашем .h файле. Как VectorInput * vectorInput; Я предполагаю, что это какая-то форма, потому что вы называете ее формой. – equati0n