Тема: Виведення даних з файлу в QTextEdit і в QLineEdit(PyQt5)
Мені потрібно відкрити файл з тестовими завданнями, спочатку записати питання в QTextEdit потім після маркера * вивести варіанти відповідей в QLineEdit, і після маркера *** перейти до другого питання але воно у мене не коректно працює підкажіть будь ласка де помилка
from PyQt5.QtWidgets import *
import sys
class MyWindow(QWidget):
def __init__(self):
super(MyWindow, self).__init__()
self.resize(300, 250)
self.lines = 0
self.vid = ''
vb = QVBoxLayout()
self.setLayout(vb)
self.but1 = QPushButton('Save')
self.text1 = QTextEdit()
self.le1 = QLineEdit()
self.le2 = QLineEdit()
self.but2 = QPushButton('Open')
self.text2 = QTextEdit()
self.le3 = QLineEdit()
self.le4 = QLineEdit()
self.le5 = QLineEdit()
self.but3 = QPushButton("A")
self.but4 = QPushButton("B")
self.but5 = QPushButton("Remove")
self.but6 = QPushButton("Next")
vb.addWidget(self.but1)
vb.addWidget(self.text1)
vb.addWidget(self.le1)
vb.addWidget(self.le2)
vb.addWidget(self.le5)
vb.addWidget(self.but2)
vb.addWidget(self.text2)
vb.addWidget(self.le3)
vb.addWidget(self.le4)
vb.addWidget(self.but3)
vb.addWidget(self.but4)
vb.addWidget(self.but6)
vb.addWidget(self.but5)
self.but1.clicked.connect(self.save_file)
self.but2.clicked.connect(self.open_file)
self.but3.clicked.connect(self.but3_click)
self.but4.clicked.connect(self.but4_click)
self.but6.clicked.connect(self.next)
self.but5.clicked.connect(self.but_remove)
self.show()
def save_file(self):
f = open( "test.txt" ,'a' )
for item in self.text1.toPlainText():
f.write(item)
f.write('\n')
f.write("*")
f.write('\n')
f.write(self.le1.text())
f.write('\n')
f.write(self.le2.text())
f.write('\n')
f.write(self.le5.text() + '\n')
f.write("***\n")
f.close()
def but_remove(self):
f = open("test.txt",'w+').readlines()
for i in [0, 3, 1]:
f.pop(i)
def open_file(self):
f = open('test.txt', 'r')
self.F = open('temp.txt', 'w')
for i in f:
self.F.writelines(i)
f.close()
self.F.close()
self.F = open('temp.txt')
for line in self.F.readlines():
if line.rstrip() == "*":
self.lines += 1
self.text2.append(line.rstrip())
break
self.lines += 1
self.text2.append(line.rstrip())
self.F.close()
self.F = open('test.txt')
lin = self.F.readlines()
self.le3.setText((lin[self.lines]).rstrip())
self.le4.setText((lin[self.lines + 1]).rstrip())
self.vid = lin[self.lines + 2].rstrip()
print(lin[self.lines+3])
def next(self):
print(self.lines)
self.text2.clear()
self.le3.clear()
self.le4.clear()
self.F.seek(self.lines)
self.lines = 0
for line in self.F.readlines():
if line.rstrip() == "*":
self.lines += 1
self.text2.append(line.rstrip())
break
self.lines += 1
self.text2.append(line.rstrip())
self.F.close()
self.F = open('test.txt')
lin = self.F.readlines()
self.le3.setText((lin[self.lines]).rstrip())
self.le4.setText((lin[self.lines + 1]).rstrip())
self.vid = lin[self.lines + 2].rstrip()
print(lin[self.lines+3])
def but3_click(self):
if self.vid == 'A':
print("True")
else:
print("False")
def but4_click(self):
if self.vid == 'B':
print("True")
else:
print("False")
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())