270 likes | 640 Views
Q T 编程简介. 智能仿生——柴 树杉. 基于Q T 开 发的软件(1): KDE-01. 基于Q T 开 发的软件(1): KDE-02. 基于Q T 开 发的软件(2): G OOGLE 地球. 基于Q T 的 软件(3): M AYA. 基于Q T 的 软件(4): 更多……. Opera 浏览器 Skype 网 络电话 QCad Adobe Photoshop Album CGAL 计算几何库 ……. Q T 历史. 1996 Sep 24 Qt1.0 1996 Oct KDE 组织成立
E N D
QT编程简介 智能仿生——柴树杉
基于QT的软件(4): 更多…… • Opera浏览器 • Skype网络电话 • QCad • Adobe Photoshop Album • CGAL计算几何库 • ……
QT历史 • 1996 Sep 24 Qt1.0 • 1996 Oct KDE 组织成立 • 1998 Apr 05 Trolltech 的程序员在 5 天之内将 Netscape5.0 从 Motif 移植到 Qt 上 • 1998 Apr 08 KDE Free Qt 基金会成立 • 1998 Jul 12 KDE 1.0 发布 • 1999 Jun 25 Qt 2.0 发布 • 2000 Mar 20 嵌入式 Qt 发布 • 2000 Sep 06 Qt 2.2 发布 • 2000 Sep 04 Qt free edition 开始使用 GPL • 2004 Aug 4.0 • 2008 Aug 4.4发布, 集成Webkit和Phonon
QT优点 1. 优良的跨平台特性 Qt支持下列操作系统: Windows,Linux, Solaris, SunOS, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。 2. 面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。 3. 丰富的 API Qt 包括多达 500 个以上的 C++ 类,还替供基于模板的 collections,serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。 4. 大量的开发文档 5. Network/XML/OpenGL/Database/webkit/...
HELLO QT(1) #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel("Hello Qt!"); label->show(); return app.exec(); }
HELLO QT(2): 用HTML格式化 #include <QtGui> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel("<h2><i>Hello</i> " "<font color=red>Qt!</font></h2>"); label->show(); return app.exec(); }
创建链接 int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton *button = new QPushButton("Quit"); QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit())); button->show(); return app.exec(); }
基本布局(1) int main(int argc, char *argv[]) { QApplication app(argc, argv); QSpinBox *spinBox = new QSpinBox; QSlider *slider = new QSlider(Qt::Horizontal); QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int))); QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
基本布局(2) QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(spinBox); layout->addWidget(slider); QWidget *window = new QWidget; window->setWindowTitle("Enter Your Age"); window->setLayout(layout); window->show(); return app.exec(); }
界面设计师: AGE #include <QtGui> #include "ui_age.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget *window = new QWidget; Ui::Age ui; ui.setupUi(window); window->show(); return app.exec(); }
界面设计师:应用UI文件 #include <QtGui> #include "ui_helpbrowser.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); Ui::HelpBrowser ui; QWidget *window = new QWidget; ui.setupUi(window); ui.textBrowser->setSource(QString("html/index.html")); window->show(); return app.exec(); }
QT学习资源 • Qt帮助文档[最权威]:http://doc.trolltech.com/ • Trolltech Labs[最新技术]: http://labs.trolltech.com/ • 《C++ Gui Qt4 编程》官方教材,电子工业出版社 • Qt中文论坛:http://www.qtcn.org/ • 云帆论坛[Qt版]:http://www.myswear.net/forum/
谢谢大家 下期关注:创建主窗口程序