-
2021-04-28 23:27:19
原文链接:
https://www.fearlazy.com/index.php/post/284.html
以QPushButton为例,设置按钮的图标可以使用函数setIcon,设置图标大小使用setIconSize。
测试代码:
效果:
也可以直接使用样式表的方式:
qproperty-icon和qproperty-iconSize分别表示图标属性和图标大小属性,设置后显示效果同上。
这种方式有个缺点就是不能为不同的状态(如按下按钮)设置不同的图标,而且也没办法设置图标与文字的间距。
在不需要显示文字的情况下,可以使用image、background-image和border-image来设置图标,如果需要显示文字的话可以在按钮上
添加一个布局,布局中添加两个label分别表示图标和文字,这种方式比较灵活,能更好的控制图标和文字的大小间距等,缺点就是太麻烦了。
特别说明:
若后续发现文章中的错误或者对文章内容补充将只在我的个人博客中进行更新。我的博客主要记录编程中学到的知识、踩过的坑以及一些莫名其妙的想法。
欢迎来踩我的个人博客: fearlazy。
更多相关内容 -
Qt设置按钮的图标
2021-02-16 20:15:104、设置按钮图标代码如下: QIcon icon_playButton(":/new/icon/res/bfzn_004.png"); m_playButton->setIcon(icon_playButton); m_playButton->setIconSize(QSize(45,45)); m_playButton->setFlat(true); //设置...转自:https://blog.csdn.net/qq_38313246/article/details/81866604
https://blog.csdn.net/weixin_44100850/article/details/90521859
一、使用QIcon类
QIcon icon; icon.addFile(tr("res/icon/wall.png")); ui->toolButton->setIcon(icon);
二、使用QPixmap和QBitmap类
QPixmap icon1(tr("res/icon/wall.png")); ui->toolButton->setIcon(icon1); ui->toolButton->setFixedSize(icon1.size());
三、将所需要用到的图片添加到资源文件里,然后给按钮添加图标
1、右击项目文件夹选择添加新文件——选择Qt——Qt resource file
2、填写好name后点下一步、完成,然后双击项目中生成的.qrc文件,点击添加,选择添加前缀
3、添加好前缀之后就可以添加文件了,选择需要添加的文件,这里需要把需要添加的文件先放到项目目录下的一个文件夹下,添加好之后保存,就能在资源浏览器中看到了,也就能在代码中引用了。
4、设置按钮图标代码如下:
QIcon icon_playButton(":/new/icon/res/bfzn_004.png"); m_playButton->setIcon(icon_playButton); m_playButton->setIconSize(QSize(45,45)); m_playButton->setFlat(true); //设置图标按钮为透明 m_playButton->setStyleSheet("background-color:rgba(0,0,0,0)"); m_playButton->setFocusPolicy(Qt::NoFocus); //去除按钮按下时的阴影
注意:需要把按钮上面的文字去掉,要不然的话添加图标后会是左边图标,右边文字的效果
四、设置图标按钮为透明的几种方法
1)setFlat(true)
2)找到按钮属性里最下面的flag属性,勾选对话框(其实与1)一样的意思)
3)在按钮stylesheet属性里输入“background-color:transparent”或者“border:none”等4)setStyleSheet(“background-color: rgba(0, 0, 0, 0)”);
或 setStyleSheet("background-color:transparent");
-
Qt 无边框界面 自绘图标 透明图标按钮 可设置背景状态颜色,图标颜色 最小化最大化关闭按钮等等
2020-07-25 14:56:30最近发现酷狗的新版exe软件挺好的,里面使用的全是自定义的按钮,所以自己写了个,大家有兴趣可以下载来看看。按钮类型目前有:最小化,最大化,关闭,更换皮肤,更多信息,搜索,下载,向左,向右,向上,向下,... -
Qt设置美观按钮
2021-05-13 08:42:18一、简述在上一篇Qt 之 去除窗口部件被选中后的焦点虚线框中,我们为了去除焦点虚线框,给按钮的样式加上了如下的样式。QPushButton{background:red;border:0px;}这样导致鼠标点击按钮之后没有按下凹陷的反馈感觉是...一、简述
在上一篇 Qt 之 去除窗口部件被选中后的焦点虚线框 中,我们为了去除焦点虚线框,给按钮的样式加上了如下的样式。QPushButton
{
background:red;
border:0px;
}
这样导致鼠标点击按钮之后没有按下凹陷的反馈感觉是没有点击上去似的。
上面两个按钮加上了border:0px;去除了边框,点击之后没有凹陷的感觉,而后两个按钮没有加上border:0px;,保留了按钮原始的点击凹陷的感觉,但是为了去除矩形虚线框,我们不得已加上了border:0px;去除了边框,保留了背景色样式。这一篇中我们将自定义按钮 在鼠标 悬浮、按下、松开后的效果。
二、代码之路
关于自定义按钮 在鼠标 悬浮、按下、松开后的效果,其实代码很简单,主要是需要自己设计按钮的效果图。/*注册账户图标*/
// 正常状态下显示的效果
QPushButton#pButtonRegistAccount
{
border-p_w_picpath:url(:/Resources/registeraccount.png);
}
// 鼠标悬浮状态下显示的效果
QPushButton#pButtonRegistAccount:hover
{
border-p_w_picpath:url(:/Resources/registeraccount_hover.png);
}
// 鼠标按下状态下显示的效果
QPushButton#pButtonRegistAccount:pressed
{
border-p_w_picpath:url(:/Resources/registeraccount_pressed.png);
}
/*忘记密码图标*/
QPushButton#pButtonForgetPassword
{
border-p_w_picpath:url(:/Resources/forgetpassword.png);
}
QPushButton#pButtonForgetPassword:hover
{
border-p_w_picpath:url(:/Resources/forgetpassword_hover.png);
}
QPushButton#pButtonForgetPassword:pressed
{
border-p_w_picpath:url(:/Resources/forgetpassword_pressed.png);
}
这里我们需要准备几张图片:
运行效果图:
资源图片:
效果图:
注意QPushButton
{
border-p_w_picpath:url(:/Resources/registeraccount_hover.png);
}
如果我们使用如上样式,将会对所有的QPushButton进行设置样式,如果只需要给某一个则用以下格式:
“QPushButton#” + “按钮名称(objectName)”。
我们主要用到了按钮的三种状态,分别是鼠标悬浮、按下、松开 。// 正常状态或者鼠标松开按钮的状态
QPushButton
{}
//鼠标悬浮在按钮上的状态
QPushButton:hover
{}
//鼠标按下按钮时的状态
QPushButton:pressed
{}
// 我们只需在不同状态下的{}中填写不同的样式,在我们对按钮进行操作时就会显示不同的样式效果。
尾
以上只是简单地介绍了对按钮设置的一些样式,其他控件的样式可以查看Qt的文档。
下面是我模仿QQ做的一个界面。欢迎大家随时交流哈 O(∩_∩)O!
-
QT 为按钮添加图标并设置透明
2019-05-24 21:44:13qt中自带的控件有时不能满足我们的需求,这时可以自定义一些控件,最简单的是将按钮变成我们想要的图标,在尝试的过程中有一个按钮的阴影问题,我的想法是添加图标后就完全看不到阴影了,找了很多办法才解决,下面...QT 为按钮添加图标并设置透明
qt中自带的控件有时不能满足我们的需求,这时可以自定义一些控件,最简单的是将按钮变成我们想要的图标,在尝试的过程中有一个按钮的阴影问题,我的想法是添加图标后就完全看不到阴影了,找了很多办法才解决,下面就是过程:
一、为按钮添加图标
我的方法是将所需要用到的图片添加到资源文件里,然后给按钮添加图标。
1、添加资源文件
建好工程后,点击“File”->“New File or Project …”,在“Files and Classes” 下面选择“Qt”,然后在选择右面的“Qt Resource File”:
点击确定,会提示文件命名和所要添加到的项目,这里我命名为“resource”,添加到"icon_practice.pro"项目里面,可以看到在项目的文件列表中出现了一个"resource.qrc"的文件。
右键单击"resource.qrc",选择"Open in Edit",然后点击下方的"Add"按钮,选择"Add Prefix"(相当于添加一个分类),并命名,此处我命名为image 。
下一步添加图片,需要下载一些".ico"后缀的图片,我下载了几个图片,放在icon文件夹里,然后把icon文件夹放在我的"icon_practice.pro"项目所在文件夹里。准备好以后,点击"Add"按钮,选择"Add Files",找到文件,添加进去。
2、给按钮添加图标
在ui设计界面添加一个按钮,大小设置为90*90,注意把按钮上面的文字去掉,要不然的话添加图标后会是左边图标,右边文字(需要那样的效果的话可以试试)。
我使用了代码方式添加图标:minnwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QIcon> //注意包含头文件 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QIcon myicon; //新建QIcon对象 myicon.addFile(tr(":/image/icon/1.ico")); //让QIcon对象指向想要的图标 ui->pushButton->setIcon(myicon); //给按钮添加图标 ui->pushButton->setIconSize(QSize(90,90));//重置图标大小 } MainWindow::~MainWindow() { delete ui; }
结果如图:
可以看到,按钮上显示了图标。二、设置图标按钮为透明
从网上看设置图标透明的方法有好几种,比如:
1)setFlat(true)
2)找到按钮属性里最下面的flag属性,勾选对话框(其实与1)一样的意思)
3)在按钮stylesheet属性里输入“background-color:transparent”或者“border:none”等
4)setStyleSheet(“background-color: rgba(0, 0, 0, 0)”);
大致是这样的方法,效果如图:
可以看到此时显示按钮原来的实体的颜色没了,但是出现了原来按钮大小的阴影,其实如果我们再添加一个按钮,运行后点击后来添加的按钮,会发现图标的阴影没有了,也就是说上面的方法部分实现了静态时的背景透明:
而再次点击图标按钮时候,阴影还是存在!这对于追求完美的我们来说是不能接收啊!!怎么解决呢?
最后试了半天,原来是找的属性不对,用了下面的方法就可以实现目的了:mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QIcon> //注意包含头文件 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QIcon myicon; //新建QIcon对象 myicon.addFile(tr(":/image/icon/1.ico")); //让QIcon对象指向想要的图标 ui->pushButton->setIcon(myicon); //给按钮添加图标 ui->pushButton->setIconSize(QSize(90,90));//重置图标大小 ui->pushButton->setStyleSheet("background-color:rgba(0,0,0,0)"); ui->pushButton->setFocusPolicy(Qt::NoFocus); } MainWindow::~MainWindow() { delete ui; }
之前之所以老是有阴影是涉及到Qt控件的聚焦策略问题,pushbutton默认的聚焦策略是StrongFocus,我们要把它改成NoFocus就行了,这个也可以在ui界面的控件属性选项里面改。
上面程序里的ui->pushButton->setStyleSheet("background-color:rgba(0,0,0,0)");
这句代码也可以改成
ui->pushButton->setStyleSheet("background-color:transparent");
或者在stylesheet属性里面添加相应约束,但注意不能使用 1)和 2)的方法,否则,在点击按钮时,虽然没显示阴影,但是把原来的按钮都显示出来了(还不如显示阴影呢~)。最后的结果就是这样:
就算点破屏幕也再不会有阴影啦!!! -
qt 自定义按钮图标
2021-07-05 14:09:31按钮有文本、背景、图标可设置。 1、设置背景直接通过setStyleSheet样式设计即可 如: ui->pushButton_3->setStyleSheet("QPushButton{background-color:rgb(255,182,193);}" "QPushButton:hover{... -
qt 设置按钮大小_Qt官方示例双向按钮
2020-11-16 11:11:04"双向按钮"示例演示了如何使用状态机框架实现简单的状态机,该状态机在单击按钮时切换当前状态。 应用程序的main()函数从构造应用程序对象,按钮和状态机开始。intmain(intargc,char**argv){QApplicationapp(argc... -
Qt中按钮图标的设置、按钮按下时浮动效果设置 以及 QT的EXE程序图标设置
2020-12-24 09:29:231 Qt中按钮图标的设置 QIcon myicon1; myicon1.addFile(tr(":/image/Resource/new.png")); ui->new_btn->setIcon(myicon1); ui->new_btn->setIconSize(ui->new_btn->size()); //ui.btn_calib... -
QT5 设置按钮图标自适应大小
2018-01-05 15:34:43QPushButton *button = new QPushButton(this); button->setGeometry(50, 50, 100, 50); button->setStyleSheet("border-image:url(:/timg.jpg)"); connect(button, &QPushButton::pressed, [=](){ ... -
QT的按钮设置文字在图标的下方
2020-12-12 17:42:18QT的按钮设置文字在图标的下方 可以使用QToolButton,设置按钮的样式为Qt::ToolButtonTextUnderIcon(文字在图标下方)。 setToolButtonStyle(Qt::ToolButtonTextUnderIcon); ui->OnlineBt->setText("联机");... -
在Qt中设置程序图标的方法介绍
2022-06-16 19:22:03本文主要在 Qt 中设置程序图标的方法。说明:在 Windows 操作系统中,程序图标一般会涉及三个地方,以文件搜索软件“everything”为例,程序图标分别为:下面介绍使用 Qt 编写 Windows 桌面应用程序时,上面这三个... -
QT的按钮设置图标及设置透明
2020-12-12 17:20:26QT的按钮设置图标及设置透明 一、设置按钮的图标显示 ui->Bt->setIcon(QIcon(":/images/联机.png")); ui->Bt->setIconSize(QSize(150,150)); 二、设置按钮为透明 1)可以在按钮的属性找到flat打上勾 ... -
VS中给qt按钮添加图标
2021-08-05 17:28:09在网上找了好多资料,发现都用不了,搞...2.在qt中创建一个按钮,点击该按钮,可以在右边的属性编辑器里面修改icon,点击选择资源即可找到刚刚添加到vs里的图片资源,选择好之后点击ok即可 3.额外需求,可以通过修改to -
Qt通过qss设置按钮图标样式
2020-02-26 10:57:07closeButton = new QPushButton(); closeButton->setStyleSheet("QPushButton{image:url(:/xx/Resources/blackclose.png);background-color:transparent;}" "QPushButton:hover{image:url(:/xx/Resources/bl.... -
Qt之按钮左边图标右边文字
2021-11-30 15:55:10二、在Qt中有两种方式可以实现需求 方式一:代码方式 1.核心代码 ui->pushButton->setIcon(QIcon(":/buttonIcon.png")); ui->pushButton->setLayoutDirection(Qt::LeftToRight); ui->pushButto -
Qt实现动画按钮(多图动画).rar
2021-05-08 11:58:195.保证无毒 1.简单,方便,实用 3.实例可以自行改用 1.如有非法,本人无法律责任,由改动代码人负责! 8.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用! 4.如果需要联系我请看左边数字!... -
Qt设置按钮背景图片
2020-01-01 02:32:34用qss可以修改按钮的样式,但是一些复杂的图形用图片来做显示效果更好,...//设置按钮图标,按钮的默认大小是 30*30,可以自己指定 void setButtonImage(QPushButton *button, QString image) { QPixmap pixmap(im... -
关于qt使用qt designer设置好工具按钮图标但运行时不显示的问题
2021-03-13 08:09:16关于qt使用qt designer设置好工具按钮图标但运行时不显示的问题 这种情况分为两种 编译时不能显示图标 打包好添加dll文件后不能显示图片 对于第一种情况 点击creator左上角的构建,点击执行qmake即可 对于第二种... -
QT设置悬浮按钮
2022-02-11 11:31:56//如果中间地图底盘发生了大小变化 if(target==ui->widget_6&... //将其地图子控件设置为一样大小 ui->widget_5->resize(resizeEvent->size()); } //如果中间地图底盘发生了移动 if(target -
Qt中如何给按钮加图标(背景图片)
2019-02-24 09:00:06Qt中如何给按钮加图标(背景图片) 1. Qt Designer中拖入一Tool Button 2. 选择图标的图片放入工程目录下,如放在Resources内 3. 双击工程的Resource Files下的qrc文件,如图 4. 在弹出的窗口中,... -
Qt Qss 设置QPushButton图标和背景
2022-05-15 16:50:07Qt QSS通过background-repeat和background-position设置背景图片位置 -
qt 设置按钮大小_QT使用教程(四)之初体验
2020-11-20 20:25:05在读本篇内容之前建议先从QT使用教程(一)(二)(三)读起,初体验1:Qt Creator界面认识启动 Qt Creator,出现下图界面:Qt Creator 的界面很简洁。上方是主菜单栏,左侧是主工具栏,窗口的中间部分是工作区。根据设计... -
Qt设置按钮的icon
2020-06-06 15:32:23方法一: 通过ui编辑界面中如下设置,选择资源即可实现,默认文本在友,图片在左。可以通过更改layoutDirection:RightToLeft,可以文本在左,图片在右。 方法二: 设置样式表 -
Vs环境下QT中按钮添加图标
2018-05-24 15:31:32博主是一个qt小白,因为项目需求,一点一点摸索,记下这些也是为了怕自己忘记。首先要添加资源文件,把...在Widget Box栏中拖出一个Tool Button,双击写上你要写的按钮名称。在属性编辑框点击icon右侧下拉选择资源选... -
Qt:图标按钮
2019-03-31 21:25:09Qt自带的按钮QButton,基础而丑陋,能够满足功能需求,而无法满足审美需求,因此,在GUI开发的时候,很多时候要定制自己的图标按钮,其具体操作十分简单,通过Qt Designer即可。 第一步,打开VS项目管理器中的Qt... -
用pyqt5 给按钮设置图标和css样式的方法
2020-12-31 19:43:42设置图标 self.pushButton.setIcon(QIcon(sure.png)) 设置css样式 self.pushButton.setStyleSheet(QPushButton{color:black} QPushButton:hover{color:red} QPushButton{background-color:lightgreen} ... -
Qt的QPushButton设置图标,设置一组互斥键
2021-05-25 11:56:59//注意::PortPath/Resource/skin/1.jgpg路径需要添加在工程.qrc路径中,<file>Resource/skin/1.jpg</file> btn->setIconSize(QSize(20,20)); 2、QPixmap pixmag; pixmag.load(":PortPath/... -
linux+qt+按钮图标,QPushButton按钮
2021-05-18 07:27:00需要 from PyQt5.QtWidgets import QPushButton继承 QObject-->...QPushButton创建按钮控件:QPushButton() 创建一个无父控件的按钮控件QPushButton(parent) 创建控件的同时, 设置父控件QPushButton(te... -
QT设置按钮QPushButton上图片加文字
2022-03-03 10:16:58如何把一个Button的图标设置为图片加文字呢? 首先,我们在QTdesigner上放置一个Qpushbutton,按钮名btnLive,并设置其样式表: QPushButton { background-color:#1E90FF;//背景蓝色 border-radius: 10px; //圆角... -
QToolButton设置图标位置
2021-05-21 16:52:23QToolButton通过left,top等方式设置的图标,紧靠按钮边缘,视觉效果并不好。 通过网上查找资料和摸索,得出了可行的一种方式,设置按钮的margin和padding; 我使用的图标尺寸在20*20以内。 按钮上有4个文字,加上...