Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[QT] Zatrzymywanie wykonywania kodu głównego okna

Ostatnio zmodyfikowano 2020-02-09 19:47
Autor Wiadomość
Bartex321
Temat założony przez niniejszego użytkownika
[QT] Zatrzymywanie wykonywania kodu głównego okna
» 2020-02-09 19:38:39
Witam, mam kolejne pytanie odnośnie qt :)
Chciałbym, aby po naciśnięciu przycisku wyświetlało się okno z pytaniem ile kolumn dodać do table widgetu, a po wybraniu tej liczby i kliknięciu ok kolumny się dodawały, niestety, mimo ustawienia okna na modalne, kod funkji leci dalej
Kod:
C/C++
void Tabela::on_actionDodaj_stanowisko_triggered()
{
    Dialog * ust = new Dialog;
    ust->setModal( 1 );
    ust->show();
    ui->tableWidget->setColumnCount( ust->spinboxvalue ); // wykonuje się po wyświetleniu okna ust, a nie kliknięciu przycisku zamykającego to okno
}
Ten kod jest maksymalnie uproszczony(przez co nie działa tak jak powinien), jednak pokazuję istotę programu - funkcja nie czeka do zamknięcia okna ust, przez co użytkownik nie ma kiedy ustawić pożądanej wartości

Moim pomysłem na obejście tego problemu było stworzenie drugiej funkcji, dodającej kolumny, jednak z poziomu okna potomnego(ust) nie mogę wywołać funkcji należącej do okna rodzicielskiego (Tabela)
C/C++
void Tabela::on_actionDodaj_stanowisko_triggered()
{
    Dialog * ust = new Dialog;
    ust->setModal( 1 );
    ust->show();
}

void ust::on_pushButton_clicked()
{
    Tabela::on_actionDodaj_stanowisko_triggered(); // wywołuje błąd - z poziomu okna ust nie widać fukcji należącej do okna Tabela
}

void Tabela::on_actionDodaj_stanowisko_triggered()
{
    ui->tableWidget->setColumnCount( ust->spinboxvalue );
}

bardzo proszę o jakąś poradę jak to zrobić, może da się jakoś dzięki messageboxom?, jednak tutaj nie wiem jak do messageboxa dodać pole na liczbę :(
P-176214
pekfos
» 2020-02-09 19:47:47
Powinieneś użyć exec() (i nie alokować niepotrzebnie pamięci).
C/C++
Dialog ust;
ust.exec();
P-176216
« 1 »
  Strona 1 z 1