Pergunta

Eu estou escrevendo um programa básico em python usando o módulo PyQt4. Eu gostaria de ser capaz de usar ícones do meu tema do sistema para coisas como o ícone do diálogo preferência, mas não tenho idéia de como fazer isso. Então, minha pergunta é, como você começa a localização de um ícone, mas certifique-se que muda com o tema de ícones do sistema? Se é importante, eu estou desenvolvendo esta sob ubuntu 9.04, então eu estou usando o desktop GNOME.

Foi útil?

Solução

Infelizmente, parece que o Qt não suporta recebendo ícones para um tema específico. Há maneiras de fazer isso tanto para KDE e Gnome.

A forma KDE é bastante elegante, o que faz sentido, considerando que o Qt é kit de ferramentas do KDE. Em vez de usar o QIcon classe PyQt4.QtGui, você, em vez usar o kicon classe PyKDE4.kdeui. Um exemplo disto é:

from PyKDE4.kdeui import *
icon = KIcon("*The Icon Name*")

consulte a documentação PyKDE para esta classe, aqui .

Uma maneira de obter apoio para isso por gnome é usar o pacote python gtk. Não é tão bom quanto o caminho kde, mas nenhum funciona a menos. Ele pode ser usado como este:

from PyQt4 import QtGui
from gtk import icon_theme_get_default

iconTheme = icon_theme_get_default()
iconInfo = iconTheme.lookup_icon("*The Icon Name*", *Int of the icon size*, 0)
icon = QtGui.QIcon(iconInfo.get_filename())

Consulte a documentação para o Ícone classe Tema e ícone de informações classe .

EDIT: Obrigado pela CesarB correção

Outras dicas

Eu passei uma quantidade razoável de investigar este mesmo não há muito tempo, e minha conclusão foi que, infelizmente, Qt não fornece essa funcionalidade de uma forma multi-plataforma. Idealmente a classe QIcon teria padrões para arquivos abertos, salvar, '+', '-'., Preferências, etc, mas, considerando que não você vai ter que pegar o ícone apropriado para o seu ambiente de trabalho

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top