文档章节

PyQT5 在osx上设置icon的问题

FalconChen
 FalconChen
发布于 2017/03/12 11:31
字数 379
阅读 27
收藏 0
本文通过 OscPress 同步至oschina,获取最新版本和更好的阅读体验请查看原文:
http://blog.cellmean.com/?p=1324

最近在学习PyQT5,参考 http://www.cnblogs.com/archisama/p/5442071.html 的教程,教程翻译自:zetcode , 刚开始就遇到了一个奇怪问题,就是在设置应用的icon的时候,在osx 10.11.6系统,按照例程死活显示不出来图标。

例程是这样的:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial 

This example shows an icon
in the titlebar of the window.

author: Jan Bodnar
website: zetcode.com 
last edited: January 2015
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('web.png'))        
    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Google搜索了一下,发现在 stackoverflow 也有人遇到同样的问题。如果按采用的答案也没有成功,但确实是要把这个方法放到Qapplication实例,然后再加上第二个哥们的回答,在 Qicon 里再调用一次Qpixmap ,并且传入一个ico格式的图片才能成功。完整代码如下:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import sys,os

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon,QPixmap


class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Hello Icon')
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    path = os.path.join(os.path.dirname(sys.modules[__name__].__file__), 'good.ico')
    app.setWindowIcon(QIcon(QPixmap(path)))
    ex = Example()
    sys.exit(app.exec_())

这样就显示出来了。

Snip20170312_121

 


感谢阅读本文,欢迎访问 异想录 获取更多内容或 查看原文

© 著作权归作者所有

共有 人打赏支持
FalconChen
粉丝 61
博文 51
码字总数 25688
作品 0
深圳
高级程序员
OSX malware and exploit collection (~100 files) + links and resources for OSX malware analysis

此文为关于MAC OSX系统的所有攻击脚本和溢出代码的收藏集。附带资源链接和相关讲解文档~mark下 'Tis the season. Here is a nice collection of ~100 Mac OS malware and Word document expl...

Cnlouds
2013/11/26
0
2
Mac OSX操作系统安装和配置Zend Server 6教程(1)

作为web开发人员,应该熟悉掌握各种系统下安装和配置web服务器与站点的技术。 随着越来越多的开发人员选择Zend Server服务器,慧都推出了在Mac OSX系统安装和配置Zend Server 6教程,此教程将...

kouxunli1
2013/10/15
0
0
macOS 开启 VNC 远程桌面和 SSH 服务

macOS 开启 VNC 远程桌面和 SSH 服务 准备用 macOS 来做为服务器,既然是服务器,那不可缺少的是远程管理,实际上 macOS 自带 VNC 远程桌面和 SSH 服务,只是默认没有开启,下面我们来开启它...

exchen
08/14
0
0
MacOS和Linux内核的区别

导读 有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我...

问题终结者
07/20
0
0
WebKit 继续泄密,macOS 10.14 将支持深色模式

今天早些时候,根据 WebKit 的代码我们发现,iOS 12 可能会继续支持 iPhone 5s。现在,又有国外的朋友在 WebKit 代码中发现了其他信息。首先,我们了解下 WebKit 到底是什么。Webkit 是一种渲...

达尔文
04/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ std::function 和 std::bind

C++11提供了std::function和std::bind两个工具,用于引用可调用对象。这些可调用对象包括 普通函数,Lambda表达式,类的静态成员函数,非静态成员函数以及仿函数等。引用可调用对象,可以用于...

yepanl
53分钟前
1
0
python:可迭代对象的索引

关于 python的range的用法: 注意是[ 开始,结束)的半开区间,不包括结束 http://www.runoob.com/python/python-func-range.html import collectionsfrom collections import Iterable字符串......

Oh_really
今天
2
0
docker-compose ,docker-stack

1.例子 version: "3"services: php: image: registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 ports: - "38080:80" networks: - my_php_mysql volum......

chenbaojun
今天
3
0
SQL_Server2000示例数据库NorthWind的分析(转)

SQL_Server2000示例数据库NorthWind的分析 表名:Categories(食品类别表) 表结构: 字段名称 数据类型 长度 允许为空 CategoryID(主键) int 4 否 CategoryName nvarchar 15 否 Description ...

QQZZFT
今天
1
0
laravel 5.5 Session store not set on request.

laravel 5.5 数据存入session,会出现Session store not set on request.错误。查了下laravel 5.5将session放到global middleware中,需要laravel的文件 ./app/Http/Kernel.php中的加上一句:...

MichaelShu
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部