- Qt参考文档
- Qt的类
- Qt的主要类
- Annotated Class Index
- 分组的类
- Member Function Index
- 关于Qt
- Qt的版本
- FAQs
- Window System-specific Notes
- 安装
- 如何学习Qt
- Qt教程一 —— 共十四步
- Qt教程二
- Examples
- Step-by-step Examples
- Key Features in Qt 3.0
- Porting to Qt 3.x
- 简体中文汉化日志
- Class Inheritance Hierarchy
- Qt Class Chart
- Header File Index
- 关于模块
- 画布模块
- 图标视图模块
- Network Module
- Qt OpenGL 三维绘图
- SQL模块
- 表格模块
- 工作区模块
- XML Module
- 概述与HOWTO
- Qt对象模型
- 信号和槽
- 窗口几何结构
- 事件和事件过滤器
- 以Qt国际化
- 调试技术
- Qt中的线程支持
- Qt插件HOWTO
- Pictures of Most Qt Widgets
- Company Information
- 如何报告bug
- Mailing Lists
- Qt的工具
- Qt翻译工具指南
- Qt助手和Qt参考文档
- qmake用户手册
- Standard Accelerator Keys
- Qt Free Edition License Agreement
- GNU General Public License
- Licenses for Code Used in Qt
- 抽象窗口部件类
- Analog Clock
- Walkthrough: A Tiny Editor Illustrating QActionGroup
- A Tiny Example Featuring QActionGroup
- Simple Addressbook
- Advanced Widgets
- Widget Appearance and Style
- Setting the Application Icon
- Main Window and Related Classes
- 介绍
- Qt参考文档介绍
- The 1 Minute Guide to using Qt Assistant
- Qt Assistant in More Detail
- Basic Widgets
- Biff (UNIX only)
- 如何生成大的稀疏QTable
- Buttons and Groupboxes
- A Complete Canvas Application
- Canvas Example
- Listviews with Checkable Items
- A small client-server example
- Collection Classes
- 坐标系统
- Cursors
- 写你自己的布局管理器
- Customized Layoutmanager
- Style overview
- Database Classes
- Format of the QDataStream Operators
- Digital Clock
- Qt Demo
- Qt 设计器
- Reference: Menu Options
- Reference: Toolbar Buttons
- Reference: Dialogs
- Reference: Wizards
- Reference: Windows
- Reference: The .ui File Format
- Creating a Qt Application
- Creating Main Windows with Actions, Toolbars and Menus
- The Designer Approach
- Subclassing and Dynamic Dialogs
- Creating Custom Widgets
- Creating Database Applications
- Customizing and Integrating Qt Designer
- Reference: Key Bindings
- Painting on the Desktop
- Dialog Classes
- A Directory Browser
- 拖放
- Drag And Drop Classes
- Drag and Drop
- Draw Demo
- Connect the Points
- Adding an accelerated graphics driver to Qt/Embedded
- Qt/Embedded Case Study - Cassiopeia E-100
- Character input in Qt/Embedded
- The Qt/Embedded-specific classes
- Qt/Embedded environment variables
- The Feature Definition File
- Fonts in Qt/Embedded
- Enabling the Linux Framebuffer
- Installing Qt/Embedded
- Qt/Embedded Performance Tuning
- Qt/Embedded Pointer Handling
- Porting your applications to Qt/Embedded
- Qt/嵌入式的虚拟帧缓冲
- Running Qt/Embedded applications
- Qt/Embedded as a VNC Server
- Environment Classes
- Event Classes
- Simple Filemanager
- 键盘焦点概述
- A Rectangle Draw "Benchmark"
- An FTP client
- Layout Management
- Grapher Plugin
- Graphics Classes
- Books about GUI
- Hello, World
- Help System
- Simple HTML Help Browser
- Internationalization
- Iconview
- iconview/simple_dd/main.cpp Example File
- iconview/simple_dd/main.h Example File
- Image Processing Classes
- Qt参考文档
- 安装Qt/Windows
- 安装Qt/X11
- Input/Output and Networking
- 布局类
- Layout Managers
- Conway's Game of Life
- Line Edits
- 介绍
- 发布管理器
- Translators
- Programmers
- Listboxes and Comboboxes
- Listbox Example
- Listviews
- A simple mail client
- Editors in a Motif form
- Editors in a Qt main window
- Editors in an Xt form
- makeqpf
- A MDI Application
- Using menus
- 元对象系统
- Miscellaneous Classes
- 使用元对象编译器
- Movies or the Story of the Animated GIF file
- Multimedia Classes
- Network Examples
- A simple NNTP implementation
- Qt-based LiveConnect Plugins
- LiveConnect Examples
- Object Model
- 对象树和对象所有权
- OpenGL Examples
- How to use X11 overlays with the Qt OpenGL extension
- Organizers
- Outliner to show use of DOM
- Picture
- Plugins
- Popup Widgets
- Table of Prime Numbers 2-9999
- Starting processes with IO redirection
- Progress Bar
- Progress Bar and Dialog Example
- 属性
- QAccel类
- qaccel.h包含文件
- QAccel成员列表
- QAccessible Class
- qaccessible.h Include File
- QAccessibleInterface Class
- QAccessibleInterface Member List
- QAccessible Member List
- QAccessibleObject Class
- QAccessibleObject Member List
- QAction类
- A Complete Application Window with Actions
- QAction Examples
- QActionGroup类
- QActionGroup成员列表
- qaction.h包含文件
- QAction成员列表
- QApplication类
- qapplication.h包含文件
- QApplication成员列表
- QAsciiCache Class
- qasciicache.h Include File
- QAsciiCacheIterator Class
- QAsciiCacheIterator Member List
- QAsciiCache Member List
- QAsciiDict Class
- qasciidict.h Include File
- QAsciiDictIterator Class
- QAsciiDictIterator Member List
- QAsciiDict Member List
- qasyncimageio.h Include File
- QAsyncIO Class
- qasyncio.h Include File
- QBitArray类
- qbitarray.h包含文件
- QBitArray成员列表
- QBitmap Class
- qbitmap.h Include File
- QBitmap Member List
- QBitVal Class
- QBitVal Member List
- QBoxLayout Class
- QBoxLayout Member List
- QBrush Class
- qbrush.h Include File
- QBrush Member List
- QBuffer类
- qbuffer.h包含文件
- QBuffer成员列表
- QButton类
- QButtonGroup类
- qbuttongroup.h包含文件
- QButtonGroup成员列表
- qbutton.h包含文件
- QButton成员列表
- QByteArray类
- QByteArray成员列表
- QCache Class
- qcache.h Include File
- QCacheIterator Class
- QCacheIterator Member List
- QCache Member List
- QCanvas Class
- QCanvasEllipse Class
- QCanvasEllipse Member List
- qcanvas.h Include File
- QCanvasItem Class
- QCanvasItemList Class
- QCanvasItemList Member List
- QCanvasItem Member List
- QCanvasLine Class
- QCanvasLine Member List
- QCanvas Member List
- QCanvasPixmap Class
- QCanvasPixmapArray Class
- QCanvasPixmapArray Member List
- QCanvasPixmap Member List
- QCanvasPolygon Class
- QCanvasPolygonalItem Class
- QCanvasPolygonalItem Member List
- QCanvasPolygon Member List
- QCanvasRectangle Class
- QCanvasRectangle Member List
- QCanvasSpline Class
- QCanvasSpline Member List
- QCanvasSprite Class
- QCanvasSprite Member List
- QCanvasText Class
- QCanvasText Member List
- QCanvasView Class
- QCanvasView Member List
- QCDEStyle Class
- qcdestyle.h Include File
- QCDEStyle Member List
- QChar Class
- QChar Member List
- QCharRef Class
- QCharRef Member List
- QCheckBox类
- qcheckbox.h包含文件
- QCheckBox成员列表
- QCheckListItem Class
- QCheckListItem Member List
- QCheckTableItem类
- QCheckTableItem成员列表
- QChildEvent Class
- QChildEvent Member List
- QClipboard类
- qclipboard.h包含文件
- QClipboard成员列表
- QCloseEvent Class
- QCloseEvent Member List
- QColor Class
- QColorDialog类
- qcolordialog.h包含文件
- QColorDialog成员列表
- QColorDrag Class
- QColorDrag Member List
- QColorGroup Class
- QColorGroup Member List
- qcolor.h Include File
- QColor Member List
- QComboBox Class
- qcombobox.h Include File
- QComboBox Member List
- QComboTableItem类
- QComboTableItem成员列表
- QCommonStyle Class
- qcommonstyle.h Include File
- QCommonStyle Member List
- QConstString Class
- QConstString Member List
- QContextMenuEvent Class
- QContextMenuEvent Member List
- QCopChannel Class
- qcopchannel_qws.h Include File
- QCopChannel Member List
- QCString类
- qcstring.h包含文件
- QCString成员列表
- QCursor Class
- qcursor.h Include File
- QCursor Member List
- QCustomEvent Class
- QCustomEvent Member List
- QCustomMenuItem Class
- QCustomMenuItem Member List
- QDataBrowser Class
- qdatabrowser.h Include File
- QDataBrowser Member List
- QDataPump Class
- QDataPump Member List
- QDataSink Class
- QDataSource Class
- QDataSource Member List
- QDataStream类
- qdatastream.h包含文件
- QDataStream成员列表
- QDataTable Class
- qdatatable.h Include File
- QDataTable Member List
- QDataView Class
- qdataview.h Include File
- QDataView Member List
- QDate类
- QDateEdit Class
- QDateEdit Member List
- QDate成员列表
- QDateTime类
- QDateTimeEdit Class
- qdatetimeedit.h Include File
- QDateTimeEdit Member List
- qdatetime.h包含文件
- QDateTime成员列表
- QDesktopWidget Class
- qdesktopwidget.h Include File
- QDesktopWidget Member List
- QDial Class
- qdial.h Include File
- QDial Member List
- QDialog类
- qdialog.h包含文件
- QDialog成员列表
- QDict Class
- qdict.h Include File
- QDictIterator Class
- QDictIterator Member List
- QDict Member List
- QDir类
- QDirectPainter Class
- qdirectpainter_qws.h Include File
- QDirectPainter Member List
- QDir
- qdir.h包含文件
- QDir成员列表
- QDns Class
- qdns.h Include File
- QDns Member List
- QDockArea类
- qdockarea.h包含文件
- QDockArea成员列表
- QDockWindow类
- qdockwindow.h包含文件
- QDockWindow成员列表
- QDomAttr Class
- QDomAttr Member List
- QDomCDATASection Class
- QDomCDATASection Member List
- QDomCharacterData Class
- QDomCharacterData Member List
- QDomComment Class
- QDomComment Member List
- QDomDocument Class
- QDomDocumentFragment Class
- QDomDocumentFragment Member List
- QDomDocument Member List
- QDomDocumentType Class
- QDomDocumentType Member List
- QDomElement Class
- QDomElement Member List
- QDomEntity Class
- QDomEntity Member List
- QDomEntityReference Class
- QDomEntityReference Member List
- qdom.h Include File
- QDomImplementation Class
- QDomImplementation Member List
- QDomNamedNodeMap Class
- QDomNamedNodeMap Member List
- QDomNode Class
- QDomNodeList Class
- QDomNodeList Member List
- QDomNode Member List
- QDomNotation Class
- QDomNotation Member List
- QDomProcessingInstruction Class
- QDomProcessingInstruction Member List
- QDomText Class
- QDomText Member List
- QDoubleValidator类
- QDoubleValidator成员列表
- QDragEnterEvent Class
- QDragEnterEvent Member List
- QDragLeaveEvent Class
- QDragLeaveEvent Member List
- QDragMoveEvent Class
- QDragMoveEvent Member List
- QDragObject Class
- qdragobject.h Include File
- QDragObject Member List
- qdrawutil.h Include File
- QDropEvent Class
- QDropEvent Member List
- QDropSite Class
- qdropsite.h Include File
- QEditorFactory Class
- qeditorfactory.h Include File
- QEditorFactory Member List
- QEmbed - File and Image Embedder
- QErrorMessage类
- qerrormessage.h包含文件
- QErrorMessage成员列表
- QEucJpCodec Class
- qeucjpcodec.h Include File
- QEucJpCodec Member List
- QEucKrCodec Class
- qeuckrcodec.h Include File
- QEucKrCodec Member List
- QEvent类
- qevent.h包含文件
- QEvent成员列表
- Font Displayer
- QFile类
- QFileDialog类
- qfiledialog.h包含文件
- QFileDialog成员列表
- qfile.h包含文件
- QFileIconProvider Class
- QFileIconProvider Member List
- QFileInfo Class
- qfileinfo.h Include File
- QFileInfo Member List
- QFile成员列表
- QFilePreview Class
- QFilePreview Member List
- QFocusData Class
- qfocusdata.h Include File
- QFocusData Member List
- QFocusEvent Class
- QFocusEvent Member List
- QFont Class
- QFontDatabase Class
- qfontdatabase.h Include File
- QFontDatabase Member List
- QFontDialog类
- qfontdialog.h包含文件
- QFontDialog成员列表
- QFont Examples
- qfont.h Include File
- QFontInfo Class
- qfontinfo.h Include File
- QFontInfo Member List
- QFontManager Class
- qfontmanager_qws.h Include File
- QFontManager Member List
- QFont Member List
- QFontMetrics Class
- qfontmetrics.h Include File
- QFontMetrics Member List
- QFrame类
- qframe.h包含文件
- QFrame成员列表
- QFtp类
- qftp.h包含文件
- QFtp成员列表
- QGb18030Codec Class
- qgb18030codec.h Include File
- QGb18030Codec Member List
- QGbkCodec Class
- QGbkCodec Member List
- qgfx_qws.h Include File
- QGL Class
- QGLayoutIterator Class
- QGLayoutIterator Member List
- QGLColormap Class
- qglcolormap.h Include File
- QGLColormap Member List
- QGLContext Class
- QGLContext Member List
- QGLFormat Class
- QGLFormat Member List
- qgl.h Include File
- QGL Member List
- qglobal.h Include File
- QGLWidget Class
- QGLWidget Member List
- QGrid类
- qgrid.h包含文件
- QGridLayout Class
- QGridLayout Member List
- QGrid成员列表
- QGridView Class
- qgridview.h Include File
- QGridView Member List
- QGroupBox类
- qgroupbox.h包含文件
- QGroupBox成员列表
- QGuardedPtr类
- qguardedptr.h包含文件
- QGuardedPtr成员列表
- QHBox Class
- qhbox.h Include File
- QHBoxLayout Class
- QHBoxLayout Member List
- QHBox Member List
- QHButtonGroup类
- qhbuttongroup.h包含文件
- QHButtonGroup成员列表
- QHeader类
- qheader.h包含文件
- QHeader成员列表
- QHebrewCodec Class
- QHebrewCodec Member List
- QHGroupBox类
- qhgroupbox.h包含文件
- QHGroupBox成员列表
- QHideEvent Class
- QHideEvent Member List
- QHostAddress Class
- qhostaddress.h Include File
- QHostAddress Member List
- QHttp Class
- qhttp.h Include File
- QHttp Member List
- QIconDrag Class
- QIconDragItem Class
- QIconDragItem Member List
- QIconDrag Member List
- QIconSet Class
- qiconset.h Include File
- QIconSet Member List
- QIconView Class
- qiconview.h Include File
- QIconViewItem Class
- QIconViewItem Member List
- QIconView Member List
- QImage Class
- QImageConsumer Class
- QImageConsumer Member List
- QImageDecoder Class
- QImageDecoder Member List
- QImageDrag Class
- QImageDrag Member List
- QImageFormat Class
- QImageFormat Member List
- QImageFormatPlugin Class
- qimageformatplugin.h Include File
- QImageFormatPlugin Member List
- QImageFormatType Class
- QImageFormatType Member List
- qimage.h Include File
- QImageIO Class
- QImageIO Member List
- QImage Member List
- QIMEvent Class
- QIMEvent Member List
- QInputDialog类
- qinputdialog.h包含文件
- QInputDialog成员列表
- QIntCache Class
- qintcache.h Include File
- QIntCacheIterator Class
- QIntCacheIterator Member List
- QIntCache Member List
- QIntDict Class
- qintdict.h Include File
- QIntDictIterator Class
- QIntDictIterator Member List
- QIntDict Member List
- QIntValidator类
- QIntValidator成员列表
- QIODevice类
- qiodevice.h包含文件
- QIODevice成员列表
- QIODeviceSource Class
- QJisCodec Class
- qjiscodec.h Include File
- QJisCodec Member List
- qkeyboard_qws.h Include File
- QKeyEvent Class
- QKeyEvent Member List
- QKeySequence Class
- qkeysequence.h Include File
- QKeySequence Member List
- QLabel Class
- qlabel.h Include File
- QLabel Member List
- QLayout Class
- qlayout.h Include File
- QLayoutItem Class
- QLayoutItem Member List
- QLayoutIterator Class
- QLayoutIterator Member List
- QLayout Member List
- QLCDNumber Class
- qlcdnumber.h Include File
- QLCDNumber Member List
- QLibrary Class
- qlibrary.h Include File
- QLibrary Member List
- QLineEdit Class
- qlineedit.h Include File
- QLineEdit Member List
- QListBox Class
- qlistbox.h Include File
- QListBoxItem Class
- QListBoxItem Member List
- QListBox Member List
- QListBoxPixmap Class
- QListBoxPixmap Member List
- QListBoxText Class
- QListBoxText Member List
- QListView Class
- qlistview.h Include File
- QListViewItem Class
- QListViewItemIterator Class
- QListViewItemIterator Member List
- QListViewItem Member List
- QListView Member List
- QLocalFs Class
- qlocalfs.h Include File
- QLocalFs Member List
- QLock Class
- qlock_qws.h Include File
- QLock Member List
- QMag
- QMainWindow类
- qmainwindow.h包含文件
- QMainWindow成员列表
- qmake的介绍
- 安装qmake
- 10分钟学会使用qmake
- qmake教程
- qmake概念
- qmake高级概念
- qmake Command Reference
- QMap Class
- QMapConstIterator Class
- QMapConstIterator Member List
- qmap.h Include File
- QMapIterator Class
- QMapIterator Member List
- QMap Member List
- QMemArray类
- qmemarray.h包含文件
- QMemArray成员列表
- QMenuBar Class
- qmenubar.h Include File
- QMenuBar Member List
- QMenuData Class
- qmenudata.h Include File
- QMenuData Member List
- QMessageBox类
- qmessagebox.h包含文件
- QMessageBox成员列表
- QMetaObject Class
- qmetaobject.h Include File
- QMetaObject Member List
- QMetaProperty Class
- QMetaProperty Member List
- qmime.h Include File
- QMimeSource Class
- QMimeSourceFactory Class
- QMimeSourceFactory Member List
- QMimeSource Member List
- QMotifPlusStyle Class
- qmotifplusstyle.h Include File
- QMotifPlusStyle Member List
- QMotifStyle Class
- qmotifstyle.h Include File
- QMotifStyle Member List
- QMouseEvent Class
- QMouseEvent Member List
- QMoveEvent Class
- QMoveEvent Member List
- QMovie Class
- qmovie.h Include File
- QMovie Member List
- QMultiLineEdit Class
- qmultilineedit.h Include File
- QMultiLineEdit Member List
- QMutex类
- qmutex.h包含文件
- QMutex成员列表
- qnamespace.h Include File
- qnetwork.h Example File
- QNetworkOperation Class
- QNetworkOperation Member List
- QNetworkProtocol Class
- qnetworkprotocol.h Include File
- QNetworkProtocol Member List
- qnp.h Include File
- QNPInstance Class
- QNPInstance Member List
- QNPlugin Class
- QNPlugin Member List
- QNPStream Class
- QNPStream Member List
- QNPWidget Class
- QNPWidget Member List
- QObject类
- QObjectCleanupHandler Class
- qobjectcleanuphandler.h Include File
- QObjectCleanupHandler Member List
- qobject.h包含文件
- QObjectList类
- qobjectlist.h包含文件
- QObjectListIt类
- QObjectListIt成员列表
- QObjectList成员列表
- QObject成员列表
- QPaintDevice类
- qpaintdevice.h包含文件
- QPaintDevice成员列表
- QPaintDeviceMetrics Class
- qpaintdevicemetrics.h Include File
- QPaintDeviceMetrics Member List
- QPainter类
- qpainter.h包含文件
- QPainter成员列表
- QPaintEvent Class
- QPaintEvent Member List
- QPair Class
- qpair.h Include File
- QPair Member List
- QPalette Class
- qpalette.h Include File
- QPalette Member List
- QPen Class
- qpen.h Include File
- QPen Member List
- QPicture Class
- qpicture.h Include File
- QPicture Member List
- QPixmap Class
- QPixmapCache Class
- qpixmapcache.h Include File
- QPixmapCache Member List
- qpixmap.h Include File
- QPixmap Member List
- QPlatinumStyle Class
- qplatinumstyle.h Include File
- QPlatinumStyle Member List
- QPNGImagePacker Class
- QPNGImagePacker Member List
- qpngio.h Include File
- QPoint类
- QPointArray Class
- qpointarray.h Include File
- QPointArray Member List
- qpoint.h包含文件
- QPoint成员列表
- QPopupMenu Class
- qpopupmenu.h Include File
- QPopupMenu Member List
- QPrinter Class
- qprinter.h Include File
- QPrinter Member List
- QProcess Class
- QProcess Examples
- qprocess.h Include File
- QProcess Member List
- QProgressBar Class
- qprogressbar.h Include File
- QProgressBar Member List
- QProgressDialog类
- qprogressdialog.h包含文件
- QProgressDialog成员列表
- QPtrCollection类
- qptrcollection.h包含文件
- QPtrCollection成员列表
- QPtrDict Class
- qptrdict.h Include File
- QPtrDictIterator Class
- QPtrDictIterator Member List
- QPtrDict Member List
- QPtrList类
- qptrlist.h包含文件
- QPtrListIterator类
- QPtrListIterator成员列表
- QPtrList成员列表
- QPtrQueue类
- qptrqueue.h包含文件
- QPtrQueue成员列表
- QPtrStack类
- qptrstack.h包含文件
- QPtrStack成员列表
- QPtrVector类
- qptrvector.h包含文件
- QPtrVector成员列表
- QPushButton类
- qpushbutton.h包含文件
- QPushButton成员列表
- QRadioButton Class
- qradiobutton.h Include File
- QRadioButton Member List
- QRangeControl类
- qrangecontrol.h包含文件
- QRangeControld成员列表
- QRect类
- qrect.h包含文件
- QRect成员列表
- QRegExp Class
- qregexp.h Include File
- QRegExp Member List
- QRegExpValidator Class
- QRegExpValidator Member List
- QRegion Class
- qregion.h Include File
- QRegion Member List
- QResizeEvent Class
- QResizeEvent Member List
- qrtlcodec.h Include File
- QScreen Class
- QScreen Member List
- QScrollBar类
- qscrollbar.h包含文件
- QScrollBar成员列表
- QScrollView类
- qscrollview.h包含文件
- QScrollView成员列表
- QSemaphore类
- qsemaphore.h包含文件
- QSemaphore成员列表
- QServerSocket Class
- qserversocket.h Include File
- QServerSocket Member List
- QSessionManager Class
- qsessionmanager.h Include File
- QSessionManager Member List
- QSettings Class
- qsettings.h Include File
- QSettings Member List
- QSGIStyle Class
- qsgistyle.h Include File
- QSGIStyle Member List
- QShowEvent Class
- QShowEvent Member List
- QSignal Class
- qsignal.h Include File
- QSignalMapper Class
- qsignalmapper.h Include File
- QSignalMapper Member List
- QSignal Member List
- QSimpleRichText Class
- qsimplerichtext.h Include File
- QSimpleRichText Member List
- QSize类
- QSizeGrip Class
- qsizegrip.h Include File
- QSizeGrip Member List
- qsize.h包含文件
- QSize成员列表
- QSizePolicy Class
- qsizepolicy.h Include File
- QSizePolicy Member List
- QSjisCodec Class
- qsjiscodec.h Include File
- QSjisCodec Member List
- QSlider Class
- qslider.h Include File
- QSlider Member List
- QSocket类
- QSocketDevice Class
- qsocketdevice.h Include File
- QSocketDevice Member List
- qsocket.h包含文件
- QSocket成员列表
- QSocketNotifier Class
- qsocketnotifier.h Include File
- QSocketNotifier Member List
- QSortedList Class
- qsortedlist.h Include File
- QSortedList Member List
- QSound类
- qsound.h包含文件
- QSound成员列表
- QSpacerItem Class
- QSpacerItem Member List
- QSpinBox Class
- qspinbox.h Include File
- QSpinBox Member List
- QSplitter Class
- qsplitter.h Include File
- QSplitter Member List
- QSql类
- QSqlCursor Class
- qsqlcursor.h Include File
- QSqlCursor Member List
- QSqlDatabase Class
- qsqldatabase.h Include File
- QSqlDatabase Member List
- QSqlDriver Class
- qsqldriver.h Include File
- QSqlDriver Member List
- QSqlDriverPlugin Class
- qsqldriverplugin.h Include File
- QSqlDriverPlugin Member List
- QSqlEditorFactory Class
- qsqleditorfactory.h Include File
- QSqlEditorFactory Member List
- QSqlError Class
- qsqlerror.h Include File
- QSqlError Member List
- QSqlField Class
- qsqlfield.h Include File
- QSqlFieldInfo Class
- QSqlFieldInfo Member List
- QSqlField Member List
- QSqlForm Class
- qsqlform.h Include File
- QSqlForm Member List
- qsql.h包含文件
- QSqlIndex Class
- qsqlindex.h Include File
- QSqlIndex Member List
- QSql成员列表
- QSqlPropertyMap Class
- qsqlpropertymap.h Include File
- QSqlPropertyMap Member List
- QSqlQuery类
- qsqlquery.h 包含文件
- QSqlQuery成员列表
- QSqlRecord Class
- qsqlrecord.h Include File
- QSqlRecordInfo Class
- QSqlRecordInfo Member List
- QSqlRecord Member List
- QSqlResult Class
- qsqlresult.h Include File
- QSqlResult Member List
- QStatusBar类
- qstatusbar.h包含文件
- QStatusBar成员列表
- QStoredDrag Class
- QStoredDrag Member List
- QStrIList Class
- QStrIList Member List
- QString类
- qstring.h包含文件
- QStringList Class
- qstringlist.h Include File
- QStringList Member List
- QString成员列表
- QStrList Class
- qstrlist.h Include File
- QStrListIterator Class
- QStrListIterator Member List
- QStrList Member List
- QStyle Class
- QStyleFactory Class
- qstylefactory.h Include File
- QStyleFactory Member List
- qstyle.h Include File
- QStyle Member List
- QStyleOption Class
- QStyleOption Member List
- QStylePlugin Class
- qstyleplugin.h Include File
- QStylePlugin Member List
- QStyleSheet Class
- qstylesheet.h Include File
- QStyleSheetItem Class
- QStyleSheetItem Member List
- QStyleSheet Member List
- Qt类
- QTab Class
- QTabBar Class
- qtabbar.h Include File
- QTabBar Member List
- QTabDialog类
- qtabdialog.h包含文件
- QTabDialog成员列表
- QTable类
- qtable.h包含文件
- QTableItem类
- QTableItem成员列表
- QTable成员列表
- QTableSelection类
- QTableSelection成员列表
- QTabletEvent Class
- QTabletEvent Member List
- QTab Member List
- QTabWidget Class
- qtabwidget.h Include File
- QTabWidget Member List
- QTextBrowser Class
- qtextbrowser.h Include File
- QTextBrowser Member List
- QTextCodec Class
- qtextcodec.h Include File
- QTextCodec Member List
- QTextCodecPlugin Class
- qtextcodecplugin.h Include File
- QTextCodecPlugin Member List
- QTextDecoder Class
- QTextDecoder Member List
- QTextDrag Class
- QTextDrag Member List
- QTextEdit类
- qtextedit.h包含文件
- QTextEdit成员列表
- QTextEncoder Class
- QTextEncoder Member List
- QTextIStream类
- QTextIStream成员列表
- QTextOStream类
- QTextOStream成员列表
- QTextStream类
- qtextstream.h包含文件
- QTextStream成员列表
- QTextView Class
- qtextview.h Include File
- QTextView Member List
- QThread类
- qthread.h包含文件
- QThread成员列表
- Display Images in Qt-supported Formats
- QTime类
- QTimeEdit Class
- QTimeEdit Member List
- QTime成员列表
- QTimer类
- QTimerEvent类
- QTimerEvent成员列表
- qtimer.h包含文件
- QTimer成员列表
- Qt模板库类
- Qt Member List
- QtMultiLineEdit Class
- qtmultilineedit.h Include File
- QtMultiLineEdit Member List
- QToolBar类
- qtoolbar.h包含文件
- QToolBar成员列表
- QToolButton类
- qtoolbutton.h包含文件
- QToolButton成员列表
- QToolTip Class
- QToolTipGroup Class
- QToolTipGroup Member List
- qtooltip.h Include File
- QToolTip Member List
- QTranslator Class
- qtranslator.h Include File
- QTranslator Member List
- QTranslatorMessage Class
- QTranslatorMessage Member List
- QTsciiCodec Class
- qtsciicodec.h Include File
- QTsciiCodec Member List
- QtTableView Class
- qttableview.h Include File
- QtTableView Member List
- Qt模板库
- QUriDrag Class
- QUriDrag Member List
- QUrl Class
- qurl.h Include File
- QUrlInfo Class
- qurlinfo.h Include File
- QUrlInfo Member List
- QUrl Member List
- QUrlOperator Class
- qurloperator.h Include File
- QUrlOperator Member List
- QValidator类
- qvalidator.h包含文件
- QValidator成员列表
- QVariant Class
- qvariant.h Include File
- QVariant Member List
- QVBox Class
- qvbox.h Include File
- QVBoxLayout Class
- QVBoxLayout Member List
- QVBox Member List
- QVButtonGroup类
- qvbuttongroup.h包含文件
- QVButtonGroup成员列表
- QVGroupBox类
- qvgroupbox.h包含文件
- QVGroupBox成员列表
- QWaitCondition类
- qwaitcondition.h包含文件
- QWaitCondition成员列表
- Simple HTML Browser
- QWhatsThis类
- qwhatsthis.h包含文件
- QWhatsThis成员列表
- QWheelEvent Class
- QWheelEvent Member List
- QWidget类
- QWidgetFactory Class
- qwidgetfactory.h Include File
- QWidgetFactory Member List
- qwidget.h包含文件
- QWidgetItem Class
- QWidgetItem Member List
- QWidget成员列表
- QWidgetPlugin Class
- qwidgetplugin.h Include File
- QWidgetPlugin Member List
- QWidgetStack类
- qwidgetstack.h包含文件
- QWidgetStack成员列表
- qwindowdefs.h Include File
- QWindowsMime Class
- QWindowsMime Member List
- QWindowsStyle Class
- qwindowsstyle.h Include File
- QWindowsStyle Member List
- qwindowsystem_qws.h Include File
- QWizard类
- qwizard.h包含文件
- QWizard成员列表
- QWMatrix Class
- qwmatrix.h Include File
- QWMatrix Member List
- QWorkspace类
- qworkspace.h包含文件
- QWorkspace成员列表
- Qt/Embedded
- QWSDecoration Class
- qwsdecoration_qws.h Include File
- QWSDecoration Member List
- QWSKeyboardHandler Class
- QWSKeyboardHandler Member List
- qwsmouse_qws.h Include File
- QWSMouseHandler Class
- QWSMouseHandler Member List
- QWSServer Class
- QWSServer Member List
- QWSWindow Class
- QWSWindow Member List
- QXmlAttributes Class
- QXmlAttributes Member List
- QXmlContentHandler Class
- QXmlContentHandler Member List
- QXmlDeclHandler Class
- QXmlDeclHandler Member List
- QXmlDefaultHandler Class
- QXmlDefaultHandler Member List
- QXmlDTDHandler Class
- QXmlDTDHandler Member List
- QXmlEntityResolver Class
- QXmlEntityResolver Member List
- QXmlErrorHandler Class
- QXmlErrorHandler Member List
- qxml.h Include File
- QXmlInputSource Class
- QXmlInputSource Member List
- QXmlLexicalHandler Class
- QXmlLexicalHandler Member List
- QXmlLocator Class
- QXmlLocator Member List
- QXmlNamespaceSupport Class
- QXmlNamespaceSupport Member List
- QXmlParseException Class
- QXmlParseException Member List
- QXmlReader Class
- QXmlSimpleReader Class
- QXmlSimpleReader Member List
- QXtApplication Class
- QXtApplication Member List
- qxt.h Include File
- QXtWidget Class
- QXtWidget Member List
- Range controls
- Richtext
- Rot13
- Simple Painting Application
- Qt的文本引擎
- Scrollview
- Session Management
- Implicitly and Explicitly Shared Classes
- Shared Classes
- Show Image
- Drag and Drop (Simple)
- Walkthrough: A Simple Application
- Walkthrough: A Simple Application with Actions
- A Complete Application Window
- A simple demonstration of QFont member functions
- Walkthrough: A simple QFont demonstration
- 小表格样例
- Sound Example
- Splitter
- SQL Module - Drivers
- Qt SQL Examples
- sql/overview/basicbrowsing2/main.cpp Example File
- sql/overview/basicbrowsing/main.cpp Example File
- sql/overview/basicdatamanip/main.cpp Example File
- sql/overview/connect1/main.cpp Example File
- sql/overview/create_connections/main.cpp Example File
- sql/overview/custom1/main.cpp Example File
- sql/overview/custom1/main.h Example File
- sql/overview/del/main.cpp Example File
- sql/overview/extract/main.cpp Example File
- sql/overview/form1/main.cpp Example File
- sql/overview/form2/main.h Example File
- sql/overview/insert/main.cpp Example File
- sql/overview/navigating/main.cpp Example File
- sql/overview/order1/main.cpp Example File
- sql/overview/order2/main.cpp Example File
- sql/overview/retrieve1/main.cpp Example File
- sql/overview/retrieve2/main.cpp Example File
- sql/overview/subclass1/main.cpp Example File
- sql/overview/subclass2/main.cpp Example File
- sql/overview/subclass2/main.h Example File
- sql/overview/subclass3/main.cpp Example File
- sql/overview/subclass3/main.h Example File
- sql/overview/subclass4/main.cpp Example File
- sql/overview/subclass4/main.h Example File
- sql/overview/subclass5/main.cpp Example File
- sql/overview/subclass5/main.h Example File
- sql/overview/table1/main.cpp Example File
- sql/overview/table2/main.cpp Example File
- sql/overview/table3/main.cpp Example File
- sql/overview/table3/main.h Example File
- sql/overview/table4/main.cpp Example File
- sql/overview/table4/main.h Example File
- sql/overview/update/main.cpp Example File
- SQL Table
- 表格样例
- t10/cannon.cpp Example File
- t10/cannon.h Example File
- t10/lcdrange.cpp Example File
- t10/lcdrange.h Example File
- t10/main.cpp Example File
- t11/cannon.cpp Example File
- t11/cannon.h Example File
- t11/lcdrange.cpp Example File
- t11/lcdrange.h Example File
- t11/main.cpp Example File
- t12/cannon.cpp Example File
- t12/cannon.h Example File
- t12/lcdrange.cpp Example File
- t12/lcdrange.h Example File
- t12/main.cpp Example File
- t13/cannon.cpp Example File
- t13/cannon.h Example File
- t13/gamebrd.cpp Example File
- t13/gamebrd.h Example File
- t13/lcdrange.cpp Example File
- t13/lcdrange.h Example File
- t13/main.cpp Example File
- t14/cannon.cpp Example File
- t14/cannon.h Example File
- t14/gamebrd.cpp Example File
- t14/gamebrd.h Example File
- t14/lcdrange.cpp Example File
- t14/lcdrange.h Example File
- t14/main.cpp Example File
- t7/lcdrange.cpp Example File
- t7/lcdrange.h Example File
- t7/main.cpp Example File
- t8/cannon.cpp Example File
- t8/cannon.h Example File
- t8/lcdrange.cpp Example File
- t8/lcdrange.h Example File
- t8/main.cpp Example File
- t9/cannon.cpp Example File
- t9/cannon.h Example File
- t9/lcdrange.cpp Example File
- t9/lcdrange.h Example File
- t9/main.cpp Example File
- Tabdialog
- table/bigtable/main.cpp Example File
- 表格例程
- Tablet Example
- A tiny SAX2 parser
- Demonstration of SAX2 features
- 为什么Qt不用模板来实现信号和槽?
- Tetrix
- Text Related Classes
- Text Edit Example
- Themes (Styles)
- 线程
- Tic Tac Toe
- 时间和日期
- 定时器
- A Tiny Example Featuring a Toggle Action
- Non-GUI Classes
- Advanced use of tool tips
- Trivial Example
- Qt教程一 —— 第一章:Hello, World!
- Qt教程一 —— 第二章:调用退出
- Qt教程一 —— 第三章:家庭价值
- Qt教程一 —— 第四章:使用窗口部件
- Qt教程一 —— 第五章:组装积木
- Qt教程一 —— 第六章:组装丰富的积木!
- Qt教程一 —— 第七章:一个事物领导另一个
- Qt教程一 —— 第八章:准备战斗
- Qt教程一 —— 第九章:你可以使用加农炮了
- Qt教程一 —— 第十章:像丝一样滑
- Qt教程一 —— 第十一章:给它一个炮弹
- Qt教程一 —— 第十一章:悬在空中的砖
- Qt教程一 —— 第十三章:游戏结束
- Qt教程一 —— 第十四章:面对墙壁
- 介绍
- 大图片
- 数据元素
- 主体很容易
- 实现图形用户界面
- 画布控制
- 文件处理
- 获得数据
- 设置选项
- 项目文件
- 完成
- User Interface Compiler (uic)
- 关于Unicode
- Widgets Example
- Wizard
- wizard/wizard.cpp Example File
- wizard/wizard.h Example File
- Transformed Graphics Demo
- Qt XML Examples
- Walkthrough: Using SAX2 features with the Qt XML classes
- Walkthrough: How to use the Qt SAX2 classes
- XML
- Qt Xt/Motif Support Extension
- 适应2000年问题声明
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Canvas Example
This example shows a QCanvas and some QCanvasItems in action. You can do a lot more with QCanvas than we show here, but the example provides a taste of what can be done.
Header file:
#ifndef EXAMPLE_H #define EXAMPLE_H #include <qpopupmenu.h> #include <qmainwindow.h> #include <qintdict.h> #include <qcanvas.h> class BouncyLogo : public QCanvasSprite { void initPos(); void initSpeed(); public: BouncyLogo(QCanvas*); void advance(int); int rtti() const; }; class FigureEditor : public QCanvasView { Q_OBJECT public: FigureEditor(QCanvas&, QWidget* parent=0, const char* name=0, WFlags f=0); void clear(); protected: void contentsMousePressEvent(QMouseEvent*); void contentsMouseMoveEvent(QMouseEvent*); signals: void status(const QString&); private: QCanvasItem* moving; QPoint moving_start; }; class Main : public QMainWindow { Q_OBJECT public: Main(QCanvas&, QWidget* parent=0, const char* name=0, WFlags f=0); ~Main(); public slots: void help(); private slots: void aboutQt(); void newView(); void clear(); void init(); void addSprite(); void addCircle(); void addHexagon(); void addPolygon(); void addSpline(); void addText(); void addLine(); void addRectangle(); void addMesh(); void addLogo(); void addButterfly(); void enlarge(); void shrink(); void rotateClockwise(); void rotateCounterClockwise(); void zoomIn(); void zoomOut(); void mirror(); void moveL(); void moveR(); void moveU(); void moveD(); void print(); void toggleDoubleBuffer(); private: QCanvas& canvas; FigureEditor *editor; QPopupMenu* options; QPrinter* printer; int dbf_id; }; #endif
Implementation:
#include <qdatetime.h> #include <qmainwindow.h> #include <qstatusbar.h> #include <qmessagebox.h> #include <qmenubar.h> #include <qapplication.h> #include <qpainter.h> #include <qprinter.h> #include <qlabel.h> #include <qimage.h> #include <qprogressdialog.h> #include "canvas.h" #include <stdlib.h> // We use a global variable to save memory - all the brushes and pens in // the mesh are shared. static QBrush *tb = 0; static QPen *tp = 0; class EdgeItem; class NodeItem; class EdgeItem: public QCanvasLine { public: EdgeItem( NodeItem*, NodeItem*, QCanvas *canvas ); void setFromPoint( int x, int y ) ; void setToPoint( int x, int y ); static int count() { return c; } void moveBy(double dx, double dy); private: static int c; }; static const int imageRTTI = 984376; class ImageItem: public QCanvasRectangle { public: ImageItem( QImage img, QCanvas *canvas ); int rtti () const { return imageRTTI; } bool hit( const QPoint&) const; protected: void drawShape( QPainter & ); private: QImage image; QPixmap pixmap; }; ImageItem::ImageItem( QImage img, QCanvas *canvas ) : QCanvasRectangle( canvas ), image(img) { setSize( image.width(), image.height() ); #if !defined(Q_WS_QWS) pixmap.convertFromImage(image, OrderedAlphaDither); #endif } void ImageItem::drawShape( QPainter &p ) { // On Qt/Embedded, we can paint a QImage as fast as a QPixmap, // but on other platforms, we need to use a QPixmap. #if defined(Q_WS_QWS) p.drawImage( int(x()), int(y()), image, 0, 0, -1, -1, OrderedAlphaDither ); #else p.drawPixmap( int(x()), int(y()), pixmap ); #endif } bool ImageItem::hit( const QPoint &p ) const { int ix = p.x()-int(x()); int iy = p.y()-int(y()); if ( !image.valid( ix , iy ) ) return FALSE; QRgb pixel = image.pixel( ix, iy ); return qAlpha( pixel ) != 0; } class NodeItem: public QCanvasEllipse { public: NodeItem( QCanvas *canvas ); ~NodeItem() {} void addInEdge( EdgeItem *edge ) { inList.append( edge ); } void addOutEdge( EdgeItem *edge ) { outList.append( edge ); } void moveBy(double dx, double dy); // QPoint center() { return boundingRect().center(); } private: QPtrList<EdgeItem> inList; QPtrList<EdgeItem> outList; }; int EdgeItem::c = 0; void EdgeItem::moveBy(double, double) { //nothing } EdgeItem::EdgeItem( NodeItem *from, NodeItem *to, QCanvas *canvas ) : QCanvasLine( canvas ) { c++; setPen( *tp ); setBrush( *tb ); from->addOutEdge( this ); to->addInEdge( this ); setPoints( int(from->x()), int(from->y()), int(to->x()), int(to->y()) ); setZ( 127 ); } void EdgeItem::setFromPoint( int x, int y ) { setPoints( x,y, endPoint().x(), endPoint().y() ); } void EdgeItem::setToPoint( int x, int y ) { setPoints( startPoint().x(), startPoint().y(), x, y ); } void NodeItem::moveBy(double dx, double dy) { QCanvasEllipse::moveBy( dx, dy ); QPtrListIterator<EdgeItem> it1( inList ); EdgeItem *edge; while (( edge = it1.current() )) { ++it1; edge->setToPoint( int(x()), int(y()) ); } QPtrListIterator<EdgeItem> it2( outList ); while (( edge = it2.current() )) { ++it2; edge->setFromPoint( int(x()), int(y()) ); } } NodeItem::NodeItem( QCanvas *canvas ) : QCanvasEllipse( 6, 6, canvas ) { setPen( *tp ); setBrush( *tb ); setZ( 128 ); } FigureEditor::FigureEditor( QCanvas& c, QWidget* parent, const char* name, WFlags f) : QCanvasView(&c,parent,name,f) { } void FigureEditor::contentsMousePressEvent(QMouseEvent* e) { QPoint p = inverseWorldMatrix().map(e->pos()); QCanvasItemList l=canvas()->collisions(p); for (QCanvasItemList::Iterator it=l.begin(); it!=l.end(); ++it) { if ( (*it)->rtti() == imageRTTI ) { ImageItem *item= (ImageItem*)(*it); if ( !item->hit( p ) ) continue; } moving = *it; moving_start = p; return; } moving = 0; } void FigureEditor::clear() { QCanvasItemList list = canvas()->allItems(); QCanvasItemList::Iterator it = list.begin(); for (; it != list.end(); ++it) { if ( *it ) delete *it; } } void FigureEditor::contentsMouseMoveEvent(QMouseEvent* e) { if ( moving ) { QPoint p = inverseWorldMatrix().map(e->pos()); moving->moveBy(p.x() - moving_start.x(), p.y() - moving_start.y()); moving_start = p; canvas()->update(); } } BouncyLogo::BouncyLogo(QCanvas* canvas) : QCanvasSprite(0,canvas) { static QCanvasPixmapArray logo("qt-trans.xpm"); setSequence(&logo); setAnimated(TRUE); initPos(); } const int logo_rtti = 1234; int BouncyLogo::rtti() const { return logo_rtti; } void BouncyLogo::initPos() { initSpeed(); int trial=1000; do { move(rand()%canvas()->width(),rand()%canvas()->height()); advance(0); } while (trial-- && xVelocity()==0.0 && yVelocity()==0.0); } void BouncyLogo::initSpeed() { const double speed = 4.0; double d = (double)(rand()%1024) / 1024.0; setVelocity( d*speed*2-speed, (1-d)*speed*2-speed ); } void BouncyLogo::advance(int stage) { switch ( stage ) { case 0: { double vx = xVelocity(); double vy = yVelocity(); if ( vx == 0.0 && vy == 0.0 ) { // stopped last turn initSpeed(); vx = xVelocity(); vy = yVelocity(); } double nx = x() + vx; double ny = y() + vy; if ( nx < 0 || nx >= canvas()->width() ) vx = -vx; if ( ny < 0 || ny >= canvas()->height() ) vy = -vy; for (int bounce=0; bounce<4; bounce++) { QCanvasItemList l=collisions(FALSE); for (QCanvasItemList::Iterator it=l.begin(); it!=l.end(); ++it) { QCanvasItem *hit = *it; if ( hit->rtti()==logo_rtti && hit->collidesWith(this) ) { switch ( bounce ) { case 0: vx = -vx; break; case 1: vy = -vy; vx = -vx; break; case 2: vx = -vx; break; case 3: // Stop for this turn vx = 0; vy = 0; break; } setVelocity(vx,vy); break; } } } if ( x()+vx < 0 || x()+vx >= canvas()->width() ) vx = 0; if ( y()+vy < 0 || y()+vy >= canvas()->height() ) vy = 0; setVelocity(vx,vy); } break; case 1: QCanvasItem::advance(stage); break; } } static uint mainCount = 0; static QImage *butterflyimg; static QImage *logoimg; Main::Main(QCanvas& c, QWidget* parent, const char* name, WFlags f) : QMainWindow(parent,name,f), canvas(c) { editor = new FigureEditor(canvas,this); QMenuBar* menu = menuBar(); QPopupMenu* file = new QPopupMenu( menu ); file->insertItem("&Fill canvas", this, SLOT(init()), CTRL+Key_F); file->insertItem("&Erase canvas", this, SLOT(clear()), CTRL+Key_E); file->insertItem("&New view", this, SLOT(newView()), CTRL+Key_N); file->insertSeparator(); file->insertItem("&Print", this, SLOT(print()), CTRL+Key_P); file->insertSeparator(); file->insertItem("E&xit", qApp, SLOT(quit()), CTRL+Key_Q); menu->insertItem("&File", file); QPopupMenu* edit = new QPopupMenu( menu ); edit->insertItem("Add &Circle", this, SLOT(addCircle()), ALT+Key_C); edit->insertItem("Add &Hexagon", this, SLOT(addHexagon()), ALT+Key_H); edit->insertItem("Add &Polygon", this, SLOT(addPolygon()), ALT+Key_P); edit->insertItem("Add Spl&ine", this, SLOT(addSpline()), ALT+Key_I); edit->insertItem("Add &Text", this, SLOT(addText()), ALT+Key_T); edit->insertItem("Add &Line", this, SLOT(addLine()), ALT+Key_L); edit->insertItem("Add &Rectangle", this, SLOT(addRectangle()), ALT+Key_R); edit->insertItem("Add &Sprite", this, SLOT(addSprite()), ALT+Key_S); edit->insertItem("Create &Mesh", this, SLOT(addMesh()), ALT+Key_M ); edit->insertItem("Add &Alpha-blended image", this, SLOT(addButterfly()), ALT+Key_A); menu->insertItem("&Edit", edit); QPopupMenu* view = new QPopupMenu( menu ); view->insertItem("&Enlarge", this, SLOT(enlarge()), SHIFT+CTRL+Key_Plus); view->insertItem("Shr&ink", this, SLOT(shrink()), SHIFT+CTRL+Key_Minus); view->insertSeparator(); view->insertItem("&Rotate clockwise", this, SLOT(rotateClockwise()), CTRL+Key_PageDown); view->insertItem("Rotate &counterclockwise", this, SLOT(rotateCounterClockwise()), CTRL+Key_PageUp); view->insertItem("&Zoom in", this, SLOT(zoomIn()), CTRL+Key_Plus); view->insertItem("Zoom &out", this, SLOT(zoomOut()), CTRL+Key_Minus); view->insertItem("Translate left", this, SLOT(moveL()), CTRL+Key_Left); view->insertItem("Translate right", this, SLOT(moveR()), CTRL+Key_Right); view->insertItem("Translate up", this, SLOT(moveU()), CTRL+Key_Up); view->insertItem("Translate down", this, SLOT(moveD()), CTRL+Key_Down); view->insertItem("&Mirror", this, SLOT(mirror()), CTRL+Key_Home); menu->insertItem("&View", view); options = new QPopupMenu( menu ); dbf_id = options->insertItem("Double buffer", this, SLOT(toggleDoubleBuffer())); options->setItemChecked(dbf_id, TRUE); menu->insertItem("&Options",options); menu->insertSeparator(); QPopupMenu* help = new QPopupMenu( menu ); help->insertItem("&About", this, SLOT(help()), Key_F1); help->setItemChecked(dbf_id, TRUE); menu->insertItem("&Help",help); statusBar(); setCentralWidget(editor); printer = 0; init(); } void Main::init() { clear(); static int r=24; srand(++r); mainCount++; butterflyimg = 0; logoimg = 0; int i; for ( i=0; i<canvas.width() / 56; i++) { addButterfly(); } for ( i=0; i<canvas.width() / 85; i++) { addHexagon(); } for ( i=0; i<canvas.width() / 128; i++) { addLogo(); } } Main::~Main() { delete printer; if ( !--mainCount ) { delete[] butterflyimg; butterflyimg = 0; delete[] logoimg; logoimg = 0; } } void Main::newView() { // Open a new view... have it delete when closed. Main *m = new Main(canvas, 0, 0, WDestructiveClose); qApp->setMainWidget(m); m->show(); qApp->setMainWidget(0); } void Main::clear() { editor->clear(); } void Main::help() { static QMessageBox* about = new QMessageBox( "Qt Canvas Example", "<h3>The QCanvas classes example</h3>" "<ul>" "<li> Press ALT-S for some sprites." "<li> Press ALT-C for some circles." "<li> Press ALT-L for some lines." "<li> Drag the objects around." "<li> Read the code!" "</ul>", QMessageBox::Information, 1, 0, 0, this, 0, FALSE ); about->setButtonText( 1, "Dismiss" ); about->show(); } void Main::aboutQt() { QMessageBox::aboutQt( this, "Qt Canvas Example" ); } void Main::toggleDoubleBuffer() { bool s = !options->isItemChecked(dbf_id); options->setItemChecked(dbf_id,s); canvas.setDoubleBuffering(s); } void Main::enlarge() { canvas.resize(canvas.width()*4/3, canvas.height()*4/3); } void Main::shrink() { canvas.resize(canvas.width()*3/4, canvas.height()*3/4); } void Main::rotateClockwise() { QWMatrix m = editor->worldMatrix(); m.rotate( 22.5 ); editor->setWorldMatrix( m ); } void Main::rotateCounterClockwise() { QWMatrix m = editor->worldMatrix(); m.rotate( -22.5 ); editor->setWorldMatrix( m ); } void Main::zoomIn() { QWMatrix m = editor->worldMatrix(); m.scale( 2.0, 2.0 ); editor->setWorldMatrix( m ); } void Main::zoomOut() { QWMatrix m = editor->worldMatrix(); m.scale( 0.5, 0.5 ); editor->setWorldMatrix( m ); } void Main::mirror() { QWMatrix m = editor->worldMatrix(); m.scale( -1, 1 ); editor->setWorldMatrix( m ); } void Main::moveL() { QWMatrix m = editor->worldMatrix(); m.translate( -16, 0 ); editor->setWorldMatrix( m ); } void Main::moveR() { QWMatrix m = editor->worldMatrix(); m.translate( +16, 0 ); editor->setWorldMatrix( m ); } void Main::moveU() { QWMatrix m = editor->worldMatrix(); m.translate( 0, -16 ); editor->setWorldMatrix( m ); } void Main::moveD() { QWMatrix m = editor->worldMatrix(); m.translate( 0, +16 ); editor->setWorldMatrix( m ); } void Main::print() { if ( !printer ) printer = new QPrinter; if ( printer->setup(this) ) { QPainter pp(printer); canvas.drawArea(QRect(0,0,canvas.width(),canvas.height()),&pp,FALSE); } } void Main::addSprite() { QCanvasItem* i = new BouncyLogo(&canvas); i->setZ(rand()%256); i->show(); } QString butterfly_fn; QString logo_fn; void Main::addButterfly() { if ( butterfly_fn.isEmpty() ) return; if ( !butterflyimg ) { butterflyimg = new QImage[4]; butterflyimg[0].load( butterfly_fn ); butterflyimg[1] = butterflyimg[0].smoothScale( int(butterflyimg[0].width()*0.75), int(butterflyimg[0].height()*0.75) ); butterflyimg[2] = butterflyimg[0].smoothScale( int(butterflyimg[0].width()*0.5), int(butterflyimg[0].height()*0.5) ); butterflyimg[3] = butterflyimg[0].smoothScale( int(butterflyimg[0].width()*0.25), int(butterflyimg[0].height()*0.25) ); } QCanvasPolygonalItem* i = new ImageItem(butterflyimg[rand()%4],&canvas); i->move(rand()%(canvas.width()-butterflyimg->width()), rand()%(canvas.height()-butterflyimg->height())); i->setZ(rand()%256+250); i->show(); } void Main::addLogo() { if ( logo_fn.isEmpty() ) return; if ( !logoimg ) { logoimg = new QImage[4]; logoimg[0].load( logo_fn ); logoimg[1] = logoimg[0].smoothScale( int(logoimg[0].width()*0.75), int(logoimg[0].height()*0.75) ); logoimg[2] = logoimg[0].smoothScale( int(logoimg[0].width()*0.5), int(logoimg[0].height()*0.5) ); logoimg[3] = logoimg[0].smoothScale( int(logoimg[0].width()*0.25), int(logoimg[0].height()*0.25) ); } QCanvasPolygonalItem* i = new ImageItem(logoimg[rand()%4],&canvas); i->move(rand()%(canvas.width()-logoimg->width()), rand()%(canvas.height()-logoimg->width())); i->setZ(rand()%256+256); i->show(); } void Main::addCircle() { QCanvasPolygonalItem* i = new QCanvasEllipse(50,50,&canvas); i->setBrush( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i->move(rand()%canvas.width(),rand()%canvas.height()); i->setZ(rand()%256); i->show(); } void Main::addHexagon() { QCanvasPolygon* i = new QCanvasPolygon(&canvas); const int size = canvas.width() / 25; QPointArray pa(6); pa[0] = QPoint(2*size,0); pa[1] = QPoint(size,-size*173/100); pa[2] = QPoint(-size,-size*173/100); pa[3] = QPoint(-2*size,0); pa[4] = QPoint(-size,size*173/100); pa[5] = QPoint(size,size*173/100); i->setPoints(pa); i->setBrush( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i->move(rand()%canvas.width(),rand()%canvas.height()); i->setZ(rand()%256); i->show(); } void Main::addPolygon() { QCanvasPolygon* i = new QCanvasPolygon(&canvas); const int size = canvas.width()/2; QPointArray pa(6); pa[0] = QPoint(0,0); pa[1] = QPoint(size,size/5); pa[2] = QPoint(size*4/5,size); pa[3] = QPoint(size/6,size*5/4); pa[4] = QPoint(size*3/4,size*3/4); pa[5] = QPoint(size*3/4,size/4); i->setPoints(pa); i->setBrush( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i->move(rand()%canvas.width(),rand()%canvas.height()); i->setZ(rand()%256); i->show(); } void Main::addSpline() { QCanvasSpline* i = new QCanvasSpline(&canvas); const int size = canvas.width()/6; QPointArray pa(12); pa[0] = QPoint(0,0); pa[1] = QPoint(size/2,0); pa[2] = QPoint(size,size/2); pa[3] = QPoint(size,size); pa[4] = QPoint(size,size*3/2); pa[5] = QPoint(size/2,size*2); pa[6] = QPoint(0,size*2); pa[7] = QPoint(-size/2,size*2); pa[8] = QPoint(size/4,size*3/2); pa[9] = QPoint(0,size); pa[10]= QPoint(-size/4,size/2); pa[11]= QPoint(-size/2,0); i->setControlPoints(pa); i->setBrush( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i->move(rand()%canvas.width(),rand()%canvas.height()); i->setZ(rand()%256); i->show(); } void Main::addText() { QCanvasText* i = new QCanvasText(&canvas); i->setText("QCanvasText"); i->move(rand()%canvas.width(),rand()%canvas.height()); i->setZ(rand()%256); i->show(); } void Main::addLine() { QCanvasLine* i = new QCanvasLine(&canvas); i->setPoints( rand()%canvas.width(), rand()%canvas.height(), rand()%canvas.width(), rand()%canvas.height() ); i->setPen( QPen(QColor(rand()%32*8,rand()%32*8,rand()%32*8), 6) ); i->setZ(rand()%256); i->show(); } void Main::addMesh() { int x0 = 0; int y0 = 0; if ( !tb ) tb = new QBrush( Qt::red ); if ( !tp ) tp = new QPen( Qt::black ); int nodecount = 0; int w = canvas.width(); int h = canvas.height(); const int dist = 30; int rows = h / dist; int cols = w / dist; #ifndef QT_NO_PROGRESSDIALOG QProgressDialog progress( "Creating mesh...", "Abort", rows, this, "progress", TRUE ); #endif QMemArray<NodeItem*> lastRow(cols); for ( int j = 0; j < rows; j++ ) { int n = j%2 ? cols-1 : cols; NodeItem *prev = 0; for ( int i = 0; i < n; i++ ) { NodeItem *el = new NodeItem( &canvas ); nodecount++; int r = rand(); int xrand = r %20; int yrand = (r/20) %20; el->move( xrand + x0 + i*dist + (j%2 ? dist/2 : 0 ), yrand + y0 + j*dist ); if ( j > 0 ) { if ( i < cols-1 ) (new EdgeItem( lastRow[i], el, &canvas ))->show(); if ( j%2 ) (new EdgeItem( lastRow[i+1], el, &canvas ))->show(); else if ( i > 0 ) (new EdgeItem( lastRow[i-1], el, &canvas ))->show(); } if ( prev ) { (new EdgeItem( prev, el, &canvas ))->show(); } if ( i > 0 ) lastRow[i-1] = prev; prev = el; el->show(); } lastRow[n-1]=prev; #ifndef QT_NO_PROGRESSDIALOG progress.setProgress( j ); if ( progress.wasCancelled() ) break; #endif } #ifndef QT_NO_PROGRESSDIALOG progress.setProgress( rows ); #endif // qDebug( "%d nodes, %d edges", nodecount, EdgeItem::count() ); } void Main::addRectangle() { QCanvasPolygonalItem *i = new QCanvasRectangle( rand()%canvas.width(),rand()%canvas.height(), canvas.width()/5,canvas.width()/5,&canvas); int z = rand()%256; i->setBrush( QColor(z,z,z) ); i->setPen( QPen(QColor(rand()%32*8,rand()%32*8,rand()%32*8), 6) ); i->setZ(z); i->show(); }
Main:
#include <qstatusbar.h> #include <qmessagebox.h> #include <qmenubar.h> #include <qapplication.h> #include <qimage.h> #include "canvas.h" #include <stdlib.h> extern QString butterfly_fn; extern QString logo_fn; int main(int argc, char** argv) { QApplication app(argc,argv); /* qDebug("sizeof(QCanvasPolygonalItem)=%d",sizeof(QCanvasPolygonalItem)); qDebug("sizeof(QCanvasText)=%d",sizeof(QCanvasText)); qDebug("sizeof(QWidget)=%d",sizeof(QWidget)); qDebug("sizeof(QLabel)=%d",sizeof(QLabel)); */ if ( argc > 1 ) butterfly_fn = argv[1]; else butterfly_fn = "butterfly.png"; if ( argc > 2 ) logo_fn = argv[2]; else logo_fn = "qtlogo.png"; QCanvas canvas(800,600); canvas.setAdvancePeriod(30); Main m(canvas); m.resize(m.sizeHint()); qApp->setMainWidget(&m); m.setCaption("Qt Example - Canvas"); if ( QApplication::desktop()->width() > m.width() + 10 && QApplication::desktop()->height() > m.height() +30 ) m.show(); else m.showMaximized(); m.show(); // m.help(); qApp->setMainWidget(0); QObject::connect( qApp, SIGNAL(lastWindowClosed()), qApp, SLOT(quit()) ); return app.exec(); }
See also Examples.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论