Simple Painting ApplicationThis example implements the famous scribble example. You can draw around in the canvas with different pens and save the result as picture. Header file: /**************************************************************************** ** $Id: //depot/qt/main/examples/scribble/scribble.h#1 $ ** ** Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. ** ** This file is part of an example program for Qt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #ifndef SCRIBBLE_H #define SCRIBBLE_H #include <qmainwindow.h> #include <qpen.h> #include <qpoint.h> #include <qpixmap.h> #include <qwidget.h> #include <qstring.h> #include <qpointarray.h> class QMouseEvent; class QResizeEvent; class QPaintEvent; class QToolButton; class QSpinBox; class Canvas : public QWidget { Q_OBJECT public: Canvas( QWidget *parent = 0, const char *name = 0 ); void setPenColor( const QColor &c ) { pen.setColor( c ); } void setPenWidth( int w ) { pen.setWidth( w ); } QColor penColor() { return pen.color(); } int penWidth() { return pen.width(); } void save( const QString &filename, const QString &format ); void clearScreen(); protected: void mousePressEvent( QMouseEvent *e ); void mouseReleaseEvent( QMouseEvent *e ); void mouseMoveEvent( QMouseEvent *e ); void resizeEvent( QResizeEvent *e ); void paintEvent( QPaintEvent *e ); QPen pen; QPointArray polyline; bool mousePressed; QPixmap buffer; }; class Scribble : public QMainWindow { Q_OBJECT public: Scribble( QWidget *parent = 0, const char *name = 0 ); protected: Canvas* canvas; QSpinBox *bPWidth; QToolButton *bPColor, *bSave, *bClear; protected slots: void slotSave(); void slotColor(); void slotWidth( int ); void slotClear(); }; #endif Implementation: /**************************************************************************** ** $Id: //depot/qt/main/examples/scribble/scribble.cpp#2 $ ** ** Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. ** ** This file is part of an example program for Qt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #include "scribble.h" #include <qapplication.h> #include <qevent.h> #include <qpainter.h> #include <qtoolbar.h> #include <qtoolbutton.h> #include <qspinbox.h> #include <qtooltip.h> #include <qrect.h> #include <qpoint.h> #include <qcolordialog.h> #include <qfiledialog.h> #include <qcursor.h> #include <qimage.h> #include <qstrlist.h> #include <qpopupmenu.h> #include <qintdict.h> const bool no_writing = FALSE; Canvas::Canvas( QWidget *parent, const char *name ) : QWidget( parent, name, WNorthWestGravity ), pen( Qt::red, 3 ), polyline(3), mousePressed( FALSE ), buffer( width(), height() ) { if ((qApp->argc() > 0) && !buffer.load(qApp->argv()[1])) buffer.fill( colorGroup().base() ); setBackgroundMode( QWidget::PaletteBase ); #ifndef QT_NO_CURSOR setCursor( Qt::crossCursor ); #endif } void Main: /**************************************************************************** ** $Id: //depot/qt/main/examples/scribble/main.cpp#1 $ ** ** Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. ** ** This file is part of an example program for Qt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #include "scribble.h" #include < |
Publicité
Best OfActualités les plus luesSemaine
Mois
Année
Le Qt Quarterly au hasardÉcrire un périphérique personnalisé d'E/SQt Quarterly est la revue trimestrielle proposée par Nokia et à destination des développeurs Qt. Ces articles d'une grande qualité technique sont rédigés par des experts Qt. Lire l'article.
CommunautéRessources
Liens utilesContact
Qt dans le magazine |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 2.3 | |
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |
Copyright © 2000-2012 - www.developpez.com