import sys
import os
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')
path = os.path.join(os.path.dirname(sys.modules[__name__].__file__), 'icon_1.png')
self.setWindowIcon(QIcon(path))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
I also use a relative path like
self.setWindowIcon(QIcon('icon_1.png'))
I am sure icon_1.png is at the directory.But the result is always like that:

So where did I make some wrong? I am a newbie in both PyQt and StackOverflow and English... Hope the post is valid.
Thank you in advance.
setWindowIcon is a method for QApplication, not for QWidget and friends
Here is a working version of your test script:
import sys
import os
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(300,300,300,220)
self.setWindowTitle('Icon')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
path = os.path.join(os.path.dirname(sys.modules[__name__].__file__), 'icon_1.png')
app.setWindowIcon(QIcon(path))
ex = Example()
sys.exit(app.exec_())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With