Найти - Пользователи
Полная версия: Tkinter: иконка у окна Toplevel
Начало » GUI » Tkinter: иконка у окна Toplevel
1 2
The gray Cardinal
Не получается установить иконку у окна Toplevel. Может, заработался и не вижу очевидного, какая-то глупость:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
MainWindow = Tk()
import os
if os.path.isfile('/home/alex/Job/favicon.ico'):
MainWindow.iconbitmap('/home/alex/Job/favicon.ico')
MainWindow.mainloop()
Выдаёт:
Traceback (most recent call last):
File “/tmp/py7476gED”, line 24, in <module>
MainWindow.iconbitmap('/home/alex/Job/favicon.ico')
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 1515, in wm_iconbitmap
return self.tk.call('wm', ‘iconbitmap’, self._w, bitmap)
TclError: bitmap “/home/alex/Job/favicon.ico” not defined
В выводе “line 24” только потому, что здесь я убрал закомментирорванные строки.
Причём под Windows аналогичный код срабатывает без проблем (вызов метода iconbitmap с указанием пути строкой).
shiza
Если я не ошибаюсь, TK под linux нет поддержки ico, а иконку можно повесить xbm (X11 image - только монохромные).
igor.kaist
Есть еще у топлевела в запасе какие то методы в названии которых есть icon. Нужно пробовать..
The gray Cardinal
Что-то не найду подходящих методов, а с xbm и gif та же ошибка.
Подскажите пожалуйста, что в принципе можно сделать с иконкой окна под Linux.
gmorgunov
Привет
Подскажите пожалуйста, что в принципе можно сделать с иконкой окна под Linux.
Вот иконка, и тот же рисунок в окне:
#!/usr/bin/python
# -*- coding: koi8-r -*-
import sys
from PyQt4 import QtGui
class MyWindow(QtGui.QWidget):
def __init__(self,*args):
QtGui.QWidget.__init__(self,*args)
self.setWindowTitle("Picture")
# иконка поддерж. GIF,BMP,XBM,XPM,PNM,JPEG,MNG,GIF,PNM,PBM,PGM,PPM
icon =QtGui.QIcon("/home/mike/Desktop/lub.gif")
self.setWindowIcon(icon)
def paintEvent(self, event=None):
painter = QtGui.QPainter(self)
# изображение в окне
image = QtGui.QImage("/home/mike/Desktop/lub.gif")
painter.drawImage(0,0,image)

app = QtGui.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
Но эта Qt - ОБЛО,ОГРОМНО и ЛАЯЙ :)


с уважением gmorgunov
gmorgunov
Чего-то код расползся ? Если что - подровняй icon… self… image… по def .
The gray Cardinal
gmorgunov
Вот иконка, и тот же рисунок в окне:
Спасибо, это работает. Но мне была интересна Tkinter.
shiza
Там под линкус есть хитрость. Надо ставить @ перед названием файла. =)
http://mail.python.org/pipermail/python-list/2004-January/245332.html

погугли.
The gray Cardinal
shiza
Там под линкус есть хитрость. Надо ставить @ перед названием файла.
Да, спасибо, это работает.
Однако, пока не вижу способа использовать цветные иконки под Linux…
shiza
По той-же ссылке, третий способ. Отрисовать картинку поверх окна.
Но там тоже правда не все так прозрачно… %)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB