在提醒方面的问题主要有两个:

  1. 添加提醒时没有对时间进行判断,如果用户选择的时间早于当前时间,提醒将无法生效。
  2. 在提醒弹窗中删除提醒item后,没有停止提醒定时器,可能会导致定时器不断弹出提醒。

针对这两个问题,可以进行如下优化:

  1. 当用户选择的提醒时间早于当前时间时,弹出错误提示,并且不添加该提醒。
  2. 在提醒弹窗中删除提醒item后,停止提醒定时器,以避免不必要的弹窗。

具体代码实现如下:

def add_memo_item(self, title, content, time):
    if time <= QDateTime.currentDateTime():
        QMessageBox.warning(self, "错误", "提醒时间不能早于当前时间")
        return
    memo_item = QListWidgetItem(title)
    memo_item.setData(Qt.UserRole, content)
    memo_item.setData(Qt.UserRole+1, time)
    self.memos.addItem(memo_item)
    self.memo_items.append(memo_item) # 将新添加的提醒item加入列表

def check_reminders(self):
    current_time = QDateTime.currentDateTime()
    for item in self.memo_items:
        memo_time = item.data(Qt.UserRole+1)
        if memo_time <= current_time:
            memo_content = item.data(Qt.UserRole)
            QMessageBox.information(self, "嗯嗯~~", memo_content)
            self.memo_items.remove(item) # 在提醒弹窗中删除该提醒item
            self.memos.takeItem(self.memos.row(item)) # 在提醒列表中删除该提醒item
            self.reminder_timer.stop() # 停止提醒定时器
            break
``
下面这串在吗在提醒方面出了问题 请帮忙优化·import sysfrom PyQt5QtWidgets import from PyQt5QtCore import from PyQt5QtGui import from PyQt5 import QtCoreimport datetimeclass CalendarExampleQWidget def __init__self

原文地址: http://www.cveoy.top/t/topic/hob8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录