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.
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)
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.
- 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.