单击按钮图标更改

时间:2014-01-25 16:23:55

标签: qt button user-interface pyside python-3.3

我正在尝试创建一个GUI应用程序来更改右键单击按钮上的图标! 这是我的简单代码:

import sys
from PySide.QtCore import *
from PySide.QtGui import *

class Ui_MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi()

    def setupUi(self):
        widget = QWidget()
        layout = QGridLayout()
        self.buttons = list()

        for x in range(3):
            row = list()
            for y in range(3):
                button = QPushButton(QIcon('Empty-Cell.png'), '{},{}'.format(x, y))
                button.clicked.connect(self.button_click)
                row.append(button)
                layout.addWidget(button, x, y)
            self.buttons.append(row)

        widget.setLayout(layout)
        self.setCentralWidget(widget)

    def button_click(self):
        # Change icon HERE!

def main():
    app = QApplication(sys.argv)
    ui = Ui_MainWindow()
    ui.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

这里是图片:

Link of the GUI Application

我已经尝试了几个小时,但我仍然无法做到这一点,任何想法? 如果可能,我还想使用图像小部件而不是按钮,标签或whatelse ..

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用QObject::sender获取点击的按钮。

def button_click(self):
    test_pixmap = QPixmap(16, 16)
    test_pixmap.fill(Qt.red)
    self.sender().setIcon(QIcon(test_pixmap))