• Nie Znaleziono Wyników

prezentacja w PDF

N/A
N/A
Protected

Academic year: 2021

Share "prezentacja w PDF"

Copied!
22
0
0

Pełen tekst

(1)

Podstawy programowania w Qt4

Rafał Rawicki

(2)

Co to jest Qt?

I Zestaw bibliotek dla języka C++

I oraz narzędzia roszerzające jego możliwości

I Ponad 400 klas

(3)

Obsługiwane platformy

I Microsoft Windows – 98, NT 4.0, ME, 2000, and XP

I Unix/X11 – Linux, Sun Solaris, HP-UX, HP Tru64 UNIX,

IBM AIX, SGI IRIX i wiele innych.

I Mac OS X – Mac OS X 10.3+

I Systemy wbudowane – Linux z obsługą framebuffera

W przygotowaniu:

(4)
(5)

Licencje

Qt4 jest oferowane w dwóch opcjach:

I Open Source – Na wolnej licencji GNU GPL.

I Commercial – Komercyjny sposób dystrybucji z supportem.

W wersji 3 biblioteka Qt była dostępna na licencji GNU GPL tylko dla systemu Linux. Wraz z wydaniem Qt4 możemy tworzyć Wolne Oprogramowanie także pod pozostałe systemy.

(6)

Hello World!

I Rozmieszczanie widgetów za pomocą layoutów

I Sygnały i sloty

(7)

Łatwe rozmieszczanie elementów dzięki layoutom

1 QHBoxLayout∗ l a y o u t = new QHBoxLayout ; 2 l a y o u t −>a d d W i d g e t ( e x i t b u t t o n ) ; 3 . . .

4 main window−>s e t L a y o u t ( l a y o u t ) ;

I Programista nie wpisuje pozycji elementów na sztywno.

I Okienka wyglądają dobrze niezależnie od ustawionego

(8)

Łatwe rozmieszczanie elementów dzięki layoutom c. d.

I QHBoxLayout - rozkład w poziomie

I QVBoxLayout - rozkład w pionie

I QGridLayout - siatka

Elementy są kładzione na layoucie w kolejności wywoływania layout −>addWidget(...).

(9)

Mechanizm sygnałów i slotów

1 Q O b j e c t : : c o n n e c t ( e x i t b u t t o n , SIGNAL ( c l i c k e d ( ) ) , &app , SLOT( q u i t ( ) ) ) ; Możemy połączyć:

I Jeden sygnał do wielu slotów

I Wiele sygnałów do tego samego slotu

I Sygnał do sygnału

Sygnały są rozłączane automatycznie w przypadku usunięcia któregoś z obiektów, ale można to zrobić ręcznie.

(10)

Mechanizm sygnałów i slotów c. d.

Mechanizm sygnałów i slotów jest bezpieczny ze względu na typy. (Typy sygnału muszą zgadzać się z typami slotu.)

Wyjątek:

1 Q o b j e c t : : c o n n e c t ( w i d g e t 1 , SIGNAL ( v a l u e C h a n g e d ( i n t , c o n s t Q S t r i n g & ) ) ,

2 w i d g e t 2 , SLOT( s e t V a l u e ( i n t ) ) ) ;

Jeżeli slot ma mniej parametrów, dodatkowe parametry są ignorowane.

(11)

Ograniczenia mechanizmu sygnałów i slotów

Nie możemy tworzyć sygnałów/slotów w:

I Klasach będących szablonami

I Klasach zagnieżdżonych w innych klasach

Nie możemy również tworzyć połączeń przy pomocy std::bind1st, std::bind2nd, boost::bind itp.

(12)

Qmake

I Qmake – Manager budowania automatycznie tworzy

prawidłowy plik Makefile dla każdej platformy. $ qmake-qt4 -project

$ qmake-qt4 $ make

(13)

Ftp Client

I Qt Designer

I Klasy Model/View

I QNetwork

(14)

Qt Designer

Designer jest graficznym narzędziem dostarczanym razem z Qt ułatwiającym projektowanie interfejsu naszej aplikacji.

I Designer generuje opis wyglądu w pliku xml nazwa klasy. ui

I Dodajemy do pliku projektu FORMS += nazwa klasy.ui

I Dołączamy plik nagłówkowy ui nazwa klasy . h

(15)

Qt Designer c. d.

I Rozmieszczanie elementów interfejsu

I Łączenie sygnałów i slotów

I Buddy Widgets

(16)

MVC a Qt4

Implementacja popularnego wzorca projektowego.

I Widok – pobiera dane z modelu i prezentuje użytkownikowi

aplikacji

(17)
(18)

MVC a Qt4 - Modele

Wszystkie modele dziedziczą z klasyQAbstractItemModelKilka gotowych

jest dostarczanych razem z Qt:

I QStringListModel

I QStandardItemModel

I QDirModel

I QSqlQueryModel, QSqlTableModel,

QSqlRelationalTableModel

Własne modele tworzymy dziedzicząc po klasach QAbstractItemModel, QAbstractListModel, QAbstractTableModel.

(19)

Qt Linguist i Lokalizacja aplikacji

lupdate B linguist-qt4 B lrelease 1 i n t main ( i n t a r g c , c h a r ∗∗ a r g v ){ 2 Q a p p l i c a t i o n app ( a r g c , a r g v ) ; 3 Q T r a n s l a t o r t r a n s l a t o r ; 4 5 t r a n s l a t o r . l o a d ( ” f t p c l i e n t ” + Q L o c a l e : : s y s t e m ( ) . name ( ) , 6 qApp−>a p p l i c a t i o n D i r P a t h ( ) ) ; 7 app . i n s t a l l T r a n s l a t o r (& t r a n s l a t o r ) ; 8 9 F t p C l i e n t f t p ; 10 f t p . show ( ) ; 11 12 r e t u r n app . e x e c ( ) ; 13 }

(20)

Dalsze informacje

I http://doc.trolltech.com

I http://qtcentre.org

I http://qtforum.org

(21)
(22)

Dziękuję za uwagę

mail: rawicki@gmail.com jid: rawicki@chrome.pl

Cytaty

Powiązane dokumenty

W pozycji tej ujęte zostały zaliczane do aktywów trwałych środki trwałe w okresie ich budowy, montażu lub ulepszenia już istniejącego środka trwałego. Cena nabycia

Do wszystkich klas definiujących stopnie, czyli do klasy bazowej Stopien_walu oraz do klas pochodnych StopienFazaZLewej, StopienFazaZPrawej dodamy metodę XMLZapisz –

The nine criteria are: time (is early production required?), certainty of time (is project completion on time important?), certainty of cost (is a firm price needed

Metoda obsługi tego zdarzenia powinna odczytać teksty z pól edycji jTextField1 i jTextField2 , dokonać ich konwersji na liczby będące argumentami operacji

Dla polecenia menu o tytule Suma wiersza , utwórz metodę obsługującą zdarzenie actionPerformed , które dla wybranego numeru wiersza oblicza sumę jego elementów.. Utwórz

• Interfejs użytkownika jest dobrze zaprojektowany wówczas, gdy model programu jest zgodny z

Spośród uznanych rozwiązań sieciowych systemów pracy grupowej nasze zainteresowanie zostało skierowane na środowisko Lotus Notes firmy Lotus (aktualnie IBM), które,

– W hurtowni danych syste- mu szpitalnego Centrum Onkologii jest bardzo wiele informacji medycznych chorych leczonych w naszej jednostce.. Zanim zaczęliśmy korzystać z MSD, dane