Как изменить значок действия на панели инструментов во время выполнения? - PullRequest
3 голосов
/ 18 мая 2019

Я хочу изменить значок QAction на панели инструментов при нажатии на него.

Я видел такой же вопрос в C ++, но мне трудно понимать другие языки. ( На Qt, как изменить значок действия на панели инструментов во время выполнения? )

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):

        self.PausePlay = QAction(QIcon('Play.png'), 'Play')
        self.PausePlay.setCheckable(True)
        self.PausePlay.triggered[bool].connect(self.Playing)

        self.toolbar = self.addToolBar('tb')
        self.toolbar.addAction(self.PausePlay)

        self.setGeometry(300, 300, 300, 300)
        self.show()

    def Playing(self, active):
        if active:
            # setting new icon
        else:
            # setting new icon


if __name__ == '__main__':
    app = QApplication(sys.argv)
    MWindow = MainWindow()
    sys.exit(app.exec_())

1 Ответ

1 голос
/ 18 мая 2019

Нет необходимости использовать QToolButton, как показывают другие ответы.В этом случае вы должны только получить QAction и установить новый значок

def Playing(self, active):
    self.PausePlay.setIcon(QIcon("icon1.png") if active else QIcon("icon2.png"))
...