Przejdź do zawartości

Programowanie C++ Qt4 w systemie Gnu-Linux/Okno główne i okno dialogowe

Z Wikibooks, biblioteki wolnych podręczników.

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:

  1. Nowy Projekt>>Aplikacje>>Aplikacje QtWidget.
  2. Postępujemy zgodnie ze wskazówkami kreatora projektu. Zostanie nam wygenerowany nowy projekt. W prawym okienku QtCreatora zobaczymy drzewo katalogów.
  3. 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.


rozmieszczenie elementów na formatce


Teraz dokonamy rozmieszczenia elementów na formatkach. W tym celu klikamy przyciski na które wskazują strzałki:

  1. Rozmieść w poziomie dla formatki głównej
  2. 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)


Gotowe Gui

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.


edycja sygnałów i slotów w QT-Designer
  1. Sygnał clicked() przycisku czyść listę łączymy ze slotem clear() obiektu listwidget
  2. Sygnał clicked() przycisku koniec łączymy ze slotem close() obiektu głównej formatki
  3. Sygnał accept() butonbox ok anuluj łączymy ze slotem accept() obiektu głównej formatki okna dialogowego
  4. 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.

http://chomikuj.pl/mysiadziura/www.marekk.dreamhosters.com/DemoOkienkoDialogowe,4931407692.zip(archive)