首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

QT实现图片开关控件-自定义控件

移动开发 17.76KB 33 需要积分: 1
立即下载

资源介绍:

在QT中创建一个图片开关控件。该控件允许用户切换显示不同状态的图像,类似于开关的功能。
#include "imageswitch.h" #include ImageSwitch::ImageSwitch(QWidget *parent) : QWidget(parent) { isChecked = false; buttonStyle = ButtonStyle_2; imgOffFile = ":/image/imageswitch/btncheckoff2.png"; imgOnFile = ":/image/imageswitch/btncheckon2.png"; imgFile = imgOffFile; } void ImageSwitch::mousePressEvent(QMouseEvent *) { imgFile = isChecked ? imgOffFile : imgOnFile; isChecked = !isChecked; Q_EMIT checkedChanged(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); } QSize ImageSwitch::sizeHint() const { return QSize(87, 28); } QSize ImageSwitch::minimumSizeHint() const { return QSize(87, 28); } bool ImageSwitch::getChecked() const { return isChecked; } void ImageSwitch::setChecked(bool isChecked) { if (this->isChecked != isChecked) { this->isChecked = isChecked; imgFile = isChecked ? imgOnFile : imgOffFile; this->update(); } } ImageSwitch::ButtonStyle ImageSwitch::getButtonStyle() const { return this->buttonStyle; } void ImageSwitch::setButtonStyle(const ImageSwitch::ButtonStyle &buttonStyle) { if (this->buttonStyle != buttonStyle) { this->buttonStyle = buttonStyle; if (buttonStyle == ButtonStyle_1) { imgOffFile = ":/image/imageswitch/btncheckoff1.png"; imgOnFile = ":/image/imageswitch/btncheckon1.png"; this->resize(87, 28); } else if (buttonStyle == ButtonStyle_2) { imgOffFile = ":/image/imageswitch/btncheckoff2.png"; imgOnFile = ":/image/imageswitch/btncheckon2.png"; this->resize(87, 28); } else if (buttonStyle == ButtonStyle_3) { imgOffFile = ":/image/imageswitch/btncheckoff3.png"; imgOnFile = ":/image/imageswitch/btncheckon3.png"; this->resize(96, 38); } imgFile = isChecked ? imgOnFile : imgOffFile; setChecked(isChecked); this->update(); updateGeometry(); } }

资源文件列表:

imageswitch.zip 大约有17个文件
  1. imageswitch/
  2. imageswitch/frmimageswitch.cpp 1.15KB
  3. imageswitch/frmimageswitch.h 394B
  4. imageswitch/frmimageswitch.ui 942B
  5. imageswitch/image/
  6. imageswitch/image/imageswitch/
  7. imageswitch/image/imageswitch/btncheckoff1.png 3.52KB
  8. imageswitch/image/imageswitch/btncheckoff2.png 1.93KB
  9. imageswitch/image/imageswitch/btncheckoff3.png 638B
  10. imageswitch/image/imageswitch/btncheckon1.png 3.14KB
  11. imageswitch/image/imageswitch/btncheckon2.png 2.23KB
  12. imageswitch/image/imageswitch/btncheckon3.png 696B
  13. imageswitch/imageswitch.cpp 2.36KB
  14. imageswitch/imageswitch.h 1.25KB
  15. imageswitch/imageswitch.pro 793B
  16. imageswitch/main.cpp 182B
  17. imageswitch/main.qrc 390B
0评论
提交 加载更多评论
其他资源 TinUIXml编辑器
简易编辑通过xml文本布局的TinUI界面,适用于python.tkinter(安装TinUI)
基于TinUI(tkinter)界面的pip可视化管理器
通过TinUI(tkinter)搭建界面,使用命令行作为后端的python.pip可视化管理器。 非阻塞多线程设计,可以同时执行多个pip任务,单个pip任务的耗时不会影响界面控制,使用安全的tkinter多线程结构设计。
仿美团外卖小程序源码及程序
放美团,源码
笔者的数字识别模型、树莓派上所需安装的依赖包(包括onnxruntime依赖)以及YOLOv5-lite1.4版本的源码
所有在树莓派上需要的依赖都在这里,还有笔者训练好的模型
使用Java的Swing组件和主流数据库MySQL实现汽车租赁系统,适用于高校学生Java大作业,课设和毕设
本系统是一个为高校学生设计的Java大作业、课程设计和毕业设计项目,旨在通过实际应用场景教授Java编程语言和数据库技术的综合应用。系统以汽车租赁业务为核心,提供了一个完整的解决方案. 编程语言: Java 图形用户界面: Swing组件 数据库: MySQL 开发环境:建议使用IntelliJ IDEA或Eclipse等集成开发环境。 数据库部署:MySQL数据库,需要事先配置好数据库连接和数据表。 运行环境:Java运行环境(JRE)。 附加资源:使用文档、答辩PPT、可执行的jar 主要功能: (1)用户:登录、注册、注销功能;查看所有车辆信息和已租用车辆总租金;租车、换车、退租功能。 (2)管理员:登录,注销功能;查看所有车辆信息、已被租用车辆及其租用用户和天数;修改包括价格在内的车辆信息,删除车辆信息(删除已被租用车辆时会进行提示);查看营业额。 适用场景:高校计算机科学与技术专业学生的Java课程设计和毕业设计;作为教学案例,帮助学生理解Java Swing图形界面编程和数据库交互。
使用Java的Swing组件和主流数据库MySQL实现汽车租赁系统,适用于高校学生Java大作业,课设和毕设
redis-6.0.19.zip
Redis window版本 解压即用!!!
MATLAB仿真实验 大学离散数学课程实践和课设,多资源整合文件
本MATLAB仿真实验资源专为大学离散数学课程实践与课程设计精心打造,集合了丰富的仿真程序和教学资源。该资源包含了多个整合文件,涵盖了离散数学领域的多个关键知识点和实验案例。通过这些仿真实验,学生可以直观地理解离散数学中的复杂概念,如图论、集合论、逻辑与布尔代数等,并加深对其在实际应用中的理解。 资源中的仿真程序均经过精心设计与验证,确保实验的准确性和可靠性。学生可以通过运行这些程序,观察实验结果,分析数据,从而加深对离散数学理论的理解。此外,资源还提供了详细的实验指导和操作说明,帮助学生顺利完成实验任务。
高等工程数学习题解答与提示
高等工程数学习题解答与提示
高等工程数学习题解答与提示 高等工程数学习题解答与提示 高等工程数学习题解答与提示