为什么我的列表不能保存 QListWidget 中的所有内容?

问题描述

我正在创建一个可以保存每天的待办事项列表应用程序(如果您进入该应用程序)。而且似乎有问题。这是我的代码:

import PySide6.QtWidgets as qtw
import PySide6.QtCore as qtc
import sys
import pandas as pd
class UI_MainWindow(qtw.QWidget):
    def __init__(self):
        super(UI_MainWindow,self).__init__()
        self.initUI()
    def initUI(self):
        self.add_item_txt = qtw.QLineEdit(self)
        self.add_item_txt.setGeometry(10,50,311,21)

        self.add_bnt = qtw.QPushButton("add",self)
        self.add_bnt.setToolTip("add the item in the text box to the list")
        self.add_bnt.move(0,100)
        self.add_bnt.resize(self.add_bnt.sizeHint())
        self.add_bnt.clicked.connect(self.add_item)

        self.delete_bnt = qtw.QPushButton("delete",self)
        self.delete_bnt.setToolTip("deletes the item that you are clicking on")
        self.delete_bnt.move(110,100)
        self.delete_bnt.resize(self.delete_bnt.sizeHint())
        self.delete_bnt.clicked.connect(self.delete_item)

        self.clear_bnt = qtw.QPushButton("clear",self)
        self.clear_bnt.setToolTip("add the item in the text box to the list")
        self.clear_bnt.move(220,100)
        self.clear_bnt.resize(self.add_bnt.sizeHint())
        self.clear_bnt.clicked.connect(self.clear_item)

        self.the_lst = qtw.QListWidget(self)
        self.the_lst.setGeometry(0,180,471,251)

        self.save_bnt = qtw.QPushButton("save",self)
        self.save_bnt.setToolTip("save the to-do list for today")
        self.save_bnt.move(0,440)
        self.save_bnt.resize(self.save_bnt.sizeHint())
        self.save_bnt.clicked.connect(self.save)

        self.quit_bnt = qtw.QPushButton("quit",self)
        self.quit_bnt.setToolTip("quits the application")
        self.quit_bnt.move(170,440)
        self.quit_bnt.resize(self.quit_bnt.sizeHint())
        self.quit_bnt.clicked.connect(self.quit)

        self.cal = qtw.QCalendarWidget(self)
        self.cal.move(430,540)


        self.find_bnt = qtw.QPushButton("find",self)
        self.find_bnt.setToolTip("allow you to find a specific to-do list (showed by the date) and show it")
        self.find_bnt.move(360,440)
        self.find_bnt.resize(self.find_bnt.sizeHint())
        self.find_bnt.clicked.connect(self.find_todo)


        self.show()
        self.setWindowTitle("to-do list")
        self.setGeometry(0,739,715)
    def add_item(self):
        item = self.add_item_txt.text()

        self.the_lst.addItem(item)

        self.add_item_txt.setText("")

        #self.the_lst.addItem("")

    def delete_item(self):
        clicked = self.the_lst.currentRow()

        self.the_lst.takeItem(clicked)
    
    def clear_item(self):
        self.the_lst.clear()

    def save(self):
        self.todo_list = []
        for the_item in range(self.the_lst.count()-1):
            print("item(s) before: ",self.todo_list)
            self.todo_list.append(self.the_lst.item(the_item).text())
            print("after: ",self.todo_list)

        print("todo list: \n",self.todo_list)
        self.today_date = self.cal.selectedDate()
        save_file_name = self.today_date.toString("yyyy")+"_"+self.today_date.toString("M")+"_"+self.today_date.toString("d")+"todo.csv"
        dt = pd.DataFrame(self.todo_list)
        print("dt:",dt)

    def find_todo(self):
        pass

    def quit(self):
        reply = qtw.QMessageBox.question(self,"Quit?","are you sure you want to quit?",qtw.QMessageBox.Yes|qtw.QMessageBox.No,qtw.QMessageBox.No)

        if reply == qtw.QMessageBox.Yes:
            quit()

app = qtw.QApplication(sys.argv)
window = UI_MainWindow()
sys.exit(app.exec_())

它将显示如下内容:

enter image description here

并且我想分配一个等于 QListWidget 中每个值的列表。但这是发生的事情:

QListWidget

enter image description here

这里是列表等于: ["item","item 1"]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)