PySide 中 QIcon 上的 Painter Shape
Painter Shape over QIcon in PySide
如何将绘制的矩形附加到 QIcon。最终返回的结果必须是 qicon,因为我在需要 qicon 的控件上使用它。
之前:
之后:
import os, sys
from PySide import QtCore, QtGui
class Example(QtGui.QWidget):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.resize(600,400)
self.btn = QtGui.QPushButton()
self.btn.setFixedSize(128,128)
icon = QtGui.QIcon('thumb.jpg')
self.btn.setIconSize(icon.availableSizes()[0])
self.btn.setIcon(icon)
lay = QtGui.QVBoxLayout()
lay.addWidget(self.btn)
self.setLayout(lay)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
您必须将图像读取为 QPixmap
,使用 QPainter
通过添加矩形修改 QPixmap
,最后使用 QPixmap
创建 QIcon
import sys
from PySide import QtCore, QtGui
class Example(QtGui.QWidget):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.resize(600,400)
lay = QtGui.QHBoxLayout(self)
pixmap = QtGui.QPixmap('thumb.jpg')
painter = QtGui.QPainter(pixmap)
painter.fillRect(QtCore.QRect(20, 20, 40, 40), QtGui.QColor("red"))
painter.end()
for icon in (QtGui.QIcon('thumb.jpg'), QtGui.QIcon(pixmap)):
btn = QtGui.QPushButton()
btn.setFixedSize(128,128)
btn.setIconSize(icon.availableSizes()[0])
btn.setIcon(icon)
lay.addWidget(btn)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
如何将绘制的矩形附加到 QIcon。最终返回的结果必须是 qicon,因为我在需要 qicon 的控件上使用它。
之前:
之后:
import os, sys
from PySide import QtCore, QtGui
class Example(QtGui.QWidget):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.resize(600,400)
self.btn = QtGui.QPushButton()
self.btn.setFixedSize(128,128)
icon = QtGui.QIcon('thumb.jpg')
self.btn.setIconSize(icon.availableSizes()[0])
self.btn.setIcon(icon)
lay = QtGui.QVBoxLayout()
lay.addWidget(self.btn)
self.setLayout(lay)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
您必须将图像读取为 QPixmap
,使用 QPainter
通过添加矩形修改 QPixmap
,最后使用 QPixmap
创建 QIcon
import sys
from PySide import QtCore, QtGui
class Example(QtGui.QWidget):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.resize(600,400)
lay = QtGui.QHBoxLayout(self)
pixmap = QtGui.QPixmap('thumb.jpg')
painter = QtGui.QPainter(pixmap)
painter.fillRect(QtCore.QRect(20, 20, 40, 40), QtGui.QColor("red"))
painter.end()
for icon in (QtGui.QIcon('thumb.jpg'), QtGui.QIcon(pixmap)):
btn = QtGui.QPushButton()
btn.setFixedSize(128,128)
btn.setIconSize(icon.availableSizes()[0])
btn.setIcon(icon)
lay.addWidget(btn)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()