230 likes | 479 Views
QT Intro. 김기형 (kkhsoft@sparcs.org) http://kkhblog.sparcs.net. GUI in Linux. GUI in Linux. Program by QT. What is QT?. Especially, for GUI progrmming For database, networking, XML, OpenGL, etc. Cross Platform.
E N D
QT Intro. 김기형 (kkhsoft@sparcs.org) http://kkhblog.sparcs.net
GUI in Linux Made and Designed by KKHSOFT. SPARCS
GUI in Linux Made and Designed by KKHSOFT. SPARCS
Program by QT Made and Designed by KKHSOFT. SPARCS
What is QT? • Especially, for GUI progrmming • For database, networking, XML, OpenGL, etc. • Cross Platform Qt is a comprehensive C++ application development framework. It includes a class library and tools for cross-platform development and internationalization. Made and Designed by KKHSOFT. SPARCS
QT Application Source Code QT API Xlib GDI Carbon Embedded Linux Unix/Linux MS Windows Mac OS X What is QT? • “Write Once, Run Everywhere” • Open Source • Free in Linux, Unix (http://www.trolltech.com/download/qt/x11.html) • Free in both Windows and Mac recently (http://www.trolltech.com/download/qt/windows.html) • QPL(Q Public License) with GPL • Free except for commercial use Made and Designed by KKHSOFT. SPARCS
Before Start.. • Knowledge about C++ • At first, you can use C • Recommend C seminar leaded by battery (battery@sparcs.org) • Understanding of OOP • How to install • By yourself.. Made and Designed by KKHSOFT. SPARCS
How to use • QApplication • Necessary header file • Widget in QT • Include [widget_name].h • Interface that provide control • QObject • Basic class • Provide signal & slot #include <qapplication.h> #include <qlabel.h> Made and Designed by KKHSOFT. SPARCS
How to use int main(int argc, char *argv[]) { QApplication app (argc, argv); QLabel *label = new QLabel("Hello Qt!", 0); app.setMainWidget(label); label->show(); return app.exec(); } • Why qmake? • Just easy… qmake -project hello.pro qmake hello.pro Makefile Made and Designed by KKHSOFT. SPARCS
How to use • Signal & Slot • Connect(), disconnect() • Moc (Meta Object Compiler) • Make source file that C++ compiler can understand from your well-defined file (generally from header file) Made and Designed by KKHSOFT. SPARCS
How to use • Header file class FindDialog : public QDialog { Q_OBJECT public: FindDialog(QWidget *parent=0, const char *name=0); signals: void findNext(const QString &str, bool caseSensitive); … private slots: void findClicked(); void enableFindButton(const QString &text); private: … }; Made and Designed by KKHSOFT. SPARCS
How to use • Source file (cpp) #include "finddialog.h” … FindDialog::FindDialog(QWidget *parent, const char *name) : QDialog(parent, name) { … connect(findButton, SIGNAL(clicked()), this, SLOT(findClicked())); … void FindDialog::findClicked() { QString text=lineEdit->text(); bool caseSensitive = caseCheckBox->isOn(); if (backwardCheckBox->isOn()) emit findPrev(text,caseSensitive); else emit findNext(text,caseSensitive); } Made and Designed by KKHSOFT. SPARCS
Qt Designer • Powerful GUI layout and forms builder • Save time to make UI • Easy for connection Made and Designed by KKHSOFT. SPARCS
Qt Designer • How to make Connections • How to modify Source • Right click on the widget Made and Designed by KKHSOFT. SPARCS
Qt Designer Made and Designed by KKHSOFT. SPARCS
Qt Designer • Very useful! • Make layout, form and connection • Don’t program in Qt designer! • Just design and use vim Made and Designed by KKHSOFT. SPARCS
Qt-embedded • Use Qt for Embedded Programming • For mobile, PDA and embedded linux QT Application Source Code Qt-embedded-x86 Qt-embedded Binary file for X86 Binary file for Embedded Linux redirection porting Virtual Frame Buffer Embedded Machine Made and Designed by KKHSOFT. SPARCS
Qt-embedded • qt-embedded-free • Qvfb, qt-embedded compiler • QT Virtual Frame Buffer • Embedded machine use Frame buffer, not X • Test in host before porting application qvfb –width 640 –height 480 –depth 32 & Made and Designed by KKHSOFT. SPARCS
Qt-embedded • Execution in qvfb • Unexpected Error • With sudo.. ./demofile -qws Semop unlock failure 부적절한 인수 Semop lock failure 부적절한 인수 Made and Designed by KKHSOFT. SPARCS
Others from Qt • Qtopia • an application platform and user interface for embedded Linux • Binding for other Language • Python, Ruby, Perl, etc. • Qt Linguist, Qt Assistant, QSA, and so on. Made and Designed by KKHSOFT. SPARCS
Further Work • Qt study..? • More than 5 people who wanna learn more about Qt • Qt Embedded Programming..? • Other members who have interest • Need more support • More specific Qt seminar • Enough time, many attendances • But, 귀차니즘… Made and Designed by KKHSOFT. SPARCS
Reference • Trolltech • http://www.trolltech.com • Qt 4 Open Source Edition download • http://www.trolltech.com/download/opensource.html • Qt 4.1 Refernce Document • http://doc.trolltech.com/4.1/ • Qt Community site • http://www.qtcentre.org Made and Designed by KKHSOFT. SPARCS
Thank you! Any Question..? Made and Designed by KKHSOFT. SPARCS