Bạn có thể gọi self.sender()
trong một chức năng kết nối với sự kiện nút bấm của bạn để có được những đối tượng đó gây ra sự kiện này. Từ đó bạn có thể gọi phương thức objectName()
của đối tượng để lấy tên.
Dưới đây là ví dụ nhanh - tiện ích có 10 nút và nhấp vào nút sẽ cập nhật văn bản của nhãn để hiển thị tên nút.
import sys
from PyQt4.QtGui import QApplication, QWidget, QToolButton, QLabel, QVBoxLayout, QHBoxLayout
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.button_layout = QHBoxLayout()
self.widget_layout = QVBoxLayout()
for button_number in xrange(1, 11):
button = QToolButton()
button.setText(str(button_number))
button.setObjectName('Button%d' % button_number)
button.released.connect(self.button_released)
self.button_layout.addWidget(button)
self.status_label = QLabel('No button clicked')
self.widget_layout.addItem(self.button_layout)
self.widget_layout.addWidget(self.status_label)
self.setLayout(self.widget_layout)
def button_released(self):
sending_button = self.sender()
self.status_label.setText('%s Clicked!' % str(sending_button.objectName()))
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())
Nguồn
2012-10-25 09:26:29
Vui lòng đăng một số mã. – Avaris