在Windows和Linux上使用PyQt的SVG图标



我有一个PyQt用户界面如下

import sys
from PyQt4 import QtGui
class Example(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Example, self).__init__(parent)
        self.setWindowTitle('Example')
        self.setWindowIcon(QtGui.QIcon('note_add.svg'))        

def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

它在Linux上工作得很好,但它在Windows上工作得不好,因为SVG图标不出现。我有两个问题:

  1. 在Windows上使用PyQt的SVG图标的正确方法是什么?
  2. 是否有一种方法可以改变SVG图标的颜色填充?这应该可以在两个操作系统上正常工作。

我知道这晚了几年。但是,迟做总比不做好。:)

对我来说,当我定义一个特定的目录时,Qt工作得最好。因此,我将这样实现:

import sys
import os
from PyQt4 import QtGui
class Example(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Example, self).__init__(parent)
        ###   Newly added code   ###
        self.current_directory  = os.path.dirname(__file__)
        self.note_icon      = os.path.join( self.current_directory, 'note_add.svg' )
        ###   ###   ###   ###
        self.setWindowTitle('Example')
        self.setWindowIcon(QtGui.QIcon(self.note_icon))        
    def main():
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        ex.show()
        sys.exit(app.exec_())
if __name__ == '__main__':
    main()

相关内容

  • 没有找到相关文章

最新更新