Zaawansowane programowanie w C++ Micha l Tanaś, PhD Adam Mickiewicz University, Faculty of Physics http://www.amu.edu.pl/~mtanas Michal.Tanas@amu.edu.pl
Wykonanie klasycznego programu System operacyjny main() exit() Program
Wykonanie programu sterowanego zdarzeniami X11 event return event return Funkcja Funkcja
D lugotrwa le wykonywanie funkcji = zablokowanie zdarzeń X11 Funkcja
Koszt cz estego generowania zdarzeń X11
Rozwiazanie = z loty środek X11
Biblioteka QT http://qt.nokia.com/ http://qt.nokia.com/products/ http://doc.trolltech.com/ http://doc.trolltech.com/4.9/classes.html Opis dowolnej klasy należacej do QT l acznie z opisem wszystkich jej metod można uzyskać przy pomocy polecenia: man nazwa klasy Np. man qapplication
Biblioteka QT Dostepna na platformy: Linux/X11 - oraz inne UNIX y z zainstalowanym serwerem X11 (np. Solaris) Embedded Linux - nie wymaga X11, dostepne na x86, MIPS, PowerPC, ARM Windows - 7, Vista, Server 2003, XP, ME, 98 Windows CE/Mobile - na x86 i ARM Symbian, MeeGoo Mac OS X
Biblioteka QT Dostepna na platformy: Linux/X11 - oraz inne UNIX y z zainstalowanym serwerem X11 (np. Solaris) Embedded Linux - nie wymaga X11, dostepne na x86, MIPS, PowerPC, ARM Windows - 7, Vista, Server 2003, XP, ME, 98 Windows CE/Mobile - na x86 i ARM Symbian, MeeGoo Mac OS X
Biblioteka QT Dostepna na platformy: Linux/X11 - oraz inne UNIX y z zainstalowanym serwerem X11 (np. Solaris) Embedded Linux - nie wymaga X11, dostepne na x86, MIPS, PowerPC, ARM Windows - 7, Vista, Server 2003, XP, ME, 98 Windows CE/Mobile - na x86 i ARM Symbian, MeeGoo Mac OS X
Biblioteka QT Dostepna na platformy: Linux/X11 - oraz inne UNIX y z zainstalowanym serwerem X11 (np. Solaris) Embedded Linux - nie wymaga X11, dostepne na x86, MIPS, PowerPC, ARM Windows - 7, Vista, Server 2003, XP, ME, 98 Windows CE/Mobile - na x86 i ARM Symbian, MeeGoo Mac OS X
Biblioteka QT Dostepna na platformy: Linux/X11 - oraz inne UNIX y z zainstalowanym serwerem X11 (np. Solaris) Embedded Linux - nie wymaga X11, dostepne na x86, MIPS, PowerPC, ARM Windows - 7, Vista, Server 2003, XP, ME, 98 Windows CE/Mobile - na x86 i ARM Symbian, MeeGoo Mac OS X
Biblioteka QT Dostepna na platformy: Linux/X11 - oraz inne UNIX y z zainstalowanym serwerem X11 (np. Solaris) Embedded Linux - nie wymaga X11, dostepne na x86, MIPS, PowerPC, ARM Windows - 7, Vista, Server 2003, XP, ME, 98 Windows CE/Mobile - na x86 i ARM Symbian, MeeGoo Mac OS X
Biblioteka QT Wersja nieoficjalna (z która Nokia nie chce mieć nic wspólnego ;) ) Android - Lighthouse, http://code.google.com/p/android-lighthouse/wiki/compile
Biblioteka QT Zalety QT + Umożliwia latwe programowanie interfejsu graficznego + Umożliwia latwe pisanie programów niezależnych (na poziomie kodu źród lowego) od sprzetu i systemu operacyjnego
Biblioteka QT Zalety QT + Umożliwia latwe programowanie interfejsu graficznego + Umożliwia latwe pisanie programów niezależnych (na poziomie kodu źród lowego) od sprzetu i systemu operacyjnego
Biblioteka QT Kompilowanie programu wykorzystujacego QT qmake -project qmake make
Biblioteka QT Kompilowanie programu wykorzystujacego QT qmake -project qmake make
Biblioteka QT Kompilowanie programu wykorzystujacego QT qmake -project qmake make
Program Hello world! # include <QtGui> int main(int argc, char **argv) { QApplication a(argc,argv); QPushButton w( Hello world! ); w.show(); return a.exec(); }
QCoreApplication QCoreApplication Klasa zawierajaca g lówna kolejke zdarzeń danego programu Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Zawiera funkcje sterujace aplikacja nie dotyczace interfejsu graficznego. Jest wystarczajaca do dzia lania aplikacji QT nie wykorzystujacych interfejsu graficznego.
QCoreApplication QCoreApplication Klasa zawierajaca g lówna kolejke zdarzeń danego programu Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Zawiera funkcje sterujace aplikacja nie dotyczace interfejsu graficznego. Jest wystarczajaca do dzia lania aplikacji QT nie wykorzystujacych interfejsu graficznego.
QCoreApplication QCoreApplication Klasa zawierajaca g lówna kolejke zdarzeń danego programu Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Zawiera funkcje sterujace aplikacja nie dotyczace interfejsu graficznego. Jest wystarczajaca do dzia lania aplikacji QT nie wykorzystujacych interfejsu graficznego.
QCoreApplication QCoreApplication Klasa zawierajaca g lówna kolejke zdarzeń danego programu Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Zawiera funkcje sterujace aplikacja nie dotyczace interfejsu graficznego. Jest wystarczajaca do dzia lania aplikacji QT nie wykorzystujacych interfejsu graficznego.
QCoreApplication QCoreApplication int exec(); Uruchamia przetwarzanie zdarzeń dla aplikacji. Powrót z tej funkcji jest równoznaczny z zakończeniem dzia lania aplikacji (tzn. żadne dalsze zdarzenia nie bed a już obs lużone).
QCoreApplication QCoreApplication int exit(int); Zakończenie dzia lania aplikacji z określonym kodem wyjścia. Wywo lanie funkcji exit powoduje powrót z funkcji exec i przekazanie sterowania do funkcji main. int quit(); jak wyżej, z kodem zakończenia 0 int abouttoquit(); Sygna l wysy lany tuż przed zakończeniem dzia lania aplikacji. Odpowiednik atexit.
QCoreApplication QCoreApplication int exit(int); Zakończenie dzia lania aplikacji z określonym kodem wyjścia. Wywo lanie funkcji exit powoduje powrót z funkcji exec i przekazanie sterowania do funkcji main. int quit(); jak wyżej, z kodem zakończenia 0 int abouttoquit(); Sygna l wysy lany tuż przed zakończeniem dzia lania aplikacji. Odpowiednik atexit.
QCoreApplication QCoreApplication int exit(int); Zakończenie dzia lania aplikacji z określonym kodem wyjścia. Wywo lanie funkcji exit powoduje powrót z funkcji exec i przekazanie sterowania do funkcji main. int quit(); jak wyżej, z kodem zakończenia 0 int abouttoquit(); Sygna l wysy lany tuż przed zakończeniem dzia lania aplikacji. Odpowiednik atexit.
QApplication QApplication Klasa przetwarzajaca zdarzenia zwiazane z interfejsem graficznym. Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Umożliwia sterowanie aplikacja (np. ustawienie domyślnego kroju liter, zamkniecie wszystkich otwartych okien, itp.) Interpretuje standardowe opcje programów X11 (np. -geometry, -fn). Dziedziczy klas e QCoreApplication.
QApplication QApplication Klasa przetwarzajaca zdarzenia zwiazane z interfejsem graficznym. Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Umożliwia sterowanie aplikacja (np. ustawienie domyślnego kroju liter, zamkniecie wszystkich otwartych okien, itp.) Interpretuje standardowe opcje programów X11 (np. -geometry, -fn). Dziedziczy klas e QCoreApplication.
QApplication QApplication Klasa przetwarzajaca zdarzenia zwiazane z interfejsem graficznym. Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Umożliwia sterowanie aplikacja (np. ustawienie domyślnego kroju liter, zamkniecie wszystkich otwartych okien, itp.) Interpretuje standardowe opcje programów X11 (np. -geometry, -fn). Dziedziczy klas e QCoreApplication.
QApplication QApplication Klasa przetwarzajaca zdarzenia zwiazane z interfejsem graficznym. Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Umożliwia sterowanie aplikacja (np. ustawienie domyślnego kroju liter, zamkniecie wszystkich otwartych okien, itp.) Interpretuje standardowe opcje programów X11 (np. -geometry, -fn). Dziedziczy klas e QCoreApplication.
QApplication QApplication Klasa przetwarzajaca zdarzenia zwiazane z interfejsem graficznym. Istnienie obiektu tej klasy jest niezb edne dla wi ekszości pozosta lych klas QT. Umożliwia sterowanie aplikacja (np. ustawienie domyślnego kroju liter, zamkniecie wszystkich otwartych okien, itp.) Interpretuje standardowe opcje programów X11 (np. -geometry, -fn). Dziedziczy klas e QCoreApplication.
QApplication QApplication QApplication(int & argc, char **argv); Konstruktor. Jako parametry musi mieć podane parametry argc i argv funkcji main (czyli parametry z linii komend).
QApplication QApplication void lastwindowclosed(); Sygna l wysy lany w momencie zamkniecia (z dowolnego powodu) ostatniego okienka aplikacji. void closeallwindows(); Zamyka wszystkie okna otwarte przez aplikacje (ile by ich nie by lo).
QApplication QApplication void lastwindowclosed(); Sygna l wysy lany w momencie zamkniecia (z dowolnego powodu) ostatniego okienka aplikacji. void closeallwindows(); Zamyka wszystkie okna otwarte przez aplikacje (ile by ich nie by lo).
QApplication QApplication QWidget * activewindow(); Podaje które z okienek otwartych przez aplikacje jest aktywne. Dotyczy tylko okienek top-level, nie widgetów. QWidget * focuswidget(); Podaje który z widgetów jest aktywny (np. pole tekstowe w którym jest kursor).
QApplication QApplication QWidget * activewindow(); Podaje które z okienek otwartych przez aplikacje jest aktywne. Dotyczy tylko okienek top-level, nie widgetów. QWidget * focuswidget(); Podaje który z widgetów jest aktywny (np. pole tekstowe w którym jest kursor).
QApplication QApplication QWidget * widgetat(int x, int y); QWidget * widgetat(qpoint); Zwraca wskaźnik na widget do którego należy punkt o wspó lrz ednych ekranowych (x,y).
QApplication QApplication QClipBoard * clipboard(); Zwraca wskaźnik na globalny schowek aplikacji. QDesktopWidget * desktop(); Zwraca wskaźnik na obiekt (tzw. root window) reprezentujacy wirtualny ekran systemu operacyjnego (domyślnie: ekran monitora). Przydatne do rysowania poza oknami (np. tapety) odczytania rozdzielczości ekranu
QApplication QApplication QClipBoard * clipboard(); Zwraca wskaźnik na globalny schowek aplikacji. QDesktopWidget * desktop(); Zwraca wskaźnik na obiekt (tzw. root window) reprezentujacy wirtualny ekran systemu operacyjnego (domyślnie: ekran monitora). Przydatne do rysowania poza oknami (np. tapety) odczytania rozdzielczości ekranu
QApplication QApplication QClipBoard * clipboard(); Zwraca wskaźnik na globalny schowek aplikacji. QDesktopWidget * desktop(); Zwraca wskaźnik na obiekt (tzw. root window) reprezentujacy wirtualny ekran systemu operacyjnego (domyślnie: ekran monitora). Przydatne do rysowania poza oknami (np. tapety) odczytania rozdzielczości ekranu
QApplication QApplication QClipBoard * clipboard(); Zwraca wskaźnik na globalny schowek aplikacji. QDesktopWidget * desktop(); Zwraca wskaźnik na obiekt (tzw. root window) reprezentujacy wirtualny ekran systemu operacyjnego (domyślnie: ekran monitora). Przydatne do rysowania poza oknami (np. tapety) odczytania rozdzielczości ekranu
QApplication QApplication QFont font(); Zwraca domyślna czcionke aplikacji. void setfont(qfont); Zmienia domyślna czcionke aplikacji. QFontMetrics fontmetrics(); Zwraca tzw. metryk e domyślnej czcionki aplikacji. Ważne, ponieważ zawiera np. informacj e ile pixeli zajmuje dana litera przy aktualnej wielkości czcionki i rozdzielczości ekranu.
QApplication QApplication QFont font(); Zwraca domyślna czcionke aplikacji. void setfont(qfont); Zmienia domyślna czcionke aplikacji. QFontMetrics fontmetrics(); Zwraca tzw. metryk e domyślnej czcionki aplikacji. Ważne, ponieważ zawiera np. informacj e ile pixeli zajmuje dana litera przy aktualnej wielkości czcionki i rozdzielczości ekranu.
QApplication QApplication QFont font(); Zwraca domyślna czcionke aplikacji. void setfont(qfont); Zmienia domyślna czcionke aplikacji. QFontMetrics fontmetrics(); Zwraca tzw. metryk e domyślnej czcionki aplikacji. Ważne, ponieważ zawiera np. informacj e ile pixeli zajmuje dana litera przy aktualnej wielkości czcionki i rozdzielczości ekranu.