Programowanie C++ Qt4 w systemie Gnu-Linux/Okno główne i okno dialogowe
Przedstawiony program będzie wywoływał okno dialogowe i będzie dodawał do listy w oknie głównym element z okna dialogowego. Obydwa okna zaprojektujemy w QT designer. Ponieważ ten rozdział to taki wstęp. Dlatego już tutaj umieszczam link do filmiku obrazującego krok po kroku, jak taki program stworzyć
https://www.youtube.com/watch?v=dXR4KAG-mTM&feature=youtu.be
Poniżej krótki opis w punktach odnośnie nagranego filmiku. Zaczynamy tworząc nowy projekt:
- Nowy Projekt>>Aplikacje>>Aplikacje QtWidget.
- Postępujemy zgodnie ze wskazówkami kreatora projektu. Zostanie nam wygenerowany nowy projekt. W prawym okienku QtCreatora zobaczymy drzewo katalogów.
- W widoku projektu klikamy prawym przyciskiem na głównym katalogu projektu i następnie wybieramy:
- Dodaj nowy>>Qt>>Klasa Formularza QtDesigner. Akceptujemy domyślny wybór zostanie utworzone nasze okienko dialogowe.
Najpierw się zajmiemy edycją formatek będą one wyglądały jak na screanie poniżej.
![](http://upload.wikimedia.org/wikibooks/pl/thumb/f/fc/Programowanie_Qt4_Qt_designer_rozm_element%C3%B3w_na_formatce.png/400px-Programowanie_Qt4_Qt_designer_rozm_element%C3%B3w_na_formatce.png)
Teraz dokonamy rozmieszczenia elementów na formatkach. W tym celu klikamy przyciski na które wskazują strzałki:
- Rozmieść w poziomie dla formatki głównej
- Rozmieść w siatce dla formatki dialogowej
I oczom naszym ukaże się taki oto obraz naszej aplikacji.(QDevelop umożliwiał robienie kilku formatek na jednym widoku. Qtcreator ma inną funkcjonalność. Ale poza tym wszystko inne aktualne)
![](http://upload.wikimedia.org/wikibooks/pl/thumb/6/66/Programowanie_Qt4_Qt_designer_rozm_element%C3%B3w_na_formatce2.png/400px-Programowanie_Qt4_Qt_designer_rozm_element%C3%B3w_na_formatce2.png)
Sygnały i sloty QT-designer
[edytuj]Jest to specyficzny mechanizm biblioteki do obsługi, którego zaangażowane są mechanizmy z poza c++. Klasa ma pewne funkcje zadeklarowane jako sloty, które są wywoływane w momencie nadejścia zdarzenia (emisji sygnału). Połączenia sygnału ze slotem dokonuje się za pomocą słowa kluczowego connect. Slot to zwykła funkcja obiektu, którą możemy skojarzyć z sygnałem z innego obiektu. Sygnał Cliked obiektu pushbuton kojarzymy z sygnałem clear obiektu listwidget. Część tego typu operacji możemy dokonać już w QTdesignerze jak pokazuje poniższy rysunek.
![](http://upload.wikimedia.org/wikibooks/pl/thumb/a/a3/Programowanie_Qt4_Qt_designer_edycja_sygna%C5%82%C3%B3w_i_slot%C3%B3w.png/400px-Programowanie_Qt4_Qt_designer_edycja_sygna%C5%82%C3%B3w_i_slot%C3%B3w.png)
- Sygnał clicked() przycisku czyść listę łączymy ze slotem clear() obiektu listwidget
- Sygnał clicked() przycisku koniec łączymy ze slotem close() obiektu głównej formatki
- Sygnał accept() butonbox ok anuluj łączymy ze slotem accept() obiektu głównej formatki okna dialogowego
- Sygnał reject() butonbox ok anuluj łączymy ze slotem reject() obiektu głównej formatki okna dialogowego
Przepraszam za trochę nieścisły materiał
[edytuj]Rozdział ten pisałem dość dawno gdy QtCreator nie był jeszcze dostępny w repozytoriach dystrybucji linuksowych. Więc do pierwszego kursu posłużyłem się innym IDE "Q-Develop". Sporo rzeczy pozostaje aktualnymi dlatego robionych wcześniej zrzutów nie kasuję. Ale dorzucam filmik na youtube jak taki program zrobić już z wykorzystaniem QtCreatora.
https://www.youtube.com/watch?v=eR6VRQFCemY
I oczywiście projekt do pobrania aby początkujący programista mógł go sobie przetestować gotowca zanim cokolwiek będzie pisał samodzielnie.