如果单击任何chackbox,则只有第100个标签更改为“确定”。 但是,如果需要单击每个chackbox,则上述每个数字标签都将变为“ ok”(1:1)。
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class app(QWidget):
def __init__(self):
super().__init__()
self.ui()
def ui(self):
self.setGeometry(100, 100, 1000, 500)
self.setWindowTitle('aaa')
for i in range(10):
for j in range(10):
self.lb = QLabel(str(i * 10 + j + 1), self)
self.lb.move(50 * j + 10, 50 * i + 10)
self.cb = QCheckBox(None, self)
self.cb.move(50 * j + 10, 50 * i + 25)
self.cb.stateChanged.connect(self.change)
self.show()
def change(self):
self.lb.setText('ok')
if __name__ == '__main__':
a = QApplication(sys.argv)
ex = app()
sys.exit(a.exec_())
答案 0 :(得分:0)
您需要链接QCheckBox / QLabel对,并在sender()
函数中使用change()
。
class app(QWidget):
def __init__(self):
super().__init__()
self.ui()
def ui(self):
self.setGeometry(100, 100, 1000, 500)
self.setWindowTitle('aaa')
for i in range(10):
for j in range(10):
lb = QLabel(str(i * 10 + j + 1), self)
lb.move(50 * j + 10, 50 * i + 10)
cb = QCheckBox(None, self)
cb.move(50 * j + 10, 50 * i + 25)
cb.stateChanged.connect(self.change)
cb.label = lb
self.show()
def change(self):
self.sender().label.setText('ok')