는 여기 아이콘을 정의하기 위해 지금까지 가지고있는 코드 :Python과 GTK를 사용하여 사용자 정의 텍스트와 투명한 배경으로 상태 아이콘/시스템 트레이 아이콘을 만드는 방법은 무엇입니까?
icon_bg = gtk.gdk.pixbuf_new_from_file('gmail.png')
w, h = icon_bg.get_width(), icon_bg.get_height()
cmap = gtk.gdk.Colormap(gtk.gdk.visual_get_system(), False)
drawable = gtk.gdk.Pixmap(None, w, h, 24)
drawable.set_colormap = cmap
gc = drawable.new_gc()
drawable.draw_pixbuf(gc, icon_bg, 0, 0, 0, 0, w, h)
drawn_icon = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, w, h)
drawn_icon.get_from_drawable(drawable, cmap, 0, 0, 0, 0, w, h)
icon = gtk.status_icon_new_from_pixbuf(drawn_icon)
이는 아이콘으로 된 png를 얻기 위해 작동하지만,이 개 지역에서 부족하다. 첫째, 투명성이 작동하지 않습니다. 내가 투명 배경을 중심으로 이미지와 PNG로 22x22를 사용하는 경우,이 같은 내 안에 나타나 다른 활성 아이콘의 섹션으로 끝낼 :
http://i237.photobucket.com/albums/ff311/Raugturi/22x22_image_with_transparency.png
가 강탈 선택하는 아이콘이 다소이다 무작위. Dropbox 아이콘의 일부인 경우도 있고, NetworkManager 애플릿 인 경우도 있습니다. 내가 대신이 코드를 사용하는 경우
는 :
icon_bg = gtk.gdk.pixbuf_new_from_file('gmail.png')
w, h = icon_bg.get_width(), icon_bg.get_height()
cmap = gtk.gdk.Colormap(gtk.gdk.visual_get_system(), False)
drawable = gtk.gdk.Pixmap(None, w, h, 24)
drawable.set_colormap = cmap
gc = drawable.new_gc()
drawable.draw_pixbuf(gc, icon_bg, 0, 0, 0, 0, w, h)
drawn_icon = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, 22, 22)
drawn_icon.get_from_drawable(drawable, cmap, 0, 0, 3, 6, w, h)
icon = gtk.status_icon_new_from_pixbuf(drawn_icon)
만 제거 투명 가장자리 16x11 인 이미지를, 제가 끝낼 것은 이것이다 :
http://i237.photobucket.com/albums/ff311/Raugturi/16x11_image_positioned_in_middle.png
어떻게 나는 다른 아이콘으로부터 물건을 끌어 들이지 않는 첫 번째 투명 블록으로 끝나야합니까?
두 번째 문제는 아이콘으로 변환하기 전에 이미지에 쓸 수있는 기능이 필요합니다. draw_glyphs를 사용해 보았는데 대신 Pango 레이아웃/컨텍스트를 사용해야한다고했습니다. 불행히도 내가 찾을 수있는 모든 Pango 자습서는 상태 아이콘이 아닌 실제 창을 처리합니다. Pango를 위해이 튜토리얼에 적용 할 좋은 튜토리얼이 있는가? (그리고 또한 내가 찾은 모든 폰트가 어떤 폰트로 쓰이는지 알려주는 방법에 대한 설명이 부족할 것이다. 그것없이 아무것도).
참고 : 실제 이미지가 부족하고 작동 링크가 하나 밖에 없기 때문에 유감스럽게도 저의 평판이 좋지 않아 스팸 방지 기능입니다.
Google 서비스를 확인하고 읽지 않은 메시지 수를 상태 아이콘에 표시하는 애플리케이션을 작성 중이므로 한 눈에 얼마나 많은 메시지가 있는지 확인할 수 있습니다. 지금까지 내가 아는 한 두 가지 옵션 만 제공합니다 : 아이콘에 쓰거나 숫자의 이미지를로드하십시오. 나는 가능한 한 사용자가 폰트를 커스터마이징 할 수 있도록 작성하고 싶다. – Raugturi
나는 해결책을 생각해 냈지만 오늘 밤까지는 시험 할 수 없을 것이라고 생각한다. 배경 이미지를로드하고, 쓸 수 있어야하고, 임시 파일에 저장 한 다음 그 위에 set_from_file을 사용할 수 있어야합니다. – Raugturi
Raugturi, 결국 솔루션을 찾았습니까? 지금 당장 똑같은 것을 시도해. – halfdan