-
UID:24730
-
- 注册时间2007-05-15
- 最后登录2023-07-06
- 在线时间151小时
-
- 发帖255
- 搜Ta的帖子
- 精华0
- 金钱2570
- 威望258
- 贡献值0
- 好评度257
-
访问TA的空间加好友用道具
|
—
本帖被 XChinux 执行加亮操作(2008-07-17)
—
本人想用qt-2.3.7绘制一电压表。源码如下: - const int MaxVoltage = 26;
- void QVoltMeter::paintEvent(QPaintEvent *)
- {
- QPainter painter(this);
- ......
- QFontMetrics fm = painter.fontMetrics();
- QString strVoltage;
- int textwidth=0, textheight = fm.height();;
- int side = height();
- if ( width() < height() )
- {
- side = width();
- }
- painter.setViewport( (width() - side)/2, (height() - side)/2, side, side );
- painter.setWindow(-50, -50, 100, 100);
- QPen thickPen( QColor(150, 150, 200), 2 );
- QPen thinPen(QColor(0, 0, 0), 1 );
- painter.setPen( QPen(QColor(0, 0, 0), 3) );
- painter.drawEllipse( -50, -50, 100, 100 );
- painter.setPen( QPen(QColor(50,50,50),3) );
- painter.drawEllipse( -49, -49, 98, 98 );
- painter.setPen( QPen(QColor(100,100,100),3) );
- painter.drawEllipse( -48, -48, 96, 96 );
- painter.setPen( QPen(QColor(150,150,150),3) );
- painter.drawEllipse( -47, -47, 94, 94 );
- painter.setBrush( QBrush( Qt::white, Qt::SolidPattern ) );
- painter.drawEllipse( -46, -46, 92, 92 );
- //绘制文本部分
- for (int i = 0; i <= MaxVoltage; ++i)
- {
- if (i % 5 == 0)
- {
- painter.setPen( thickPen );
- painter.drawLine(-41, 0, -44, 0);
- painter.setPen( thinPen );
- strVoltage = QString::number( i*10 );
- textwidth = fm.width( strVoltage );
- painter.drawText( -40,-textheight/2,textwidth ,textheight,
- Qt::AlignHCenter | Qt::AlignBottom, strVoltage );
- }
- else
- {
- painter.setPen( thinPen );
- painter.drawLine(-42, 0, -44, 0);
- }
- painter.rotate(10);
- }
- // 绘制文本部分
- ......
- }
上面代码中红色部分为为绘制电压表的电压示数。可是在同一个for循环里面绘制的文本格式却不一样。见附件,请教如何才能够是绘制的文本大小一致?
|