ListWidget在方法运行一次后保持crashin

2024-06-24 12:30:06 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是我还有一个星期要完成的学校项目。基本上,我的代码在搜索了一次文件后就一直崩溃。对于这个项目,我们需要做一个类库程序。给我带来问题的方法叫做def isciknjige。它应该基本上找到一本书,你正在寻找的文件和搜索后,一旦崩溃

当前代码:

import sys
from PyQt5 import QtWidgets, uic
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtWidgets import *
ls = []

def odprivpis():
    dlg2.show()
    dlg.close()


def odprimain_page():
    dlg.show()
    dlg2.close()

def seznamvsehknjig():
    dlg3.show()
    dlg.close() 

def odpripage4():
    dlg4.show()

def odpripage5():
    seznam = open("baza_knjig.csv", "r")
    seznam = seznam.readlines()
    listWidget = QListWidget()
    listWidget.show()

    ls = []

    for i in seznam:
        listWidget.addItem(i)

    listWidget.addItems(ls)

    sys.exit(app.exec_())
    seznam.close()

def odpripage6():
    dlg6.show()

def vpis(dat):
    dat=""
    dat=open("Uporabniki.csv","a" , encoding="UTF-8")
    A=str(dlg2.Ime.text())
    B=str(dlg2.Priimek.text())
    C=str(dlg2.Prebivalisce.text())
    D=str(dlg2.Datumrojstva.text())
    E=str(dlg2.ID.text())
    dat.write(A + " / ")
    dat.write(B + " / ")
    dat.write(C + " / ")
    dat.write(D + " / ")
    dat.write(E + " / ")
    dat.close()
    dlg2.close()
    dat.close()

class Knjiznica:
    def __init__(self,naslov,avtor,letoizdaje,zvrst,identifikacija):
        self.naslov=naslov
        self.avtor=avtor
        self.letoizdaje=letoizdaje
        self.identifikacija=identifikacija


def nazaj3():
    dlg3.close()
    dlg.show() 

def nazaj4():
    dlg4.close()
    dlg.show() 
def nazaj5():
    dlg5.close()
    dlg.show() 

def nazaj6():
    dlg6.close()
    dlg.show()

def dodajknjigo(dat2):
    dat2=""
    dat2=open("baza_knjig.csv" , "a" , encoding="UTF-8")
    f=str(dlg6.naslov.text())
    g=str(dlg6.avtor.text())
    h=str(dlg6.leto.text())
    i=str(dlg6.zvrst.text())
    j=str(dlg6.id.text())
    dat2.write(f + " / ")
    dat2.write(g + " / ")
    dat2.write(h + " / ")
    dat2.write(i + " / ")
    dat2.write(j + " / ")
    dat2.close()
    dlg6.close()
    dat2.close()

def isciknjigo(dat3):
    error="Ni zadetkov iskanja."
    app = QApplication(sys.argv)
    seznam = open("baza_knjig.csv", "r")
    seznam = seznam.readlines()
    listWidget = QListWidget()
    listWidget.show()
    knjiga = str(dlg4.iskanje.text())
    for line in seznam:
        if knjiga in line:
            listWidget.addItem(line)

    dlg4.iskanje.setText("")
    listWidget.addItems(ls)
    app.exec_()

app=QtWidgets.QApplication([])
dlg2=uic.loadUi("vpis.ui")
dlg=uic.loadUi("main_page.ui")
dlg3=uic.loadUi("seznam_knjig.ui")
dlg4=uic.loadUi("isci_knjige.ui")
dlg5=uic.loadUi("baza_knjig.ui")
dlg6=uic.loadUi("dodaj_knjigo.ui")
dlg2.prijava.clicked.connect(vpis)
dlg2.prijava.clicked.connect(odprimain_page)
dlg.prijavi_se_v_sistem.clicked.connect(odprivpis)
dlg.seznam_vseh_knjig.clicked.connect(odpripage5)
dlg.isci_po_knjiznici.clicked.connect(odpripage4)
dlg.dodaj_knjigo.clicked.connect(odpripage6)
dlg3.Nazaj.clicked.connect(nazaj3)
dlg4.Nazaj.clicked.connect(nazaj4)
dlg5.Nazaj.clicked.connect(nazaj5)
dlg6.Nazaj.clicked.connect(nazaj6)
dlg6.dodaj.clicked.connect(dodajknjigo)
dlg4.gumb_isci.clicked.connect(isciknjigo)
dlg.show()

(我的程序写得不太好,因为我才上高中二年级。这是相当困难的,因为我们从一开始就没有得到什么帮助。)


Tags: textclosedefshowconnectdatwriteseznam