pyside6图标问题
PYTHON在pyside6中如何获得一个按钮的ICON图标的路径呢?如下代码:
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication,QPushButton,QVBoxLayout,QWidget
class Window(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.icon = QIcon('我需要获得这个图片的路径.png')
self.button2 = QPushButton(icon=self.icon, parent=self)
self.button2.setFixedSize(QSize(100, 60))
self.button2.setIconSize(QSize(40, 40))
self.button2.clicked.connect(self.icon_changed)
layout = QVBoxLayout()
layout.addWidget(self.button2)
self.setLayout(layout)
def icon_changed(self):
"""打印图标完整路径"""
pass
app = QApplication([])
window = Window()
window.show()
sys.exit(app.exec())
在PySide6中获取按钮的图标路径并不是直接提供的方法。但你可以通过QIcon对象的pixmap()方法获取图标的像素图并保存到本地文件,然后再获得这个文件的路径。
以下是修改后的代码示例:
from PySide6.QtCore import QSize
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
class Window(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.icon_path = 'icon.png'# 图标保存路径
self.icon = QIcon(self.icon_path)
self.button2 = QPushButton(icon=self.icon, parent=self)
self.button2.setFixedSize(QSize(100, 60))
self.button2.setIconSize(QSize(40, 40))
self.button2.clicked.connect(self.icon_changed)
layout = QVBoxLayout()
layout.addWidget(self.button2)
self.setLayout(layout)
def icon_changed(self):
"""打印图标完整路径"""
print(self.icon_path)
app = QApplication()
window = Window()
window.show()
app.exec()
在上面的示例中,我们添加了一个`icon_path`变量来保存图标的路径。在初始化按钮时,我们传入了`self.icon_path`作为图标的路径参数。
在`icon_changed`方法中,我们直接打印了图标的完整路径`self.icon_path`。这样就实现了获取按钮图标的路径了。
注意:在使用`icon_changed`方法之前,确保点击过按钮,以便在图标已经加载后获取图标的路径。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 FishC_GPT 发表于 2023-11-28 11:35
在PySide6中获取按钮的图标路径并不是直接提供的方法。但你可以通过QIcon对象的pixmap()方法获取图标的像素 ...
你给的不是我想知道的方法,
也就是说没有方法获得按钮的图标路径,
只能自己写代码的时候保存一个变量了? yczyh 发表于 2023-11-28 11:39
你给的不是我想知道的方法,
也就是说没有方法获得按 ...
对不起,我之前理解错了你的问题。确实,PySide6中没有提供直接获得按钮图标路径的方法。如果你需要在程序运行过程中获取按钮图标的路径,最好的方法是在创建按钮时,将图标的文件路径存储在按钮对象的属性中,以便后续使用。
以下是修改后的代码示例:
from PySide6.QtCore import QSize
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
class Window(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.button2 = QPushButton(parent=self)# 创建按钮对象
self.button2.setProperty('icon_path', 'icon.png')# 存储图标路径为按钮的属性
self.icon = QIcon(self.button2.property('icon_path'))# 从按钮的属性中获取图标路径
self.button2.setIcon(self.icon)# 设置按钮图标
self.button2.setFixedSize(QSize(100, 60))
self.button2.setIconSize(QSize(40, 40))
self.button2.clicked.connect(self.icon_changed)
layout = QVBoxLayout()
layout.addWidget(self.button2)
self.setLayout(layout)
def icon_changed(self):
"""打印图标完整路径"""
icon_path = self.button2.property('icon_path')
print(icon_path)
app = QApplication()
window = Window()
window.show()
app.exec()
在上面的代码中,我们使用`setProperty()`方法将图标路径保存在按钮的属性中,并使用`property()`方法从按钮的属性中获取图标路径。通过这种方式,你可以在按钮点击事件或其他需要时,获取按钮的图标路径。
希望这次能解决你的问题。如果还有其他疑问,请随时提问。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页:
[1]