五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

自定義的Qt等待界面用的控件

2022-11-25 21:32 作者:限量版范兒  | 我要投稿

這個控件非常簡單,就是一個圓弧在不停地轉(zhuǎn)圈圈。模仿的是WPS中等待界面的效果。通過這個控件學(xué)習(xí)Qt動畫的基本操作。這個控件在VS2015和Qt5.9上測試通過。下面是效果圖:

上代碼,頭文件:

class MWait : public QWidget { ? ?Q_OBJECTpublic: ? ?MWait(QWidget* parent = 0); ? ?QSize sizeHint() const override;private: ? ?void setFlagPos(int where); ? ?void paintEvent(QPaintEvent *event) override;private: ? ?int atWhere; /* [0, 360) */};

CPP文件:

MWait::MWait(QWidget* parent) { ? ?/* 這里0°和360°邊界有重疊,導(dǎo)致同一個角度連續(xù)播放兩幀 */ ? ?/* 但好在肉眼難以分辨出這個問題 */ ? ?QVariantAnimation* ani = new QVariantAnimation(this); ? ?ani->setStartValue(0); ? ?ani->setEndValue(360); ? ?ani->setLoopCount(-1); ? ?ani->setDuration(800); ? ?connect(ani, &QVariantAnimation::valueChanged, this, ? ? ? ?[this](const QVariant& value) { setFlagPos(value.toInt()); }); ? ?ani->start(); }void MWait::setFlagPos(int where) { ? ?atWhere = where; ? ?update(); }void MWait::paintEvent(QPaintEvent *event) { ? ?QPainter painter(this); ? ?painter.setRenderHint(QPainter::Antialiasing); ? ?int d = qMin(width(), height()); ? ?int xoff = (width() - d) / 2; ? ?int yoff = (height() - d) / 2; ? ?painter.translate(xoff, yoff); ? ?painter.setBrush(Qt::NoBrush); ? ?painter.setPen(QPen(QColor(213, 213, 213), 4)); ? ?QRect rect(2, 2, d - 4, d - 4); ? ?painter.drawEllipse(rect); ? ?painter.setPen(QPen(QColor(0, 160, 243), 4, Qt::SolidLine, Qt::RoundCap)); ? ?painter.drawArc(rect, (90 - atWhere) * 16, -150 * 16); } QSize MWait::sizeHint() const{ ? ?return QSize(36, 36); }

?鏈接:https://www.dianjilingqu.com/622342.html

自定義的Qt等待界面用的控件的評論 (共 條)

分享到微博請遵守國家法律
东辽县| 磴口县| 元氏县| 枣阳市| 汉阴县| 布尔津县| 灌云县| 天长市| 揭西县| 英德市| 台安县| 荆州市| 新龙县| 聂荣县| 会同县| 宝丰县| 勃利县| 同仁县| 教育| 浮梁县| 丹东市| 民勤县| 景东| 库伦旗| 新竹县| 海南省| 东兰县| 上饶县| 尼勒克县| 改则县| 鞍山市| 临洮县| 利川市| 南宫市| 河源市| 尼勒克县| 陆丰市| 汪清县| 水城县| 和政县| 遂昌县|