qss 更改图标_Qt实现自定义图标功能
Qt实现自定义图标功能
作者:hackett
微信公众号:加班猿
在上一节的基础上进行定义图标的功能
效果:要做的是应用的放大缩小、最小化功能,鼠标移动和点击图标变色
准备工作:
控件:
3个PushButton
1个Label
1个Frame
注意:需要进行布局,如果不布局可能会出现不能放大缩小的情况
准备图标嵌入控件
可以上阿里巴巴矢量图标库下载自己想要的图标,也可以去其他网站或者自己制作
我这里下载了三个图标
QSS样式表
右键选择改变样式表,其他按键同理
添加颜色:
QPushButton为改变这个按钮的属性
QPushButton:hover为鼠标移动到按键的效果
QPushButton:pressed为鼠标按下按键的效果
添加资源:
可以选择我们资源里面的图片为按键填充图片
接下来就可以链接到槽函数做相应的处理即可
放大缩小按钮需要做下margin值的设置void Widget::on_buttonMax_clicked()
{
if(this->isMaximized())//是否已经最大
{
ui->vLayout->setMargin(9); //对应widget布局的Margin值
this->showNormal();
}else
{
ui->vLayout->setMargin(0); //全屏时widget布局的Margin值为0
this->showMaximized();
}
}
源码:
main.cpp#include "widget.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.cpp#include "widget.h"
#include "ui_widget.h"
#include
#include
#include
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect();
shadow->setBlurRadius(5); //边框圆角
shadow->setColor(Qt::black);//边框颜色
shadow->setOffset(0); //不偏移
ui->shadowWidget->setGraphicsEffect(shadow);
this->setAttribute(Qt::WA_TranslucentBackground); //父窗口设置透明,只留下子窗口
}
Widget::~Widget()
{
delete ui;
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
if(this->z == QPoint())//判断鼠标移动 如果为空的话不移动
return;
QPoint y = event->globalPos();//鼠标相当于桌面左上角的位置,鼠标全局位置
QPoint x = y - this->z;
this->move(x);
}
void Widget::mousePressEvent(QMouseEvent *event)
{
QPoint y = event->globalPos();//鼠标相当于桌面左上角的位置,鼠标全局位置
QPoint x = this->geometry().topLeft();//窗口左上角位于桌面左上角的位置,窗口位置
this->z = y - x; //定值,不变
}
void Widget::mouseReleaseEvent(QMouseEvent *event)
{
this->z = QPoint(); //鼠标松开获取当前的坐标
}
void Widget::on_buttonClose_clicked()
{
this->close();
}
void Widget::on_buttonMax_clicked()
{
if(this->isMaximized())//是否已经最大
{
ui->vLayout->setMargin(9); //对应widget布局的Margin值
this->showNormal();
}else
{
ui->vLayout->setMargin(0); //全屏时widget布局的Margin值为0
this->showMaximized();
}
}
void Widget::on_buttonMin_clicked()
{
this->showMinimized();
}
widget.h#ifndef WIDGET_H
#define WIDGET_H
#include
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
virtual void mouseMoveEvent(QMouseEvent *event);
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
private slots:
void on_buttonClose_clicked();
void on_buttonMax_clicked();
void on_buttonMin_clicked();
private:
Ui::Widget *ui;
QPoint z;
};
#endif // WIDGET_H
如果你觉得文章还不错,记得"点赞关注"
关注我的微信公众号【 加班猿 】可以获取更多内容
qss 更改图标_Qt实现自定义图标功能相关推荐
- plt绘图加图标_Matplotlib基础--自定义图标图例
图例可以为可视化赋予实际含义,为不同的图标元素附上明确说明.我们前面看到了一些简单的图例创建例子:本小节中我们来介绍一下在 Matplotlib 中自定义图例的位置和进行美化的方法. 可以使用plt. ...
- Echarts地图自定义图标Symbol同时动态更改图标进行切换显示
Echarts地图自定义图标Symbol同时动态更改图标进行切换显示 文章目录 0.前言 1.引用模块 2.界面设计 3.数据准备 4.实例地图 5.动态修改气泡图标 6.结束语 0.前言 实现的效果 ...
- 鼠标图标怎么自定义_苹果ios14怎么自定义图标 图标位置自由排列换风格教程
苹果ios14怎么自定义图标 图标位置自由排列换风格教程 iOS 14 发布后,自定义主屏幕图标成为了一种流行的趋势,一些用户通过「快捷指令」将默认的应用图标替换为自定义图标,然后将应用本来的图标隐藏 ...
- GIS定位和自定义图标
开发工具与关键技术:VS软件,GIS定位和自定义图标 作者:陈隆 撰写时间:2020年05月02日 说到GIS可能很多人都很陌生吧,其实只有没接触过的就肯定是不知道这到底是什么来的,可能知道GPS的比 ...
- u盘中的android文件夹图标不显示,U盘中文件夹怎么设置自定义图标而不变样
在U盘里面,装着各种各样的资料文件,除了文件夹外,还有不少的图标文件(如*.ico,*.exe等).U盘的文件夹的图标有时会随着文件夹的移动而变样或者失效,有什么办法可以将文件夹图标换成自定义图标而不 ...
- 如何调换手机桌面位置_苹果ios14怎么自定义图标 图标位置自由排列换风格教程...
苹果ios14怎么自定义图标 图标位置自由排列换风格教程 iOS 14 发布后,自定义主屏幕图标成为了一种流行的趋势,一些用户通过「快捷指令」将默认的应用图标替换为自定义图标,然后将应用本来的图标隐藏 ...
- ionic自定义图标(ion-icon)
背景 ionic自带图标库有限,不能满足项目里面各种图标,需要自定义图标. 开始 下载图标库 从iconfont.cn上面搜索想要的图标,添加入库(也就是购物车那个图标) 添加到项目里面,一个项目肯定 ...
- element自定义图标;element自定义icon;element-ui自定义tab栏图标;
一.场景:element-ui本身提供了图标,但是不全面或者开发时候需要使用自定义图标展示.此时可以用到elemenUi的自定义图标.参考链接 二.html使用,和正常的element的 图标 i 标 ...
- Android开发丶基于高德地图实现定位、搜索定位、绘制圆圈自定义图标及改变圆圈半径等功能
前一段时间接了个需求,进入一个地图界面,可以获取当前位置信息,通过输入位置信息获取位置,绘制圆圈并可以实时改变圆圈半径等功能,地图SDK我们使用的是高德地图,仔细阅读了开发文档,发现这些需求都可以通过 ...
最新文章
- 网页静态化技术Freemarker
- 清理svn信息_推荐候选人有奖啦~11.26最新招聘信息看这里!
- Mybatis-Plus升级完成! 我的系统到底更新了什么?Mybatis-Plus比Mybatis好在了哪里?
- Chrome 调试 Android WebView 网页
- 计算机组成原理 第四章【指令系统】课后作业解析【MOOC答案】
- 消息中间件--RabbitMQ --死信队列
- 【写作技巧】绪论写作要点
- SQL ALTER TABLE 语句在项目中的使用
- mac上的android模拟器下载安装,Mac电脑上安装安卓模拟器,Mac如何安装Android模拟器...
- 电容电阻电感的等效分析
- push_back()函数的用法
- Doclist压缩方法简介
- Shiro session过期跳转到登录页面问题
- chrome 设置搜索结果,在新的标签页打开
- 【Android】使用MediaExtractor、MediaMuxer去掉视频文件中的音频数据
- C# 篇基础知识6——文件和流
- 我在linux主机用arm-linux-gcc编译后,复制到开发板根目录运行,出现/bin/sh: ./hello not found
- Android开发实战《手机安全卫士》——11.“进程管理”模块拓展 窗体小部件 生成快捷方式
- 什么是静态网站?什么是动态网站?
- httpclient+jsoup实现小说线上采集阅读