跨页面修改qpushbutton图标
时间: 2023-10-31 07:05:33 浏览: 94
要跨页面修改 QPushButton 的图标,可以使用信号和槽机制。首先在发送信号的页面中定义一个信号,当图标需要被修改时,发射这个信号。在接收信号的页面中定义一个槽函数,接收这个信号,并进行图标的修改。
以下是一个示例代码:
发送信号的页面:
```python
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QPushButton
class Sender(QObject):
icon_changed = pyqtSignal(str)
def __init__(self):
super().__init__()
self.button = QPushButton('Change Icon')
self.button.clicked.connect(self.change_icon)
def change_icon(self):
self.icon_changed.emit('new_icon.png')
```
接收信号的页面:
```python
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QLabel
class Receiver(QWidget):
def __init__(self, sender):
super().__init__()
self.label = QLabel('Icon')
self.sender = sender
self.sender.icon_changed.connect(self.update_icon)
def update_icon(self, icon_path):
self.label.setPixmap(QIcon(icon_path).pixmap(32, 32))
```
在这个示例中,Sender 类中定义了一个 icon_changed 信号,并在按钮的点击事件中发射这个信号,传递新的图标路径。Receiver 类中定义了一个 update_icon 槽函数,该函数接受一个图标路径参数,更新标签的图标。
通过将 Sender 实例传递给 Receiver 构造函数,Receiver 就可以连接到 Sender 的信号并接收它们。
阅读全文