• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

QT wyświetlenie "nowego" okna

Object Storage Arubacloud
+1 głos
954 wizyt
pytanie zadane 9 grudnia 2016 w C i C++ przez Yashe Dyskutant (7,720 p.)

Witam serdecznie.

Dzisiaj zacząłem prace w programie QT Creator, muszę przyznać, że pozytywnie mnie zaskoczył - co zaowocowało pomysłami na jakieś małe projekty. 

Poniżej opisałem w punktach co jest mi potrzebne, gdyż muszę przyznać, że nie za bardzo wiem jak się z tym uporać.

Od razu zaznaczam, że chodzi mi o przełączenie jednego "okna" na drugie, a nie tworzenie osobnego drugiego okna.


Opis problemu:

-> Uruchamiam główne okno aplikacji , które zawiera przyciski np. Start, Opcje

-> Klikam przycisk "Opcje"

-> Widok zostaje przełączony na różne opcje do wyboru (wtedy nie widać przycisków Start i Opcje, dopóki ktoś nie wciśnie klawiszu np. Powrót do Menu)

Gdyby coś było nie jasne, postaram się wytłumaczyć lepiej.

2 odpowiedzi

+2 głosów
odpowiedź 9 grudnia 2016 przez Moranthil Obywatel (1,080 p.)
wybrane 9 grudnia 2016 przez Yashe
 
Najlepsza

Jeżeli dobrze zrozumiałem to potrzebujesz kontener o nazwie Stacked Widget. Potem rzucasz na niego przycisk, zmieniasz ikoną strzałki na następną stronę Stacked Widget'a tam rzucasz drugi przycisk. Tworzysz sloty kliknięcia i wpisujesz coś takiego:

ui->stackedWidget->setCurrentWidget(ui->page_2);
//lub
ui->stackedWidget->setCurrentIndex(1);

Dla drugiego przycisku analogicznie zmieniając nazwę lub liczbę.

 

komentarz 9 grudnia 2016 przez Yashe Dyskutant (7,720 p.)
Ok. Znalazłem StackedWitget i umieściłem go w interfejsie użytkownika, lecz jak uwarunkować zmianę stron.

Chodzi mi o coś takiego:

Po kliknięciu "Opcje" zmień stronę StackedWidget na drugą.
komentarz 9 grudnia 2016 przez Moranthil Obywatel (1,080 p.)
Zmiany strony Stacked Widget dokonujesz za pomocą jednej z powyższych linijek kodu.

Do przycisku "Opcje" stwórz slot reagujący na kliknięcie przycisku (zakładam, że wiesz jak) i wklej jedną z linijek kodu, które podałem. Tylko tyle.
komentarz 9 grudnia 2016 przez Yashe Dyskutant (7,720 p.)

Ehh.. mały problem. Musze sprostować kilka spraw. 

1. Czy przycisk "Opcje" mam umieścić w stackedWidget
2. Czy void ma być stricte dla przycisku "Opcje" - który reaguje na kliknięcie, czy mam utworzyć void dla stackedWidget'u - lecz tam nie ma opcji "on click"
3. Zauważyłem, że mogę użyć tego - currentChanged() 
4. Gdy użyłem Twojej linijki kodu wpisanej w slocie reagującym na kliknięcie "Opcje" wyskoczył błąd kompilacji - class Ui::MainWindow has no member named stackedWidget
 

komentarz 9 grudnia 2016 przez Moranthil Obywatel (1,080 p.)
  1. Przycisk umieszczasz gdziekolwiek - może być w stackedWidget lub poza. Nie ma to znaczenia.
  2. Slot robisz dla przycisku - tzn. klikasz prawym na przycisk, opcja przejdź do slotu i wybierasz sygnał clicked(). 
  3. ?
  4. Pewnie masz inne nazwy kontrolek.
void MainWindow::on_pushButton_clicked()
{
    if(ui->stackedWidget->currentIndex() == 1)
        ui->stackedWidget->setCurrentWidget(ui->page);
    else if(ui->stackedWidget->currentIndex() == 0)
        ui->stackedWidget->setCurrentWidget(ui->page_2);
}

^Tak wygląda przykładowy kod przycisku będącego poza stackedWidget, który zmienia stronę na drugą i odwrotnie. Nie zmieniałem nazw, tylko zostawiłem domyślne jak mi ide utworzyło.

 

komentarz 9 grudnia 2016 przez Yashe Dyskutant (7,720 p.)
Super, wszystko śmiga tak jak powinno.

Dziękuje i pozdrawiam !
0 głosów
odpowiedź 18 czerwca 2017 przez niezalogowany
Ktoś wie jak to zrobić z poziomu kodu?

Podobne pytania

+1 głos
1 odpowiedź 684 wizyt
pytanie zadane 28 grudnia 2016 w Java przez niko64 Użytkownik (630 p.)
0 głosów
1 odpowiedź 128 wizyt
pytanie zadane 28 lipca 2018 w Java przez Kabuuz Bywalec (2,820 p.)
0 głosów
1 odpowiedź 903 wizyt
pytanie zadane 22 lipca 2017 w HTML i CSS przez Vorex444 Dyskutant (9,610 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...