From 56d6dce19c0d0ec3862d864f729800eb11b5ea31 Mon Sep 17 00:00:00 2001 From: feiyangqingyun Date: Tue, 11 Feb 2020 16:22:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9B=BE=E7=89=87=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E6=8E=A7=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- imageswitch/frmimageswitch.cpp | 28 +++++++++ imageswitch/frmimageswitch.h | 25 ++++++++ imageswitch/frmimageswitch.ui | 63 ++++++++++++++++++++ imageswitch/image/btncheckoff1.png | Bin 0 -> 3605 bytes imageswitch/image/btncheckoff2.png | Bin 0 -> 1980 bytes imageswitch/image/btncheckoff3.png | Bin 0 -> 638 bytes imageswitch/image/btncheckon1.png | Bin 0 -> 3213 bytes imageswitch/image/btncheckon2.png | Bin 0 -> 2282 bytes imageswitch/image/btncheckon3.png | Bin 0 -> 696 bytes imageswitch/imageswitch.cpp | 91 +++++++++++++++++++++++++++++ imageswitch/imageswitch.h | 63 ++++++++++++++++++++ imageswitch/imageswitch.pro | 25 ++++++++ imageswitch/main.cpp | 31 ++++++++++ imageswitch/main.qrc | 10 ++++ snap/imageswitch.gif | Bin 0 -> 40197 bytes 16 files changed, 339 insertions(+), 1 deletion(-) create mode 100644 imageswitch/frmimageswitch.cpp create mode 100644 imageswitch/frmimageswitch.h create mode 100644 imageswitch/frmimageswitch.ui create mode 100644 imageswitch/image/btncheckoff1.png create mode 100644 imageswitch/image/btncheckoff2.png create mode 100644 imageswitch/image/btncheckoff3.png create mode 100644 imageswitch/image/btncheckon1.png create mode 100644 imageswitch/image/btncheckon2.png create mode 100644 imageswitch/image/btncheckon3.png create mode 100644 imageswitch/imageswitch.cpp create mode 100644 imageswitch/imageswitch.h create mode 100644 imageswitch/imageswitch.pro create mode 100644 imageswitch/main.cpp create mode 100644 imageswitch/main.qrc create mode 100644 snap/imageswitch.gif diff --git a/README.md b/README.md index 8914bbc..989697a 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ | 30 | videowidget | 通用视频控件 | | 31 | screenwidget | 屏幕截图控件 | | 32 | echartgauge | echart仪表盘含交互支持webkit及webengine | +| 33 | imageswitch | 图片开关控件 | ![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/lightbutton.gif) ![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/movewidget.gif) @@ -65,4 +66,5 @@ ![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/lunarcalendarwidget.gif) ![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/videowidget.gif) ![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/screenwidget.gif) -![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/echartgauge.gif) \ No newline at end of file +![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/echartgauge.gif) +![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/snap/imageswitch.gif) \ No newline at end of file diff --git a/imageswitch/frmimageswitch.cpp b/imageswitch/frmimageswitch.cpp new file mode 100644 index 0000000..7444d7a --- /dev/null +++ b/imageswitch/frmimageswitch.cpp @@ -0,0 +1,28 @@ +#pragma execution_character_set("utf-8") + +#include "frmimageswitch.h" +#include "ui_frmimageswitch.h" + +frmImageSwitch::frmImageSwitch(QWidget *parent) : QWidget(parent), ui(new Ui::frmImageSwitch) +{ + ui->setupUi(this); + this->initForm(); +} + +frmImageSwitch::~frmImageSwitch() +{ + delete ui; +} + +void frmImageSwitch::initForm() +{ + ui->imageSwitch1->setChecked(true); + ui->imageSwitch2->setChecked(true); + ui->imageSwitch3->setChecked(true); + ui->imageSwitch1->setFixedSize(87, 28); + ui->imageSwitch2->setFixedSize(87, 28); + ui->imageSwitch3->setFixedSize(87, 28); + ui->imageSwitch1->setButtonStyle(ImageSwitch::ButtonStyle_1); + ui->imageSwitch2->setButtonStyle(ImageSwitch::ButtonStyle_2); + ui->imageSwitch3->setButtonStyle(ImageSwitch::ButtonStyle_3); +} diff --git a/imageswitch/frmimageswitch.h b/imageswitch/frmimageswitch.h new file mode 100644 index 0000000..7f0e243 --- /dev/null +++ b/imageswitch/frmimageswitch.h @@ -0,0 +1,25 @@ +#ifndef FRMIMAGESWITCH_H +#define FRMIMAGESWITCH_H + +#include + +namespace Ui { +class frmImageSwitch; +} + +class frmImageSwitch : public QWidget +{ + Q_OBJECT + +public: + explicit frmImageSwitch(QWidget *parent = 0); + ~frmImageSwitch(); + +private: + Ui::frmImageSwitch *ui; + +private slots: + void initForm(); +}; + +#endif // FRMIMAGESWITCH_H diff --git a/imageswitch/frmimageswitch.ui b/imageswitch/frmimageswitch.ui new file mode 100644 index 0000000..6e1a376 --- /dev/null +++ b/imageswitch/frmimageswitch.ui @@ -0,0 +1,63 @@ + + + frmImageSwitch + + + + 0 + 0 + 500 + 300 + + + + Form + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + ImageSwitch + QWidget +
imageswitch.h
+
+
+ + +
diff --git a/imageswitch/image/btncheckoff1.png b/imageswitch/image/btncheckoff1.png new file mode 100644 index 0000000000000000000000000000000000000000..bfa8ebbb8bdfc2651de62c5cc1539a3dc4667752 GIT binary patch literal 3605 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 NA@ogQl~AXMzW|0Yoa_Jq literal 0 HcmV?d00001 diff --git a/imageswitch/image/btncheckoff3.png b/imageswitch/image/btncheckoff3.png new file mode 100644 index 0000000000000000000000000000000000000000..45bb93483deb84d77979fb1a2f737b5dc7184158 GIT binary patch literal 638 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 literal 0 HcmV?d00001 diff --git a/imageswitch/image/btncheckon2.png b/imageswitch/image/btncheckon2.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5b59ac5f714a45e8d0c59940cf2b2f468b3864 GIT binary patch literal 2282 zcmYLJ2{e>#8-7!rhT=>1@Nlr;?|S%xf)UD0I8OnjKA zEMpzp3^B&oX2{GCGNj>u#rgm1oacSceLeSez2`mm^*#tQs6IcR2p<3d{DuZP7T|6R zE-}b{@Oc(7_#NE#!?g^pAP~sdq$v#mc(`W9R=V5U+qba*6ayIN0tP7HuVg?i3NUB` z^gaLxhosoA4}Zr)lJqKXPxt7o5k5;aJH7#=}W7eZyYL< zGeKV?O|Sf9FRf3lY)r29F0j8(ulCc~+Y^gx3rx-&bBXzFle*kBGtVAdSf(tseqC4{ zUc^t**;M-GAiHjuzBoQJ-^Y62%d8liWKgNgo!?6PCKt#wHknHAr83&)3R~vTePdIE z(ODvS0Y97COXl&xTtv4_VO3jL*SVs~rqIsw4>}}5J0-Fz-ehCygWH9J+Ky$G*JPJr{aS_mS_M+e zi+x%lX(crttpM^(p2uh2=cOeHr6`XkAm(*^Tyc`aM*xxk%B5~6KQ6TpSKQIqoZPU& zhwjy4PVWW6@*=?Th3CeCkqazz00Rb2*%9+67_D#=Dl{t+%#~xAgm=Mh{~Wiwd1kPD z19(P+bFqw1*54jz?cKQtym$o0$vIaYmg?$|qhOtL&MHIN<%Jm-Ffb=zDt3cso}{=N zOU=YXU_wmo-j{;^g<*&V)DjTMMfq{0k%{LUipyECXR7p>DyRfQg$&aG<~Eox5(5dUu08Lj!|-;gVNz z-UI&tz`+BCI+|7nh*ue5j+UOn?WU>?b{XS~LJfW6#tkk^A7l#j!6f8}P_^L5(F3X@ zRR!XdORBLipZ`6kBWQUR5+gF?sQ(R_Dc4vKCj%2yF;VKQ$U}1++w!0IH4zzp3}!B) z!K;Z8fet+`<@1?8R6~85V;8bKllO$nB_<|Q;L{sJc237sJ+6ug{LxZabm3`zZ3N|O z4I@)%N?u&|l#r?zd+~7Fnd86aS5SvjQHmwxs^CGI#62&h>*WY(${(hZEn81mqg=Wl zLZ_5WpZW91(*e15@uXt)$@w4`h4a!~Y|6)5XHq)Tef-gg>d|)@ZD&n+Y4`q!jd^|K z)C#SFRcUaGXP8|Mzk<{+U9q8@WKXB*nv1|?rg*l@U9lH(Tu-~v95BsJ3%HMAOq*zY zaNXr&t$KL}3W1>K3WQ9O$eBg07EYoRk5DF?U)NZn{QH3ZZ0d`RBfKs(3DT)?fgS{SGl}r_mCXODLv#T?K8a6+FcpGQY5#>35{<^Cu zx#Gv8tn7k?vdy2mq4zwq3HOi6hYLC(?T4V1hi)Gi;-xrAe8fO)-;%`a{mZ260-auU zwK21_ZittO$fsd9u135Us}qh7a^O0PEf2~~+$tNj!g_1S&DL$INO^gA`Qqk%O03S* zs4D-n;8>B6z?W0)rFKGmQcdb&wk=Q4xPX3Ep*QYJwPW=iT#-m>NbO&6ANwYPezZUU zwD)XhM@Rof(tT&!IOKndwpVR^iZ4`YI}m-fQwsN=_@wrtTv18UvLpniC%<5cbvHjP zPp83f2!eaH!UMWBzTZzJGd*2FN{yzsK{GfyJ)$BllK88!>Ee=VAF?>7{&c24%akyp?>3-u5=<(uyxe{xYdx6Vkj(X1(@YkygGjD-so zBz58`qC+*ku!`xRw@Q-T>HAxFn=^n+B`vhD%cD71z!v(NvhY6rp0ShySz`}2jg4f= z;WurwFwM$|l$Q0WPZyvJ)uivq=%0_T*j(of3%l~d9TnVR;qx>PA%rNUrK~z2@WuD2 zHh28v0`$75ghuUJ9~P2P*jpz--8Oc)#5eUZsz~GJb^m3Om%jHlPwFTY_M~$>47@r4 NLtUs&g_djde*yajiDLi& literal 0 HcmV?d00001 diff --git a/imageswitch/image/btncheckon3.png b/imageswitch/image/btncheckon3.png new file mode 100644 index 0000000000000000000000000000000000000000..a8de834cbe4b658ea38ad72ba0156a1edc75179c GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pI!3-pM-1Dk|6mzkYX9x!e$L)vy4}jds0X`wF z|H0tLpPyfTeS81?qgyUoqwElI|08+KIZ94(lALVS zD{wRw=sd%cAirP+i2H~qUkNjD!649rIzOxWfv=0Y|Xe-!N9;6;_2cT;?eo`dTxG`fdG3!{-X(; zJcV87+I=@n-K{Nq|NrH+9s6PyJ^Ph(?7y^^@GtLb)lBwgcaB-tym{s^-qX+bD9oL< z)ROtF%$_9~`VNJM!(Z~p&a7s9Eqh?~Cl)zYh2*uVMZDQ7UqAS#$ZC=$*ZWx4@Z}p> z$%{FYx}Gv@mUo=wCZN6AEx@FujImmoZN}k(pqtao1Sa<}Xf^wO4C-P$VyUtH$(_1G zeaBv^q$M&mXNJcwv6>-!cu&jLsjMa<+va;sT49jAyfLq}F_k|+%KE@7h3TwWKQjEh zT^_IGGfv(fu+CxAiOd^sYjdZ-Y?z{enY02e3*JfL{#Q~#&!PC{xWt~$(699jgTABa= literal 0 HcmV?d00001 diff --git a/imageswitch/imageswitch.cpp b/imageswitch/imageswitch.cpp new file mode 100644 index 0000000..8e6641d --- /dev/null +++ b/imageswitch/imageswitch.cpp @@ -0,0 +1,91 @@ +#pragma execution_character_set("utf-8") + +#include "imageswitch.h" +#include "qpainter.h" +#include "qdebug.h" + +ImageSwitch::ImageSwitch(QWidget *parent) : QWidget(parent) +{ + isChecked = false; + buttonStyle = ButtonStyle_2; + + imgOffFile = ":/image/btncheckoff2.png"; + imgOnFile = ":/image/btncheckon2.png"; + imgFile = imgOffFile; +} + +void ImageSwitch::mousePressEvent(QMouseEvent *) +{ + imgFile = isChecked ? imgOffFile : imgOnFile; + isChecked = !isChecked; + this->update(); +} + +void ImageSwitch::paintEvent(QPaintEvent *) +{ + QPainter painter(this); + painter.setRenderHints(QPainter::SmoothPixmapTransform); + QImage img(imgFile); + img = img.scaled(this->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); + + //按照比例自动居中绘制 + int pixX = rect().center().x() - img.width() / 2; + int pixY = rect().center().y() - img.height() / 2; + QPoint point(pixX, pixY); + painter.drawImage(point, img); +} + +bool ImageSwitch::getChecked() const +{ + return isChecked; +} + +ImageSwitch::ButtonStyle ImageSwitch::getButtonStyle() const +{ + return this->buttonStyle; +} + +QSize ImageSwitch::sizeHint() const +{ + return QSize(87, 28); +} + +QSize ImageSwitch::minimumSizeHint() const +{ + return QSize(87, 28); +} + +void ImageSwitch::setChecked(bool isChecked) +{ + if (this->isChecked != isChecked) { + this->isChecked = isChecked; + imgFile = isChecked ? imgOnFile : imgOffFile; + this->update(); + } +} + +void ImageSwitch::setButtonStyle(const ImageSwitch::ButtonStyle &buttonStyle) +{ + if (this->buttonStyle != buttonStyle) { + this->buttonStyle = buttonStyle; + + if (buttonStyle == ButtonStyle_1) { + imgOffFile = ":/image/btncheckoff1.png"; + imgOnFile = ":/image/btncheckon1.png"; + this->resize(87, 28); + } else if (buttonStyle == ButtonStyle_2) { + imgOffFile = ":/image/btncheckoff2.png"; + imgOnFile = ":/image/btncheckon2.png"; + this->resize(87, 28); + } else if (buttonStyle == ButtonStyle_3) { + imgOffFile = ":/image/btncheckoff3.png"; + imgOnFile = ":/image/btncheckon3.png"; + this->resize(96, 38); + } + + imgFile = isChecked ? imgOnFile : imgOffFile; + setChecked(isChecked); + this->update(); + updateGeometry(); + } +} diff --git a/imageswitch/imageswitch.h b/imageswitch/imageswitch.h new file mode 100644 index 0000000..8a3de52 --- /dev/null +++ b/imageswitch/imageswitch.h @@ -0,0 +1,63 @@ +#ifndef IMAGESWITCH_H +#define IMAGESWITCH_H + +/** + * 图片开关控件 作者:feiyangqingyun(QQ:517216493) 2016-11-25 + * 1:自带三种开关按钮样式 + * 2:可自定义开关图片 + */ + +#include + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT ImageSwitch : public QWidget +#else +class ImageSwitch : public QWidget +#endif + +{ + Q_OBJECT + Q_ENUMS(ButtonStyle) + + Q_PROPERTY(bool isChecked READ getChecked WRITE setChecked) + Q_PROPERTY(ButtonStyle buttonStyle READ getButtonStyle WRITE setButtonStyle) + +public: + enum ButtonStyle { + ButtonStyle_1 = 0, //开关样式1 + ButtonStyle_2 = 1, //开关样式2 + ButtonStyle_3 = 2 //开关样式3 + }; + + explicit ImageSwitch(QWidget *parent = 0); + +protected: + void mousePressEvent(QMouseEvent *); + void paintEvent(QPaintEvent *event); + +private: + bool isChecked; + ButtonStyle buttonStyle; + + QString imgOffFile; + QString imgOnFile; + QString imgFile; + +public: + bool getChecked() const; + ButtonStyle getButtonStyle() const; + QSize sizeHint() const; + QSize minimumSizeHint() const; + +public Q_SLOTS: + void setChecked(bool isChecked); + void setButtonStyle(const ImageSwitch::ButtonStyle &buttonStyle); +}; + +#endif // IMAGESWITCH_H diff --git a/imageswitch/imageswitch.pro b/imageswitch/imageswitch.pro new file mode 100644 index 0000000..548a8f3 --- /dev/null +++ b/imageswitch/imageswitch.pro @@ -0,0 +1,25 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-02-08T14:39:46 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = imageswitch +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += frmimageswitch.cpp +SOURCES += imageswitch.cpp + +HEADERS += frmimageswitch.h +HEADERS += imageswitch.h + +FORMS += frmimageswitch.ui + +RESOURCES += main.qrc diff --git a/imageswitch/main.cpp b/imageswitch/main.cpp new file mode 100644 index 0000000..247fe10 --- /dev/null +++ b/imageswitch/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "frmimageswitch.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmImageSwitch w; + w.setWindowTitle("图片背景开关"); + w.show(); + + return a.exec(); +} diff --git a/imageswitch/main.qrc b/imageswitch/main.qrc new file mode 100644 index 0000000..d22919e --- /dev/null +++ b/imageswitch/main.qrc @@ -0,0 +1,10 @@ + + + image/btncheckoff1.png + image/btncheckoff2.png + image/btncheckoff3.png + image/btncheckon1.png + image/btncheckon2.png + image/btncheckon3.png + + diff --git a/snap/imageswitch.gif b/snap/imageswitch.gif new file mode 100644 index 0000000000000000000000000000000000000000..767bcf4ce56c451cec2497b7b30d1d513d73202e GIT binary patch literal 40197 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