Qt-文本绘制
2014-03-22 22:59
218 查看
drawtext.h
drawtext.cpp
main.cpp
#ifndef _DRAWTEXT_H_ #define _DRAWTEXT_H_ #include <QWidget> #include <QPixmap> class DrawText : public QWidget { public: DrawText( QWidget * = 0 ); protected: void paintEvent( QPaintEvent * ); private: int randomInt( int ); int randomInt( int , int ); QPixmap pixmap; }; #endif
drawtext.cpp
#include "drawtext.h" #include <QtGui> #include <cstdlib> DrawText::DrawText( QWidget *parent ) :QWidget( parent ) { const int WIDTH = 800; const int HEIGHT = 600; const int MAX_FONT_SIZE = WIDTH / 4; const int MIN_FONT_SIZE = WIDTH / 40; pixmap = QPixmap( QSize( WIDTH, HEIGHT ) ); pixmap.fill( Qt::white ); QPainter painter( &pixmap ); painter.setRenderHint( QPainter::Antialiasing ); srand( (int) time( NULL ) ); for( int i = 0; i < 20; ++i ) { QFont font; int fontSize = randomInt( MIN_FONT_SIZE, MAX_FONT_SIZE ); font.setPixelSize( fontSize ); painter.setFont( font ); painter.setPen( QColor( randomInt( 255 ), randomInt( 255 ), randomInt( 255 ) ) ); painter.drawText( QPoint( randomInt( WIDTH - MAX_FONT_SIZE ), randomInt(2 * MAX_FONT_SIZE / 3 , HEIGHT) ), QString("Qt") ); } setWindowTitle( tr( "Draw Text" ) ); setFixedSize( WIDTH, HEIGHT ); pixmap.save( "pixmap.png" ); } void DrawText::paintEvent( QPaintEvent * ) { QPainter painter( this ); painter.drawPixmap( QPoint( 0, 0 ), pixmap ); } int DrawText::randomInt( int high ) { return randomInt( 0, high ); } int DrawText::randomInt( int low, int high ) { double d = (double)rand() / ( (double)RAND_MAX + 1 ); int k = (int) (d * ( high - low + 1 )); return k + low; }
main.cpp
#include "drawtext.h" #include <QApplication> int main(int argc, char **argv ) { QApplication app( argc, argv ); DrawText drawText; drawText.show(); return app.exec(); }
相关文章推荐
- Qt之绘制闪烁文本
- Qt之绘制闪烁文本
- Qt之绘制闪烁文本
- qt绘制文本
- QT QPainter 绘制任意角度的文本
- Qt 绘制炫彩滚动文本
- qt在图片中绘制文本且不改变图片像素
- Qt之图形(绘制文本)
- Qt之图形(绘制文本)
- Qt之图形(绘制文本)
- Qt之图形(绘制文本)
- Qt-Quick中设置组件风格、显示一张图片、在一行显示多张图片的方法、绘制图片方法...
- Qt中把纯文本里的int型数据转化为int数组(矩阵)
- QT实现适时曲线的绘制(待完成)
- Qt之文本编辑(一)
- QT 绘制 局部刷新的N中方法
- QT 用 paintEvent 实现绘制钟表的列子
- j2me在Canvas上绘制大量文本自动换行的实现
- QT:富文本转换成pdf
- Andriod自定义View二:canvas.drawText参数的介绍以及绘制一个文本居中的案例