好吧,我正在尝试制作一个应用程序,允许教师给予或从学生那里获得积分。我花了好几个小时试图让它发挥作用,现在我正在放弃。每次按下+1或-1按钮时我都需要更改标签,但标签不会让步。这是我达到的最远(实际代码接近底部):
def home(self):
self.actionOpen.triggered.connect(self.open)
self.points_1 = 0
self.points_2 = 0
self.points_3 = 0
self.points_4 = 0
self.points_5 = 0
self.points_6 = 0
self.points_7 = 0
self.points_8 = 0
self.points_9 = 0
self.points_10 = 0
self.points_11 = 0
self.points_12 = 0
self.points_13 = 0
self.points_14 = 0
self.points_15 = 0
self.points_16 = 0
self.points_17 = 0
self.points_18 = 0
self.points_19 = 0
self.points_20 = 0
self.points_21 = 0
self.points_22 = 0
self.points_23 = 0
self.points_24 = 0
self.points_25 = 0
self.points_26 = 0
self.points_27 = 0
self.points_28 = 0
self.points_29 = 0
self.points_30 = 0
def open(self):
self.file_name = QtGui.QFileDialog.getOpenFileName(self, 'Open File',
'C:\Users\Maarij\Desktop\Programming\Final Projects\Behaviour Points',
"Text files (*.txt)")
with open(self.file_name, 'r') as document:
self.student_points = {}
for line in document:
line = line.split()
if not line:
continue
self.student_points[line[0]] = line[1:]
self.label_set()
def label_set(self):
self.name_label1.setText("%s - %s points" % (self.student_points['1'][0], self.points_1))
self.name_label2.setText("%s - %s points" % (self.student_points['2'][0], self.points_2))
self.name_label3.setText("%s - %s points" % (self.student_points['3'][0], self.points_3))
self.name_label4.setText("%s - %s points" % (self.student_points['4'][0], self.points_4))
self.name_label5.setText("%s - %s points" % (self.student_points['5'][0], self.points_5))
self.name_label6.setText("%s - %s points" % (self.student_points['6'][0], self.points_6))
self.name_label7.setText("%s - %s points" % (self.student_points['7'][0], self.points_7))
self.name_label8.setText("%s - %s points" % (self.student_points['8'][0], self.points_8))
self.name_label9.setText("%s - %s points" % (self.student_points['9'][0], self.points_9))
self.name_label10.setText("%s - %s points" % (self.student_points['10'][0], self.points_10))
self.name_label11.setText("%s - %s points" % (self.student_points['11'][0], self.points_11))
self.name_label12.setText("%s - %s points" % (self.student_points['12'][0], self.points_12))
self.name_label13.setText("%s - %s points" % (self.student_points['13'][0], self.points_13))
self.name_label14.setText("%s - %s points" % (self.student_points['14'][0], self.points_14))
self.name_label15.setText("%s - %s points" % (self.student_points['15'][0], self.points_15))
self.name_label16.setText("%s - %s points" % (self.student_points['16'][0], self.points_16))
self.name_label17.setText("%s - %s points" % (self.student_points['17'][0], self.points_17))
self.name_label18.setText("%s - %s points" % (self.student_points['18'][0], self.points_18))
self.name_label19.setText("%s - %s points" % (self.student_points['19'][0], self.points_19))
self.name_label20.setText("%s - %s points" % (self.student_points['20'][0], self.points_20))
self.name_label21.setText("%s - %s points" % (self.student_points['21'][0], self.points_21))
self.name_label22.setText("%s - %s points" % (self.student_points['22'][0], self.points_22))
self.name_label23.setText("%s - %s points" % (self.student_points['23'][0], self.points_23))
self.name_label24.setText("%s - %s points" % (self.student_points['24'][0], self.points_24))
self.name_label25.setText("%s - %s points" % (self.student_points['25'][0], self.points_25))
self.name_label26.setText("%s - %s points" % (self.student_points['26'][0], self.points_26))
self.name_label27.setText("%s - %s points" % (self.student_points['27'][0], self.points_27))
self.name_label28.setText("%s - %s points" % (self.student_points['28'][0], self.points_28))
self.name_label29.setText("%s - %s points" % (self.student_points['29'][0], self.points_29))
self.name_label30.setText("%s - %s points" % (self.student_points['30'][0], self.points_30))
self.plus_point()
def plus_point(self):
self.plus_one1.clicked.connect(self.adder(1))
self.plus_one2.clicked.connect(self.adder(2))
self.plus_one3.clicked.connect(self.adder(3))
self.plus_one4.clicked.connect(self.adder(4))
self.plus_one5.clicked.connect(self.adder(5))
self.plus_one6.clicked.connect(self.adder(6))
self.plus_one7.clicked.connPect(self.adder(7))
self.plus_one8.clicked.connect(self.adder(8))
self.plus_one9.clicked.connect(self.adder(9))
self.plus_one10.clicked.connect(self.adder(10))
self.plus_one11.clicked.connect(self.adder(11))
self.plus_one12.clicked.connect(self.adder(12))
self.plus_one13.clicked.connect(self.adder(13))
self.plus_one14.clicked.connect(self.adder(14))
self.plus_one15.clicked.connect(self.adder(15))
self.plus_one16.clicked.connect(self.adder(16))
self.plus_one17.clicked.connect(self.adder(17))
self.plus_one18.clicked.connect(self.adder(18))
self.plus_one19.clicked.connect(self.adder(19))
self.plus_one20.clicked.connect(self.adder(20))
self.plus_one21.clicked.connect(self.adder(21))
self.plus_one22.clicked.connect(self.adder(22))
self.plus_one23.clicked.connect(self.adder(23))
self.plus_one24.clicked.connect(self.adder(24))
self.plus_one25.clicked.connect(self.adder(25))
self.plus_one26.clicked.connect(self.adder(26))
self.plus_one27.clicked.connect(self.adder(27))
self.plus_one28.clicked.connect(self.adder(28))
self.plus_one29.clicked.connect(self.adder(29))
self.plus_one30.clicked.connect(self.adder(30))
def adder(self, num):
if num == 1:
self.points_1 += 1
self.label_set()
elif num == 2:
self.points_2 += 1
self.label_set()
elif num == 3:
self.points_3 += 1
self.label_set()
elif num == 4:
self.points_4 += 1
self.label_set()
elif num == 5:
self.points_5 += 1
self.label_set()
elif num == 6:
self.points_6 += 1
self.label_set()
elif num == 7:
self.points_7 += 1
self.label_set()
elif num == 8:
self.points_8 += 1
self.label_set()
elif num == 9:
self.points_9 += 1
self.label_set()
elif num == 10:
self.points_10 += 1
self.label_set()
elif num == 11:
self.points_11 += 1
self.label_set()
elif num == 12:
self.points_12 += 1
self.label_set()
elif num == 13:
self.points_13 += 1
self.label_set()
elif num == 14:
self.points_14 += 1
self.label_set()
elif num == 15:
self.points_15 += 1
self.label_set()
elif num == 16:
self.points_16 += 1
self.label_set()
elif num == 17:
self.points_17 += 1
self.label_set()
elif num == 18:
self.points_18 += 1
self.label_set()
elif num == 19:
self.points_19 += 1
self.label_set()
elif num == 20:
self.points_20 += 1
self.label_set()
elif num == 21:
self.points_21 += 1
self.label_set()
elif num == 22:
self.points_22 += 1
self.label_set()
elif num == 23:
self.points_23 += 1
self.label_set()
elif num == 24:
self.points_24 += 1
self.label_set()
elif num == 25:
self.points_25 += 1
self.label_set()
elif num == 26:
self.points_26 += 1
self.label_set()
elif num == 27:
self.points_27 += 1
self.label_set()
elif num == 28:
self.points_28 += 1
self.label_set()
elif num == 29:
self.points_29 += 1
self.label_set()
elif num == 30:
self.points_30 += 1
self.label_set()
else:
self.label_set()
答案 0 :(得分:0)
有几个问题。
第一个问题,正如评论中指出的那样,您需要将callable
传递给.connect()
。在您的示例中,您实际上是在连接操作期间调用adder()
函数。
第二个问题是,您点击按钮时每次添加信号连接。您只需要建立一次连接,通常在您的小部件__init__
中。
以下是解决此问题的方法。
plus_point()
label_set
plus_point()
函数调用home
(我假设它只调用一次?),或者在__init__
方法中调用{。}}。plus_point
中建立您的联系
self.plus_one1.clicked.connect(lambda: self.adder(1))