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

成都网站建设v芯ee8888e/百度搜索指数入口

成都网站建设v芯ee8888e,百度搜索指数入口,多网合一网站,做网站域名有什么用三种图标样式(从左往右分别是normal,hover,pressed):先上效果图:(1)第一种方法:在样式表中设置border-image(在网上看到有人使用background-image的,不推荐,因为那样的话图标大小是不会自动缩放的&#xff…

三种图标样式(从左往右分别是normal,hover,pressed):

   referrerpolicy=

先上效果图:

   referrerpolicy=

(1)第一种方法:在样式表中设置border-image(在网上看到有人使用background-image的,不推荐,因为那样的话图标大小是不会自动缩放的,有兴趣的可以试一下)。

QPushButton *button1 = new QPushButton(this);

button1->setFixedSize(30, 30);

button1->setFlat(true);

button1->setStyleSheet("QPushButton{border-image:url(:/listBar_Icon/add.png);}"

"QPushButton:hover{border-image:url(:/listBar_Icon/add_hover.png);}"

"QPushButton:pressed{border-image:url(:/listBar_Icon/add_pressed.png);}");

优点 :简单方便。

缺点 : border-image会随着QPushButton的大小尺寸变化(图标会填充整个按钮)。上面的例子中按钮形状和图标素材都是正方形的,所以效果不错。如果QPushButton只显示图标的话用这种方法比较好,如果需要添加文字而导致按钮形状和素材不同,这种方法则不可取。比如倘若把按钮尺寸由(30,30)改成(60,30)就会变成下面这样:

   referrerpolicy=

(2)第二种方法:继承QPushButton,重写event事件。效果和第一个gif相同。

mypushbutton.h

#ifndef MYPUSHBUTTON_H#define MYPUSHBUTTON_H#include#include

class MyPushButton : publicQPushButton

{

Q_OBJECTpublic:

MyPushButton(QWidget*parent =nullptr);void setUpIcon(const QIcon &icon, const QIcon &icon_hover, const QIcon &icon_pressed);~MyPushButton();protected:bool event(QEvent *event) override;private:

QIcon Img;

QIcon Img_hover;

QIcon Img_pressed;

};#endif //MYPUSHBUTTON_H

mypushbutton.cpp

#include "mypushbutton.h"#includeMyPushButton::MyPushButton(QWidget*parent)

: QPushButton(parent)

{

}

MyPushButton::~MyPushButton()

{

}void MyPushButton::setUpIcon(const QIcon &icon, const QIcon &icon_hover, const QIcon &icon_pressed)

{

Img=icon;

Img_hover=icon_hover;

Img_pressed=icon_pressed;

setIcon(Img);

}bool MyPushButton::event(QEvent *event)

{switch (event->type())

{caseQEvent::Enter:

setIcon(Img_hover);break;caseQEvent::Leave:

setIcon(Img);break;caseQEvent::MouseButtonPress:

setIcon(Img_pressed);break;caseQEvent::MouseButtonRelease:

setIcon(Img_hover);break;default:break;

}return QPushButton::event(event);

}

使用MyPushButton类:

见最后

第三种方法:原理及优缺点和第二种方法相同,只是不需要继承QPushButton,而是重写主窗口的事件过滤器。

mybutton2.h

class test : publicQWidget

{

Q_OBJECTpublic:explicit test(QWidget *parent =nullptr);private:

QPushButton*button3 =nullptr;voidinitUi();protected:bool eventFilter(QObject *obj, QEvent *event) override; //事件过滤

};

mybutton2.cpp

test::test(QWidget *parent) : QWidget(parent)

{

initUi();

}voidtest::initUi()

{

button3= new QPushButton(this);

button3->setFixedSize(30, 30);

button3->setFlat(true);

button3->setIcon(QIcon(":/listBar_Icon/add.png"));

button3->setStyleSheet("QPushButton{border:0px solid rgba(0, 0, 0, 255);}");

button3->setIconSize(QSize(30, 30));

button3->installEventFilter(this); //安装事件过滤器

}bool test::eventFilter(QObject *obj, QEvent *event)

{switch (event->type()) {caseQEvent::HoverEnter:if(obj ==button3)

button3->setIcon(QIcon(":/listBar_Icon/add_hover.png"));break;caseQEvent::HoverLeave:if(obj ==button3)

button3->setIcon(QIcon(":/listBar_Icon/add.png"));break;caseQEvent::MouseButtonPress:if(obj ==button3)

button3->setIcon(QIcon(":/listBar_Icon/add_pressed.png"));break;caseQEvent::MouseButtonRelease:if(obj ==button3)

button3->setIcon(QIcon(":/listBar_Icon/add_hover.png"));break;default:break;

}return QWidget::eventFilter(obj, event);

}

第二种和第三种方法的使用:

#include "mypushbutton.h"#include"mybutton2.h"#include#include#include

int main(int argc, char *argv[])

{

QApplication a(argc, argv);MyPushButton*button2 = newMyPushButton();

button2->setWindowFlag(Qt::FramelessWindowHint);

button2->setAttribute(Qt::WA_TranslucentBackground);

button2->setFixedSize(60, 30);

button2->setFlat(true);

button2->setUpIcon(QIcon(":/listBar_Icon/normal.jpg"), QIcon(":/listBar_Icon/pressed.jpg"), QIcon(":/listBar_Icon/released.jpg"));

button2->setStyleSheet("QPushButton{border:0px solid rgba(0, 0, 0, 255);}");

button2->setIconSize(QSize(60, 30));

QObject::connect(button2,MyPushButton::clicked,

[]()

{

qDebug()<

});

button2->show();

MyButton2*button3=newMyButton2();

button3->setWindowFlag(Qt::FramelessWindowHint);

button3->setAttribute(Qt::WA_TranslucentBackground);

button3->setFixedSize(60, 30);

button3->setStyleSheet("QPushButton{border:0px solid rgba(0, 0, 0, 255);}");

QObject::connect(button3,MyButton2::destroyed,

[]()

{

qDebug()<

});

button3->show();returna.exec();

}

果需要在按钮中添加文字,那么只能使用后面两种方法。 QLabel和QPushButton差不多,不再多说。

http://www.lbrq.cn/news/1405225.html

相关文章:

  • 怎么看网站开发者页面/百度关键词搜索怎么弄
  • 永久网站建设/爱站seo查询
  • 想买个服务器做网站/网络黄页推广软件哪个好
  • 潍坊营销型网站建设/中国销售网
  • 国际大型门户网站/外贸定制网站建设电话
  • 网站开发工作程序怎么写/国外网站推广公司
  • 广州荔湾做网站公司/百度搜索关键词规则
  • 用自己的电脑做网站需要备案吗/百度一下百度官网
  • 手机自助建站永久免费/百度搜首页
  • 怎么下载字体到wordpress/seo 优化 工具
  • 网站没有域名设置/企业品牌营销推广
  • 网站建设适合手机/关于搜索引擎的搜索技巧
  • 做图片详情网站/杭州百家号优化
  • 怎样自己做网站/廊坊百度推广seo
  • 可以加外链的网站/整合营销传播案例分析
  • 哪个网站是教人做淘宝客的/宝鸡seo外包公司
  • 网站营销推广怎么做网络营销推广/重庆seo论坛
  • 全国企业营业执照查询/网络营销乐云seo
  • 男女做污视频在线观看网站/saas建站
  • 唐山做网站公司哪家好/上海平台推广的公司
  • java做商城网站可以吗/网站测速工具
  • 一个网站做几个关键词/网站优化推广费用
  • 怎么利用招聘网站做薪酬调查/cba排名最新排名
  • 怎么做公司网站竞价/网络推广代理怎么做
  • joomla做类似赶集网的网站/网站注册步骤
  • 做网站1天转多钱/广州百度搜索优化
  • 织梦珠宝网站模板/软文营销步骤
  • 网站翻译建设/什么是百度竞价排名
  • 手机如何免费做网站/深圳优化服务
  • asp access 手机站 用于做微网站/竞价外包托管费用
  • 机器学习之决策树:从原理到实战(附泰坦尼克号预测任务)
  • 智慧校园中IPTV融合对讲:构建高效沟通新生态
  • JVM垃圾回收(GC)深度解析:原理、调优与问题排查
  • 深度学习必然用到的概率知识
  • AI行业应用深度报告:金融、医疗、教育、制造业落地案例
  • 【牛客刷题】求四个数的最小公约数:两种高效解法详解(枚举法和最大公约数法)