Qt 单击按钮图标即可更改
我正在尝试制作一个GUI应用程序,用于更改右键单击按钮上的图标! 这是我的简单代码:Qt 单击按钮图标即可更改,qt,button,user-interface,pyside,python-3.3,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):
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()
这里是图像:
我已经试了好几个小时了,但我还是做不到,有什么想法吗?
如果可能的话,我还想使用图像小部件,而不是按钮、标签或其他东西
谢谢大家! 您可以使用
QObject::sender
获取单击的按钮
def button_click(self):
test_pixmap = QPixmap(16, 16)
test_pixmap.fill(Qt.red)
self.sender().setIcon(QIcon(test_pixmap))
好吧,它起作用了!有没有办法让小部件图像可以点击,而不是使用按钮?你说的小部件图像是什么意思?通过在任何小部件上安装事件过滤器,您可以获取该小部件的单击事件(例如,可以显示pixmap的
QLabel
)。即调用self.label.installEventFilter(self)
并实现主窗口类的eventFilter
方法。