当前位置: 首页 > news >正文

我爱做衣服网站建站购物网站

我爱做衣服网站,建站购物网站,游戏推广员,机械类 网站源码使用QWidget绘制两种钟表组件#xff0c;效果如下#xff1a; 源码下载链接#xff1a;GitHub - DengYong1988/Clock-Widget: Qt 自定义钟表组件 https://download.csdn.net/download/ouyangxiaozi/89616407 主要代码如下#xff1a; ClockWgt.h #ifndef CLOCKWGT_H #d…使用QWidget绘制两种钟表组件效果如下 源码下载链接GitHub - DengYong1988/Clock-Widget: Qt 自定义钟表组件 https://download.csdn.net/download/ouyangxiaozi/89616407 主要代码如下 ClockWgt.h #ifndef CLOCKWGT_H #define CLOCKWGT_H#include QWidgetclass QTimer;/************************ ClockWgt *************************/ class ClockWgt : public QWidget {Q_OBJECT public:explicit ClockWgt(QWidget *parent nullptr);~ClockWgt();private:void initData();void resetGradient(QRadialGradient grad, qreal radius);void updatePath();protected:void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;void drawBkg(QPainter painter); // 绘制背景void drawHand(QPainter painter); // 绘制时分秒void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;private:// 钟表的局部struct SPart {QRadialGradient grad; // 背景色QPainterPath path; // 路径int width; // 宽度SPart();};SPart m_outerFrame; // 钟表的外边框SPart m_innerFrame; // 钟表内边框SPart m_bkgPart; // 钟表背景部分QTimer *m_timer nullptr;QColor m_timescaleClr; // 时间刻度颜色QColor m_timeDigitClr; // 时间数字颜色QFont m_timeDigitFont; // 时间数字字体QTransform m_transform; // 绘图时的坐标转换QRadialGradient m_needleGrad; // 图针的背景int m_needleRadius; // 图针的半径QPainterPath m_hourPath; // 时钟路径QPainterPath m_minutePath; // 分钟路径QPainterPath m_secondPath; // 秒钟路径 };#endif // CLOCKWGT_HClockWgt.cpp #include ClockWgt.h #include QPainter #include QResizeEvent #include QTime #include QTimer #include qmath.h/************************ ClockWgt *************************/ ClockWgt::ClockWgt(QWidget *parent): QWidget(parent) {initData(); }ClockWgt::~ClockWgt() {if (m_timer) {if (m_timer-isActive())m_timer-stop();m_timer-deleteLater();m_timer nullptr;} }ClockWgt::SPart::SPart(): width(0) {grad.setSpread(QGradient::PadSpread); }void ClockWgt::initData() {m_outerFrame.grad.setColorAt(0.9, QColor(250, 36, 66));m_outerFrame.grad.setColorAt(0.95, QColor(250, 36, 66, 235));m_outerFrame.grad.setColorAt(1, QColor(250, 36, 66, 96));m_outerFrame.width 20;m_innerFrame.grad.setColorAt(0.8, QColor(200, 200, 200));m_innerFrame.grad.setColorAt(1, QColor(235, 235, 245));m_innerFrame.width 10;m_bkgPart.grad.setColorAt(0, QColor(223, 231, 254));m_bkgPart.grad.setColorAt(0.2, QColor(238, 238, 250));m_bkgPart.grad.setColorAt(0.8, QColor(238, 238, 250));m_bkgPart.grad.setColorAt(0.9, QColor(213, 218, 254));m_bkgPart.grad.setColorAt(1, QColor(213, 218, 254));m_needleRadius 10;m_needleGrad.setSpread(QGradient::PadSpread);m_needleGrad.setRadius(20);m_needleGrad.setCenter(0, 0);m_needleGrad.setFocalPoint(0, 0);m_needleGrad.setColorAt(0, QColor(220, 220, 230));m_needleGrad.setColorAt(1, QColor(20, 20, 20));m_timescaleClr.setRgb(7, 7, 9);m_timeDigitClr.setRgb(7, 7, 9);m_timeDigitFont.setFamily(Arial);m_timeDigitFont.setPixelSize(44);m_timeDigitFont.setWeight(QFont::Bold);m_timer new QTimer(this);m_timer-setInterval(1000);m_timer-start();connect(m_timer, QTimer::timeout, this, [this] {this-update();}); }void ClockWgt::resetGradient(QRadialGradient grad, qreal radius) {grad.setCenter(radius, radius);grad.setFocalPoint(radius, radius);grad.setCenterRadius(radius); }void ClockWgt::updatePath() {int diameter qMin(width(), height());int offset m_outerFrame.width;m_outerFrame.path.addEllipse(QRectF(0, 0, diameter, diameter));diameter - 2 * m_outerFrame.width;m_outerFrame.path.addEllipse(QRectF(offset, offset, diameter, diameter));m_innerFrame.path.addEllipse(QRectF(offset, offset, diameter, diameter));offset m_innerFrame.width;diameter - 2 * m_innerFrame.width;m_innerFrame.path.addEllipse(QRectF(offset, offset, diameter, diameter));m_bkgPart.path.addEllipse(QRectF(offset, offset, diameter, diameter));m_hourPath.addRoundedRect(-20, -5, 140, 10, 4, 4);m_minutePath.addRoundedRect(-20, -4, 200, 8, 4, 4);m_secondPath.moveTo(-40, 0);m_secondPath.lineTo(-36, -4);m_secondPath.lineTo(0, -2);m_secondPath.lineTo(180, 0);m_secondPath.lineTo(0, 2);m_secondPath.lineTo(-36, 4);m_secondPath.lineTo(-40, 0); }void ClockWgt::paintEvent(QPaintEvent *event) {Q_UNUSED(event);QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);painter.setRenderHint(QPainter::TextAntialiasing, true);drawBkg(painter);drawHand(painter); }void ClockWgt::drawBkg(QPainter painter) {painter.fillPath(m_outerFrame.path, m_outerFrame.grad);painter.fillPath(m_innerFrame.path, m_innerFrame.grad);painter.fillPath(m_bkgPart.path, m_bkgPart.grad);const qreal radius qMin(0.5 * width(), 0.5 * height());QPen pen(m_timescaleClr);m_transform.reset();for (int i 0; i 60; i) {int len 6;if (0 (i % 5)) {pen.setWidthF(3.0);} else {pen.setWidthF(1.0);}painter.setPen(pen);qreal innerRadius radius - m_outerFrame.width - m_innerFrame.width - 10 - len;qreal xPos radius innerRadius * qCos(2 * M_PI * 6 * i / 360);qreal yPos radius - innerRadius * qSin(2 * M_PI * 6 * i / 360);m_transform.translate(xPos, yPos);m_transform.rotate(-6 * i);painter.setTransform(m_transform);painter.drawLine(QPoint(-len, 0), QPoint(len, 0));m_transform.reset();}pen.setColor(m_timeDigitClr);painter.setPen(pen);painter.setFont(m_timeDigitFont);for (int i 1; i 12; i) {QFontMetrics fm(m_timeDigitFont);QString text QString::number(i);qreal innerRadius radius - m_outerFrame.width - m_innerFrame.width - 10 - 36;qreal angle 30 * i - 90;qreal xPos radius innerRadius * qCos(2 * M_PI * angle / 360);qreal yPos radius innerRadius * qSin(2 * M_PI * angle / 360);m_transform.translate(xPos, yPos);painter.setTransform(m_transform);painter.drawText(-fm.horizontalAdvance(text) / 2, fm.height() / 2 - fm.descent(), text);m_transform.reset();} }void ClockWgt::drawHand(QPainter painter) {const qreal radius qMin(0.5 * width(), 0.5 * height());const QTime dtCurr QTime::currentTime();m_transform.reset();m_transform.translate(radius, radius);int h dtCurr.hour();int m dtCurr.minute();int s dtCurr.second();m_transform.rotate(30 * h - 90 0.5 * m);painter.setTransform(m_transform);painter.fillPath(m_hourPath, Qt::black);m_transform.reset();m_transform.translate(radius, radius);m_transform.rotate(6 * m - 90);painter.setTransform(m_transform);painter.fillPath(m_minutePath, Qt::black);m_transform.reset();m_transform.translate(radius, radius);m_transform.rotate(6 * s - 90);painter.setTransform(m_transform);painter.fillPath(m_secondPath, Qt::red);m_transform.reset();m_transform.translate(radius, radius);painter.setTransform(m_transform);m_transform.reset();painter.setBrush(m_needleGrad);painter.setPen(Qt::transparent);painter.drawEllipse(QPoint(0, 0), m_needleRadius, m_needleRadius); }void ClockWgt::resizeEvent(QResizeEvent *event) {if (event) {const QSize size event-size();qreal radius qMin(0.5 * size.width(), 0.5 * size.height());resetGradient(m_outerFrame.grad, radius);resetGradient(m_innerFrame.grad, radius);resetGradient(m_bkgPart.grad, radius);updatePath();}QWidget::resizeEvent(event); }DigitalWatchWgt.h #ifndef DIGITALWATCHWGT_H #define DIGITALWATCHWGT_H#include QWidgetconst int kNumCount 6; // 时、分、秒数字数 const int kLineCount 7; // 数字8的线条数class QTimer;class DigitalWatchWgt : public QWidget {Q_OBJECT public:explicit DigitalWatchWgt(bool isShowSecond, QWidget *parent nullptr);~DigitalWatchWgt();void setFixedSize(const QSize size);void setFixedSize(int w, int h);void setMargin(const QMargins margin);void setNumSpacing(int spacing);void setColonSpacing(int spacing);// 设置组件边框void setBorder(qreal border);// 设置线条之间的偏移量void setLineOffset(qreal offset);// 设置边框颜色void setBorderColor(const QColor borColor);// 设置组件圆角void setBorderRadius(qreal borRadius);// 设置背景色void setBackground(const QColor bkg);// 设置数字显示的颜色void setNumColor(const QColor lightColor, const QColor darkColor);// 设置数字显示的尺寸void setNumSize(const QSizeF size);// 设置数字边框粗细void setNumBorder(qreal border);// 设置冒号点宽度void setDotWidth(qreal dotWid);private:void initData();void adaptSize();void adjustPos();void calcLinePath();protected:void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;void drawBackground(QPainter painter);void drawNumber(QPainter painter, const QChar num);void fillLinePath(QPainter painter, bool *isDarkColor);void drawColon(QPainter painter, const QRectF rf);private:struct SNumber {QChar m_text;qreal m_topX;qreal m_topY;explicit SNumber();explicit SNumber(const QChar text);};private:bool m_isShowSecond; // 是否显示秒数QMargins m_margin;int m_numSpacing; // 数字之间的间距int m_colonSpacing; // 数字和冒号之间的间距qreal m_border; // 组件边框qreal m_borRadius; // 圆角qreal m_lineOffset; // 线条之间的偏移量QColor m_bkgColor; // 背景色QColor m_borColor; // 边框色QColor m_numLightColor; // 数字浅色QColor m_numDarkColor; // 数字深色QSizeF m_numSize; // 数字尺寸qreal m_numBorder; // 数字边框粗细qreal m_dotWid; // 冒号点宽度QRectF m_rfColon[2]; // 冒号的位置QTimer *m_timer nullptr;SNumber m_number[kNumCount];// 时分秒数字QPainterPath m_linePath[kLineCount];QTransform m_tfDrawing; };#endif // DIGITALWATCHWGT_HDigitalWatchWgt.cpp #include DigitalWatchWgt.h #include QTimer #include QTime #include QPainterDigitalWatchWgt::DigitalWatchWgt(bool isShowSecond, QWidget *parent): QWidget(parent), m_isShowSecond(isShowSecond) {initData(); }DigitalWatchWgt::~DigitalWatchWgt() {if (m_timer m_timer-isActive()) {m_timer-stop();} }void DigitalWatchWgt::setFixedSize(const QSize size) {this-setFixedSize(size.width(), size.height()); }void DigitalWatchWgt::setFixedSize(int w, int h) {qreal wid 2 * m_border m_margin.left() m_margin.right();qreal hgt m_margin.top() m_margin.bottom() 2 * m_border;if (m_isShowSecond) {wid 3 * m_numSpacing 4 * m_colonSpacing 2 * m_dotWid;} else {wid 2 * m_numSpacing 2 * m_colonSpacing m_dotWid;}if (w wid h hgt) {if (m_isShowSecond) {m_numSize.rwidth() (w - wid) / kNumCount;} else {m_numSize.rwidth() (w - wid) / 4;}m_numSize.rheight() h - hgt; QWidget::setFixedSize(w, h);adjustPos();calcLinePath();} }void DigitalWatchWgt::setMargin(const QMargins margin) {m_margin margin;adaptSize(); }void DigitalWatchWgt::setNumSpacing(int spacing) {m_numSpacing spacing;adaptSize(); }void DigitalWatchWgt::setColonSpacing(int spacing) {m_colonSpacing spacing;adaptSize(); }// 设置组件边框 void DigitalWatchWgt::setBorder(qreal border) {m_border border;adaptSize(); }// 设置线条之间的偏移量 void DigitalWatchWgt::setLineOffset(qreal offset) {m_lineOffset offset 0 ? offset : 0; }// 设置边框颜色 void DigitalWatchWgt::setBorderColor(const QColor borColor) {m_borColor borColor; }// 设置组件圆角 void DigitalWatchWgt::setBorderRadius(qreal borRadius) {m_borRadius borRadius; }// 设置背景色 void DigitalWatchWgt::setBackground(const QColor bkg) {m_bkgColor bkg; }// 设置数字显示的颜色 void DigitalWatchWgt::setNumColor(const QColor lightColor, const QColor darkColor) {m_numLightColor lightColor;m_numDarkColor darkColor; }// 设置数字显示的尺寸 void DigitalWatchWgt::setNumSize(const QSizeF size) {m_numSize size;adaptSize();calcLinePath(); }// 设置数字边框粗细 void DigitalWatchWgt::setNumBorder(qreal border) {if (border 0.5 * m_numSize.width() border 0.25 * m_numSize.height()) {m_numBorder border;} }// 设置冒号点宽度 void DigitalWatchWgt::setDotWidth(qreal dotWid) {m_dotWid dotWid;adaptSize(); }void DigitalWatchWgt::initData() {m_margin QMargins(12, 8, 12, 8);m_numSpacing 12;m_colonSpacing 12;m_border 0;m_borRadius 12;m_lineOffset 3.0;m_bkgColor Qt::transparent;m_numLightColor QColor(255, 255, 255, 20);m_numDarkColor QColor(12, 255, 12, 255);m_numSize QSizeF(32.0, 64.0);m_numBorder 8.0;m_dotWid 8.0;m_timer new QTimer(this);if (m_isShowSecond) {m_timer-setInterval(1000);} else {m_timer-setInterval(60000);}auto updateNumText [this] {QString currTime QTime::currentTime().toString(HHmmss);if (kNumCount currTime.length()) {for (int i 0; i kNumCount; i) {m_number[i].m_text currTime.at(i);}}};connect(m_timer, QTimer::timeout, this, [] {updateNumText();update();});updateNumText();m_timer-start(); }void DigitalWatchWgt::adaptSize() {int wid m_margin.left() m_margin.right() static_castint(2 * m_border);int hgt m_margin.top() m_margin.bottom() m_numSize.height();hgt static_castint(2 * m_border);if (m_isShowSecond) {wid static_castint(kNumCount * m_numSize.width() 2 * m_dotWid);wid 3 * m_numSpacing 4 * m_colonSpacing;} else {wid static_castint(4 * m_numSize.width() m_dotWid);wid 2 * m_numSpacing 2 * m_colonSpacing;}QWidget::setFixedSize(wid, hgt);adjustPos(); }void DigitalWatchWgt::adjustPos() {qreal xPos m_border m_margin.left();qreal yPos m_border m_margin.top();m_number[0].m_topX xPos;m_number[0].m_topY yPos;xPos m_numSize.width() m_numSpacing;m_number[1].m_topX xPos;m_number[1].m_topY yPos;xPos m_numSize.width() m_colonSpacing;m_rfColon[0] QRectF(QPointF(xPos, yPos), QSizeF(m_dotWid, m_numSize.height()));xPos m_dotWid m_colonSpacing;m_number[2].m_topX xPos;m_number[2].m_topY yPos;xPos m_numSize.width() m_numSpacing;m_number[3].m_topX xPos;m_number[3].m_topY yPos;if (m_isShowSecond) {xPos m_numSize.width() m_colonSpacing;m_rfColon[1] QRectF(xPos, yPos, m_dotWid, m_numSize.height());xPos m_dotWid m_colonSpacing;m_number[4].m_topX xPos;m_number[4].m_topY yPos;xPos m_numSize.width() m_numSpacing;m_number[5].m_topX xPos;m_number[5].m_topY yPos;} }void DigitalWatchWgt::calcLinePath() {qreal tempWid 0.5 * m_numBorder;QPointF ptf(0, 0);QPainterPath path[kLineCount];ptf.rx() m_numBorder m_lineOffset;path[0].moveTo(ptf);ptf.rx() m_numSize.width() - m_numBorder - m_lineOffset;path[0].lineTo(ptf);ptf.rx() tempWid;ptf.ry() tempWid;path[0].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() tempWid;path[0].lineTo(ptf);ptf.rx() m_numBorder m_lineOffset;path[0].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() - tempWid;path[0].lineTo(ptf);ptf.rx() tempWid;ptf.ry() - tempWid;path[0].lineTo(ptf);ptf.setX(0);ptf.setY(m_numBorder m_lineOffset);path[1].moveTo(ptf);ptf.rx() tempWid;ptf.ry() - tempWid;path[1].lineTo(ptf);ptf.rx() tempWid;ptf.ry() tempWid;path[1].lineTo(ptf);ptf.ry() 0.5 * (m_numSize.height() - m_numBorder) - m_lineOffset;path[1].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() tempWid;path[1].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() - tempWid;path[1].lineTo(ptf);ptf.ry() m_numBorder m_lineOffset;path[1].lineTo(ptf);ptf.setX(m_numSize.width() - m_numBorder);ptf.setY(m_numBorder m_lineOffset);path[2].moveTo(ptf);ptf.rx() tempWid;ptf.ry() - tempWid;path[2].lineTo(ptf);ptf.rx() tempWid;ptf.ry() tempWid;path[2].lineTo(ptf);ptf.ry() 0.5 * (m_numSize.height() - m_numBorder) - m_lineOffset;path[2].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() tempWid;path[2].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() - tempWid;path[2].lineTo(ptf);ptf.ry() m_numBorder m_lineOffset;path[2].lineTo(ptf);ptf.setX(m_numBorder m_lineOffset);ptf.setY(0.5 * (m_numSize.height() - m_numBorder));path[3].moveTo(ptf);ptf.rx() m_numSize.width() - m_numBorder - m_lineOffset;path[3].lineTo(ptf);ptf.rx() tempWid;ptf.ry() tempWid;path[3].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() tempWid;path[3].lineTo(ptf);ptf.rx() m_numBorder m_lineOffset;path[3].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() - tempWid;path[3].lineTo(ptf);ptf.rx() tempWid;ptf.ry() - tempWid;path[3].lineTo(ptf);ptf.setX(0);ptf.ry() 0.5 * (m_numSize.height() m_numBorder) m_lineOffset;path[4].moveTo(ptf);ptf.rx() tempWid;ptf.ry() - tempWid;path[4].lineTo(ptf);ptf.rx() tempWid;ptf.ry() tempWid;path[4].lineTo(ptf);ptf.ry() m_numSize.height() - m_numBorder - m_lineOffset;path[4].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() tempWid;path[4].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() - tempWid;path[4].lineTo(ptf);ptf.ry() 0.5 * (m_numSize.height() m_numBorder) m_lineOffset;path[4].lineTo(ptf);ptf.setX(m_numSize.width() - m_numBorder);ptf.ry() 0.5 * (m_numSize.height() m_numBorder) m_lineOffset;path[5].moveTo(ptf);ptf.rx() tempWid;ptf.ry() - tempWid;path[5].lineTo(ptf);ptf.rx() tempWid;ptf.ry() tempWid;path[5].lineTo(ptf);ptf.ry() m_numSize.height() - m_numBorder - m_lineOffset;path[5].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() tempWid;path[5].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() - tempWid;path[5].lineTo(ptf);ptf.ry() 0.5 * (m_numSize.height() m_numBorder) m_lineOffset;path[5].lineTo(ptf);ptf.rx() m_numBorder m_lineOffset;ptf.ry() m_numSize.height() - m_numBorder;path[6].moveTo(ptf);ptf.rx() m_numSize.width() - m_numBorder - m_lineOffset;path[6].lineTo(ptf);ptf.rx() tempWid;ptf.ry() tempWid;path[6].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() tempWid;path[6].lineTo(ptf);ptf.rx() m_numBorder m_lineOffset;path[6].lineTo(ptf);ptf.rx() - tempWid;ptf.ry() - tempWid;path[6].lineTo(ptf);ptf.rx() tempWid;ptf.ry() - tempWid;path[6].lineTo(ptf);for (int i 0; i kLineCount; i) {m_linePath[i] path[i];} }void DigitalWatchWgt::paintEvent(QPaintEvent *event) {Q_UNUSED(event);QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);drawBackground(painter); painter.save();int numCnt m_isShowSecond ? kNumCount : 4;for (int i 0; i numCnt; i) {m_tfDrawing.translate(m_number[i].m_topX, m_number[i].m_topY);painter.setTransform(m_tfDrawing);drawNumber(painter, m_number[i].m_text);m_tfDrawing.reset();}painter.restore(); drawColon(painter, m_rfColon[0]);if (m_isShowSecond) {drawColon(painter, m_rfColon[1]);} }void DigitalWatchWgt::drawBackground(QPainter painter) {QPainterPath path;path.addRoundedRect(this-rect(), m_borRadius, m_borRadius);if (m_border 0) {painter.setPen(QPen(QBrush(m_borColor), m_border));painter.setBrush(QBrush(m_bkgColor));painter.drawPath(path);} else {painter.fillPath(path, QBrush(m_bkgColor));} }void DigitalWatchWgt::drawNumber(QPainter painter, const QChar num) {if (0 num) {bool isDarkClr[kLineCount] {true, true, true, false, true, true, true};fillLinePath(painter, isDarkClr);} else if (1 num) {bool isDarkClr[kLineCount] {false, false, true, false, false, true, false};fillLinePath(painter, isDarkClr);} else if (2 num) {bool isDarkClr[kLineCount] {true, false, true, true, true, false, true};fillLinePath(painter, isDarkClr);} else if (3 num) {bool isDarkClr[kLineCount] {true, false, true, true, false, true, true};fillLinePath(painter, isDarkClr);} else if (4 num) {bool isDarkClr[kLineCount] {false, true, true, true, false, true, false};fillLinePath(painter, isDarkClr);} else if (5 num) {bool isDarkClr[kLineCount] {true, true, false, true, false, true, true};fillLinePath(painter, isDarkClr);} else if (6 num) {bool isDarkClr[kLineCount] {true, true, false, true, true, true, true};fillLinePath(painter, isDarkClr);} else if (7 num) {bool isDarkClr[kLineCount] {true, false, true, false, false, true, false};fillLinePath(painter, isDarkClr);} else if (8 num) {bool isDarkClr[kLineCount] {true, true, true, true, true, true, true};fillLinePath(painter, isDarkClr);} else if (9 num) {bool isDarkClr[kLineCount] {true, true, true, true, false, true, true};fillLinePath(painter, isDarkClr);} }void DigitalWatchWgt::fillLinePath(QPainter painter, bool *isDarkColor) {for (int i 0; i kLineCount; i) {painter.fillPath(m_linePath[i], isDarkColor[i] ? m_numDarkColor : m_numLightColor);} }void DigitalWatchWgt::drawColon(QPainter painter, const QRectF rf) {qreal vSpace (rf.height() - 2 * m_dotWid) / 3;QRectF rf1(QPointF(rf.left(), rf.top() vSpace), QSizeF(m_dotWid, m_dotWid));QRectF rf2(QPointF(rf.left(), rf.top() 2 * vSpace m_dotWid), QSizeF(m_dotWid, m_dotWid));painter.fillRect(rf1, m_numDarkColor);painter.fillRect(rf2, m_numDarkColor); }/*********************************** SNumber ************************************/ DigitalWatchWgt::SNumber::SNumber(): SNumber(QChar(0)) { }DigitalWatchWgt::SNumber::SNumber(const QChar text): m_text(text), m_topX(0), m_topY(0) { }
http://www.hkea.cn/news/14288555/

相关文章:

  • 苏州网站建设熊掌号二级域名租用
  • 泉州专业建站淘宝网站做推广收费吗
  • 做简单网站代码seo视频教程
  • html网页制作流程dz论坛seo设置
  • 做网站项目团队口号陕西网站建设企业
  • 如何建设一个自己 的网站首页wordpress 编辑自己代码
  • 炎陵做网站西安网站建设那家好
  • 云浮市住房和城乡建设局网站网站帮企业做推广价格怎么算
  • 什么软件可以做动漫视频网站WordPress动漫源码
  • 小网站推荐自己做的网站网页错位
  • 阜阳市网站建设深度网网站建设
  • wordpress网站如何引流江苏有什么网站找工程建设人员
  • 西安哪家做网站公司好网站建设广告有哪些平台
  • 网站建设与管理以后工作方向被电商代运营骗了怎么办
  • 高端网站开发哪家好wordpress显示时间
  • 网站建设青岛公司简约装修
  • 新网站怎样做外链微信营销网站(含html源文件)免费下载
  • 企业网站提供商建设网站南沙区
  • 装修行业 网站建设济源做网站的好公司
  • 门户网站建设方案内容wordpress logo 修改
  • 17网站一起做网店官网wordpress自动内链
  • 电脑版和手机版网站怎么做的地铁公司招聘信息网站
  • 代理企业网站备案wordpress调用文章某个分类
  • 茶叶网站flash模板规划网站开发总体方案
  • 做网站开发考什么研国庆图片制作小程序
  • 网赌网站怎么做的wordpress启动页
  • 搞一个网站多少钱淘宝客做网站教程
  • 餐饮网站建设设计价格网站建设属于技术服务
  • 中山网站建设推广模板下载失败
  • 找外包做网站不给代码无锡滨湖区建设局网站