您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:PyQt 5 设置Logo图标和Title标题的操作

51自学网 2021-10-30 22:51:56
  python
这篇教程PyQt 5 设置Logo图标和Title标题的操作写得很实用,希望能帮到您。

从现在开始,我会把一些学习Python的笔记记录下来,方便自己,也方便别人。到时候看一下如果篇章足够,我单独把它们整理成专栏。

最近在学习Python GUI开发,之前一直都是做的C++ GUI开发,用到的大部分是框架,主要有MFC、DuiLib和Qt。哦,如果想省时省力,可以使用Qt WebEngine+H5开发界面哦,只有你Web前端基础不错的话。

使用PyQt 5开发界面,真的很方便,不用写太多代码,20行左右就可以出现简单的带图标GUI,不信你可以看看下面代码:

import sysfrom PyQt5.QtGui import QIconfrom PyQt5.QtWidgets import QApplication, QWidget class Logo(QWidget): def __init__(self):  super().__init__()  self.initUI()  def initUI(self):  # self.setGeometry(300, 300, 300, 220)  self.setWindowTitle('MyLogo')  # self.move(300, 300)  self.setWindowIcon(QIcon('Logo.png'))  self.show() if __name__ == "__main__": app = QApplication(sys.argv) ex = Logo() sys.exit(app.exec_())

Logo.png图片是这样的:

运行结果:

这是我按照教程上面写的代码,可是图标处并没有被修改为自己想要的效果,还是默认的图标。

后来我想了想,应该是图片格式的问题,一般我们使用做图标的图片格式为icon,所以我就对png格式进行转换,在线转换的网站有:

https://www.easyicon.net/covert/

http://www.bitbug.net/

转换完毕之后,就变成icon格式了,把名字修改为Logo.ico,然后扔到代码目录下面,代码修改:

self.setWindowIcon(QIcon('Logo.ico'))

再次运行:

现在就是自己想要的结果。

有时你按照教程敲代码时,可能没有出现预期的效果,那么可能是自己的一些资源出现了问题,比如我这次出现的格式问题,那么你应该多做一些项目,到时候就触类旁通了。

补充:PyQt5 QLabel改变字体和设置背景图片

使用setStyleSheet方法修改得到自己想要的字体,大小,颜色

self.lab = QLabel("标签字体大小颜色", self)self.lab.setGeometry(50,50,300,200)    self.setStyleSheet("QLabel{color:rgb(225,22,173,255);font-size:50px;font-weight:normal;font-family:Arial;}")

color:rgb()中的四个参数,前三个是控制颜色,第四个控制透明度

font-size:设置字体大小

font-weight:bold可设置字体加粗

font-family:选择自己想要的颜色

setStyleSheet同时可以设置标签背景图片,但无法使图片与标签大小匹配

我使用QPixmap来设置标签背景图片

self.lab = QLabel('标签背景图片', self)self.lab.setGeometry(50,50,300,200)pixmap = QPixmap('F:/A_code/PyQT_Demo//1.png')self.lab.setPixmap(pixmap)

但是这个时候我们添加的背景图片依然无法和标签大小相匹配

这需要修改一下我们的实例化QPixmap部分

pixmap=QPixmap('F:/A_code/PyQT_Demo//1.png').scaled    (self.lab.width(), self.lab.height())

或者修改lab的属性: self.lab.setScaledContents(True)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。


解决PyQt5 无边框后窗口的移动问题
Python locust工具使用详解
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。