我有一个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图标不出现。我有两个问题:
- 在Windows上使用PyQt的SVG图标的正确方法是什么?
- 是否有一种方法可以改变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()