首先,需要安装以下库:

- PyQt5:用于创建桌面应用程序的GUI界面
- sqlite3:用于连接和操作SQLite数据库

然后,可以按照以下步骤来实现待办事项程序:

1. 创建一个SQLite数据库,并创建一个名为“tasks”的表,用于存储待办事项的详细信息,包括任务名称、任务类型、任务截止日期、任务状态等。

```python
import sqlite3

conn = sqlite3.connect('tasks.db')
c = conn.cursor()

c.execute('''CREATE TABLE tasks
             (id INTEGER PRIMARY KEY AUTOINCREMENT,
              name TEXT NOT NULL,
              type TEXT NOT NULL,
              deadline TEXT NOT NULL,
              status TEXT NOT NULL)''')

conn.commit()
conn.close()
```

2. 创建一个GUI界面,用于显示待办事项列表和添加新任务。可以使用PyQt5中的QWidget、QVBoxLayout、QHBoxLayout、QLabel、QLineEdit、QComboBox、QDateEdit、QPushButton等控件来创建界面。

```python
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QComboBox, QDateEdit, QPushButton

class ToDoList(QWidget):
    def __init__(self):
        super().__init__()

# 创建控件
        self.daily_label = QLabel('每日任务')
        self.daily_list = QListWidget()
        self.weekly_label = QLabel('每周任务')
        self.weekly_list = QListWidget()
        self.tenday_label = QLabel('每旬任务')
        self.tenday_list = QListWidget()
        self.monthly_label = QLabel('每月任务')
        self.monthly_list = QListWidget()
        self.quarterly_label = QLabel('每季任务')
        self.quarterly_list = QListWidget()
        self.other_label = QLabel('其他任务')
        self.other_list = QListWidget()
        self.name_label = QLabel('任务名称')
        self.name_edit = QLineEdit()
        self.type_label = QLabel('任务类型')
        self.type_combo = QComboBox()
        self.type_combo.addItems(['每日', '每周', '每旬', '每月', '每季', '其他'])
        self.deadline_label = QLabel('截止日期')
        self.deadline_edit = QDateEdit()
        self.add_button = QPushButton('添加任务')

# 创建布局
        self.daily_layout = QVBoxLayout()
        self.daily_layout.addWidget(self.daily_label)
        self.daily_layout.addWidget(self.daily_list)
        self.weekly_layout = QVBoxLayout()
        self.weekly_layout.addWidget(self.weekly_label)
        self.weekly_layout.addWidget(self.weekly_list)
        self.tenday_layout = QVBoxLayout()
        self.tenday_layout.addWidget(self.tenday_label)
        self.tenday_layout.addWidget(self.tenday_list)
        self.monthly_layout = QVBoxLayout()
        self.monthly_layout.addWidget(self.monthly_label)
        self.monthly_layout.addWidget(self.monthly_list)
        self.quarterly_layout = QVBoxLayout()
        self.quarterly_layout.addWidget(self.quarterly_label)
        self.quarterly_layout.addWidget(self.quarterly_list)
        self.other_layout = QVBoxLayout()
        self.other_layout.addWidget(self.other_label)
        self.other_layout.addWidget(self.other_list)
        self.form_layout = QFormLayout()
        self.form_layout.addRow(self.name_label, self.name_edit)
        self.form_layout.addRow(self.type_label, self.type_combo)
        self.form_layout.addRow(self.deadline_label, self.deadline_edit)
        self.button_layout = QHBoxLayout()
        self.button_layout.addStretch()
        self.button_layout.addWidget(self.add_button)

# 创建主布局
        self.main_layout = QVBoxLayout()
        self.main_layout.addLayout(self.daily_layout)
        self.main_layout.addLayout(self.weekly_layout)
        self.main_layout.addLayout(self.tenday_layout)
        self.main_layout.addLayout(self.monthly_layout)
        self.main_layout.addLayout(self.quarterly_layout)
        self.main_layout.addLayout(self.other_layout)
        self.main_layout.addLayout(self.form_layout)
        self.main_layout.addLayout(self.button_layout)
        self.setLayout(self.main_layout)
```

3. 实现添加任务的功能。当用户点击“添加任务”按钮时,将获取任务名称、任务类型、截止日期等信息,并将其插入到SQLite数据库中。然后,根据任务类型将任务添加到相应的列表中。

```python
class ToDoList(QWidget):
    def __init__(self):
        super().__init__()

# 创建控件和布局

# 创建按钮的信号槽
        self.add_button.clicked.connect(self.add_task)

def add_task(self):
        # 获取任务信息
        name = self.name_edit.text()
        type = self.type_combo.currentText()
        deadline = self.deadline_edit.date().toString('yyyy-MM-dd')
        status = '未完成'

# 将任务插入到数据库中
        conn = sqlite3.connect('tasks.db')
        c = conn.cursor()
        c.execute("INSERT INTO tasks (name, type, deadline, status) VALUES (?, ?, ?, ?)", (name, type, deadline, status))
        conn.commit()
        conn.close()

# 根据任务类型将任务添加到相应的列表中
        if type == '每日':
            self.daily_list.addItem(name)
        elif type == '每周':
            self.weekly_list.addItem(name)
        elif type == '每旬':
            self.tenday_list.addItem(name)
        elif type == '每月':
            self.monthly_list.addItem(name)
        elif type == '每季':
            self.quarterly_list.addItem(name)
        else:
            self.other_list.addItem(name)

# 清空输入框
        self.name_edit.setText('')
        self.type_combo.setCurrentIndex(0)
        self.deadline_edit.setDate(QDate.currentDate())
```

4. 实现从数据库中加载任务列表的功能。当程序启动时,将从SQLite数据库中获取所有任务,并将它们添加到相应的列表中。

```python
class ToDoList(QWidget):
    def __init__(self):
        super().__init__()

# 创建控件和布局

# 加载任务列表
        self.load_tasks()

def load_tasks(self):
        # 从数据库中获取所有任务
        conn = sqlite3.connect('tasks.db')
        c = conn.cursor()
        c.execute("SELECT * FROM tasks")
        tasks = c.fetchall()
        conn.close()

# 将任务添加到相应的列表中
        for task in tasks:
            name = task[1]
            type = task[2]
            deadline = task[3]
            status = task[4]
            if type == '每日':
                self.daily_list.addItem(name)
            elif type == '每周':
                self.weekly_list.addItem(name)
            elif type == '每旬':
                self.tenday_list.addItem(name)
            elif type == '每月':
                self.monthly_list.addItem(name)
            elif type == '每季':
                self.quarterly_list.addItem(name)
            else:
                self.other_list.addItem(name)
```

5. 实现任务完成和删除的功能。当用户在列表中选择一个任务时,可以将其标记为已完成或删除它。当任务被标记为已完成时,将更新数据库中的任务状态。

```python
class ToDoList(QWidget):
    def __init__(self):
        super().__init__()

# 创建控件和布局

# 创建列表的信号槽
        self.daily_list.itemDoubleClicked.connect(self.complete_task)
        self.weekly_list.itemDoubleClicked.connect(self.complete_task)
        self.tenday_list.itemDoubleClicked.connect(self.complete_task)
        self.monthly_list.itemDoubleClicked.connect(self.complete_task)
        self.quarterly_list.itemDoubleClicked.connect(self.complete_task)
        self.other_list.itemDoubleClicked.connect(self.complete_task)

def complete_task(self, item):
        # 获取任务信息
        name = item.text()
        type = ''
        if item.listWidget() == self.daily_list:
            type = '每日'
        elif item.listWidget() == self.weekly_list:
            type = '每周'
        elif item.listWidget() == self.tenday_list:
            type = '每旬'
        elif item.listWidget() == self.monthly_list:
            type = '每月'
        elif item.listWidget() == self.quarterly_list:
            type = '每季'
        else:
            type = '其他'

# 更新任务状态
        conn = sqlite3.connect('tasks

gpt用pyQT和python 写待办事项程序,回头把我自己写的改造一下相关推荐

  1. python编程可视化小程序_人人都可以写的可视化Python小程序第二篇:旋转的烟花...

    兴趣是最好的老师 枯燥的编程容易让人放弃,兴趣才是最好的老师.无论孩子还是大人,只有发现这件事情真的有趣,我们才会非常执着的去做这件事,比如打游戏.如果编程能像玩游戏一样变得有趣,我相信很多人就特别愿 ...

  2. 用java写秋道程序_Java开发者使用C++写程序踩的坑

    笔者是一个很矛盾的人.平时用Java.但是一开始学习的时候学的是汇编语言,而且对C语言也很熟悉.为什么不学C++呢?是因为我可以完全用Java的编码规范去写C++.因此我不需要了解更多的诸如C++的命 ...

  3. 排行榜上用C++写局域网聊天程序

    摘要:用C++写局域网聊天程序 2012年07月09日啰嗦完天使之道,尽量将具有相类似功能的即时通讯软件用例抽象并归类,防属性,揭开人类进程的惊天秘密,并没有攻击技能,用C++写局域网聊天程序获得了众 ...

  4. python 日程(待办事项) 提醒简单小程序——基于Timer和tkinter

    想找一个桌面待办事项提醒的软件,找了好久都没有找到合适的,现有软件的提醒时间都只是精确到上下午或晚上,没有能精确到分钟,便想着自己做一个,这样子还能顺带加强自己对python的学习. 功能目标:输入时 ...

  5. GPT-4 用 Laf 三分钟写了个完整的待办事项 App

    书接前文,上篇文章我们教大家如何三分钟时间用 Laf 实现一个自己的 ChatGPT. 一觉醒来,GPT-4 已经发布了! GPT-4 实现了真正的多模态,可以把纸笔画的原型直接写出网页代码.读论文时 ...

  6. 续集来了!我让 GPT-4 用 Laf 三分钟写了个完整的待办事项 App

    书接前文,上篇文章我们教大家如何三分钟时间用 Laf 实现一个自己的 ChatGPT. 一觉醒来,GPT-4 已经发布了! GPT-4 实现了真正的多模态,可以把纸笔画的原型直接写出网页代码.读论文时 ...

  7. 从零开始写一个Android待办事项ToDoListApp

    概述 初衷 作为一个程序员,每天要处理的事项越来越多,有时一件事情花费了太多的时间而忽略了还有其他事情等着处理.开始是借助Microsoft ToDo 来记录下待办事项,时不时的去看一下,勾选掉已经完 ...

  8. 什么是待办事项?日常办事项清单怎么写

    什么是待办事项?待办事项简单来说就是还没有完成,但是需要完成的事项.这类事项非常容易忘记,而且忘记了会给自己和周围的人带来麻烦.如果你每天事情比较多,想要记住所有的事情显然不可能,这就需要一个记录清单 ...

  9. 小狗钱钱_✅每次构建待办事项列表应用程序时,都会有一只小狗? 死了?

    小狗钱钱 by Hrishi Mittal 由Hrishi Mittal ✅每次构建待办事项列表应用程序时,都会有一只小狗 ? 死了? (✅ Every time you build a to-do ...

最新文章

  1. 决策树算法之特征工程-特征提取
  2. log4j, common-logging, slf4j 关系
  3. Angular CLI版本问题(Your global Angular CLI version (12.2.7) is greater than your local version (9.0.3))
  4. 串行口通信c语言代码,问一下单片机串行口通信用c语言实现的问题
  5. 论文公式编号右对齐_如何编辑处理论文中的公式
  6. uvccamera 后台服务_UVCCamera的一些坑
  7. Ecliipse-Alt+斜杠(/)不提示
  8. Zookeeper本地安装配置(windows)
  9. HTML5设计基本网页-basic frameset
  10. Yii源码解读 - 事件
  11. Ansible Loops
  12. 安卓商城 php后台,洛克商城APP 开源商城安卓源码 含前端和后台
  13. Java 程序员新机必备程序清单
  14. echats统计图表的设计与实现
  15. Tapestry(二):Tapestry基本知识
  16. simulink【1】分段函数
  17. 浅谈网络安全应急预案
  18. 手机云怎样与计算机同步,网易云音乐手机和电脑如何同步?手机和电脑同步教程介绍...
  19. “玲珑杯”ACM 热身赛 # 2.5 A-B (数论)
  20. 阿里巴巴2015校招电面

热门文章

  1. 加拿大访学/博后的子女选择公立学校及办理入学手续详解
  2. SR SHOW 2018上海国际服务机器人展 年底报名异常火爆
  3. 高新技术企业所得税政策有哪些?
  4. 【Nvidia显卡驱动安装失败】
  5. java jackson gson_Jackson vs Gson
  6. 2022宁夏杯B题论文分析+完整代码(大学生就业问题分析)
  7. 人工智能技术在国外舰载武器系统中的应用浅析
  8. TX2+Docker
  9. cmsplus实战之仿[我扫网]之九:导入网站模板文件
  10. Revitalizing CNN Attentions via Transformers in Self-Supervised Visual Representation Learning