我正在创建一个英语语言培训应用程序,但出现错误:
回溯(最近一次调用最后一次):文件“ c
:\myprograms\projects\eng\menu.py”,第 484 行,在 push_3 ui_true.setupUi(MainWindow)文件“c:\myprograms\projects\ eng\menu.py”,第 438 行,在 setupUi self.retranslateUi(MainWindow) 文件“c:\myprograms\projects\eng\menu.py”,第 449 行,在 retranslateUi self.label_2.setText(_translate("MainWindow", f"╧Ёrtshы№э√щ юЄтхЄ:{random_list[len(random_list) - 1]},{text}")) IndexError:列表索引超出范围 PS C:\myprograms\projects\eng> & C:/Users/MATVEY/AppData/Local/Programs/Python/Python312/python.exe c:/myprograms/projects/eng/menu.py 回溯(最近一次调用最后一次): 文件“c:\myprograms\projects\eng\menu.py”,第 484 行,在 push_3 ui_true.setupUi(MainWindow) 文件“c:\myprograms\projects\eng\menu.py”,第 438 行,在 setupUi self.retranslateUi(MainWindow) 文件“c:\myprograms\projects\eng\menu.py”,第 442 行,在 retranslateUi 中 如果单击 == random_list[len(random_list) - 1]: ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ IndexError:列表索引超出范围
主程序
from PyQt5 import QtCore, QtGui, QtWidgets
from random import randint, choice
but = 0
was = []
random_list = []
clicked = 0
with open('text.txt', 'r', encoding='utf-8') as f:
read = f.read()
def text(read):
read_w = read.split('%')
for i in range(1,len(read_w)):
read_w[i] = read_w[i][1:]
read_w.pop(-1)
read_d = []
for i in range(len(read_w)):
read_d.append(read_w[i].split('#'))
for i in range(len(read_d)):
read_d[i].pop(-1)
read_word = []
for i in range(len(read_d)):
read_word.append([])
for j in range(len(read_d[i])):
read_word[i].append(read_d[i][j].split('!'))
for i in range(len(read_word)):
for j in range(1,len(read_word[i])):
read_wr_three_wr = read_word[i][j][0][1:]
read_word[i][j][0] = read_wr_three_wr
return read_word
def random(read_word,tem,count_num):
vop = choice(read_word[tem])
nums = []
count = 0
while True:
con = False
num = choice(vop)
if len(num) != 0:
for num_was in nums:
if num_was == num:
con = True
if count == count_num:
break
elif con == False and num != vop[0]:
count += 1
nums.append(num)
true_var = None
for i in range(len(nums)):
if nums[i] == vop[1]:
true_var = i
if true_var == None:
true_var = randint(0,len(nums)-1)
nums[true_var] = vop[1]
nums.append(vop[0])
nums.append(true_var)
return nums
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
MainWindow.setMinimumSize(QtCore.QSize(800, 600))
MainWindow.setMaximumSize(QtCore.QSize(800, 600))
MainWindow.setStyleSheet("background-color: #91ffde;")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(90, 30, 631, 111))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold SemiConden")
font.setPointSize(36)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(230, 190, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(230, 290, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_2.setFont(font)
self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_2.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_2.setObjectName("pushButton_2")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "Тренажёр по английскому языку"))
self.pushButton.setText(_translate("MainWindow", "Начать"))
self.pushButton_2.setText(_translate("MainWindow", "Настройки"))
class Ui_Tem(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
MainWindow.setMinimumSize(QtCore.QSize(800, 600))
MainWindow.setMaximumSize(QtCore.QSize(800, 600))
MainWindow.setStyleSheet("background-color: #91ffde;")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(230, 190, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_3.setFont(font)
self.pushButton_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_3.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_4.setGeometry(QtCore.QRect(230, 280, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_4.setFont(font)
self.pushButton_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_4.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_5.setGeometry(QtCore.QRect(230, 370, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_5.setFont(font)
self.pushButton_5.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_5.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_5.setObjectName("pushButton_5")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(260, 30, 291, 111))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold SemiConden")
font.setPointSize(36)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton_3.setText(_translate("MainWindow", "Числа"))
self.pushButton_4.setText(_translate("MainWindow", "Члены семьи"))
self.pushButton_5.setText(_translate("MainWindow", "Дни недели"))
self.label_2.setText(_translate("MainWindow", "Выберите тему"))
class Ui_Three(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
MainWindow.setMinimumSize(QtCore.QSize(800, 600))
MainWindow.setMaximumSize(QtCore.QSize(800, 600))
MainWindow.setStyleSheet("background-color: #91ffde;")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(40, 20, 701, 141))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold SemiConden")
font.setPointSize(28)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.pushButton_0 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_0.setGeometry(QtCore.QRect(440, 340, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_0.setFont(font)
self.pushButton_0.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_0.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_0.setObjectName("pushButton_3")
self.pushButton_1 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_1.setGeometry(QtCore.QRect(240, 450, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_1.setFont(font)
self.pushButton_1.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_1.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_1.setObjectName("pushButton_4")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(40, 340, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_2.setFont(font)
self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_2.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_2.setObjectName("pushButton_5")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
global random_list
random_list = random(text(read),but-3,3)
was.append(random_list[len(random_list)-1])
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_2.setText(_translate("MainWindow", f"Как будет на английском {random_list[len(random_list)-2]}?"))
self.pushButton_0.setText(_translate("MainWindow", random_list[0]))
self.pushButton_1.setText(_translate("MainWindow", random_list[1]))
self.pushButton_2.setText(_translate("MainWindow", random_list[2]))
class Ui_True(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
MainWindow.setMinimumSize(QtCore.QSize(800, 600))
MainWindow.setMaximumSize(QtCore.QSize(800, 600))
MainWindow.setStyleSheet("background-color: #91ffde;")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(40, 20, 701, 141))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold SemiConden")
font.setPointSize(28)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.pushButton_0 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_0.setGeometry(QtCore.QRect(440, 340, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_0.setFont(font)
self.pushButton_0.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_0.setStyleSheet("QPushButton{\n"
"background-color:#ff9c6e;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#ff9361; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #fc8954;\n"
"}")
self.pushButton_0.setObjectName("pushButton_3")
self.pushButton_1 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_1.setGeometry(QtCore.QRect(240, 450, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_1.setFont(font)
self.pushButton_1.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_1.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_1.setObjectName("pushButton_4")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(40, 340, 331, 71))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.pushButton_2.setFont(font)
self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_2.setStyleSheet("QPushButton{\n"
"background-color:#bdff33;\n"
"border: 0px;\n"
"border-radius: 35px;\n"
"}\n"
"QPushButton:hover{\n"
"background-color:#b9fa2e; \n"
"}\n"
"QPushButton:pressed{\n"
"background-color: #aeef22;\n"
"}")
self.pushButton_2.setObjectName("pushButton_5")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
if clicked == random_list[len(random_list) - 1]:
text = 'правильно!'
else:
text = 'неправильно.'
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_2.setText(_translate("MainWindow", f"Правильный ответ:{random_list[len(random_list) - 1]},{text}"))
self.pushButton_0.setText(_translate("MainWindow", random_list[0]))
self.pushButton_1.setText(_translate("MainWindow", random_list[1]))
self.pushButton_2.setText(_translate("MainWindow", random_list[2]))
def push_1():
ui_tem.setupUi(MainWindow)
MainWindow.show()
ui_tem.pushButton_3.clicked.connect(push_3)
ui_tem.pushButton_4.clicked.connect(push_4)
ui_tem.pushButton_5.clicked.connect(push_5)
def push_5():
global but
but = 5
ui_three.setupUi(MainWindow)
MainWindow.show()
ui_three.pushButton_0.clicked.connect(push_0_b)
ui_three.pushButton_1.clicked.connect(push_1_b)
ui_three.pushButton_2.clicked.connect(push_2)
def push_4():
global but
but = 4
ui_three.setupUi(MainWindow)
MainWindow.show()
ui_three.pushButton_0.clicked.connect(push_0_b)
ui_three.pushButton_1.clicked.connect(push_1_b)
ui_three.pushButton_2.clicked.connect(push_2)
def push_3():
global but
but = 3
ui_true.setupUi(MainWindow)
MainWindow.show()
ui_three.pushButton_0.clicked.connect(push_0_b)
ui_three.pushButton_1.clicked.connect(push_1_b)
ui_three.pushButton_2.clicked.connect(push_2)
def push_0_b():
global clicked
clicked = 0
ui_true.setupUi(MainWindow)
MainWindow.show()
def push_1_b():
global clicked
clicked = 1
ui_true.setupUi(MainWindow)
MainWindow.show()
def push_2():
global clicked
clicked = 2
ui_true.setupUi(MainWindow)
MainWindow.show()
def push_0():
global clicked
clicked = 0
ui_true.setupUi(MainWindow)
MainWindow.show()
def push_0():
global clicked
clicked = 0
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui_tem = Ui_Tem()
ui_three = Ui_Three()
ui_true = Ui_True()
ui.setupUi(MainWindow)
MainWindow.show()
ui.pushButton.clicked.connect(push_1)
sys.exit(app.exec_())
文本.txt
ноль!zero!zir!zer!zera#
один!one!wane!vane!on#%
мама!mother!mom!mam!mazer!mather#
папа!father!dad!fazer!dat#%
понедельник!monday!manday!mondai!montay#
вторник!tuesday!tuestay!tiusday!tuesdai#%