你现在写一个更加复杂的成熟的项目
时间: 2024-04-14 08:28:15 浏览: 14
当然!让我们来看一个更加复杂和成熟的项目示例。假设我们要开发一个简单的待办事项管理器,可以添加、编辑和删除任务。
我们可以使用 PyQt 和 SQLite 数据库来实现这个项目。以下是一个基本的代码示例:
```python
import sys
import sqlite3
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QPushButton, QVBoxLayout, QWidget
class TodoManager(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Todo Manager")
self.setGeometry(100, 100, 400, 300)
self.todo_list = QListWidget(self)
self.task_input = QLineEdit(self)
self.add_button = QPushButton("Add Task", self)
self.add_button.clicked.connect(self.add_task)
self.layout = QVBoxLayout()
self.layout.addWidget(QLabel("Task:"))
self.layout.addWidget(self.task_input)
self.layout.addWidget(self.add_button)
self.layout.addWidget(self.todo_list)
self.central_widget = QWidget()
self.central_widget.setLayout(self.layout)
self.setCentralWidget(self.central_widget)
self.initialize_database()
def initialize_database(self):
self.connection = sqlite3.connect("todo.db")
cursor = self.connection.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS tasks (id INTEGER PRIMARY KEY AUTOINCREMENT, task TEXT)")
def add_task(self):
task = self.task_input.text()
if task:
cursor = self.connection.cursor()
cursor.execute("INSERT INTO tasks (task) VALUES (?)", (task,))
self.connection.commit()
self.task_input.clear()
self.load_tasks()
def load_tasks(self):
self.todo_list.clear()
cursor = self.connection.cursor()
cursor.execute("SELECT * FROM tasks")
tasks = cursor.fetchall()
for task in tasks:
self.todo_list.addItem(task[1])
app = QApplication(sys.argv)
todo_manager = TodoManager()
todo_manager.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个继承自 QMainWindow 的 TodoManager 类。它包含了一个任务列表(使用 QListWidget),一个文本输入框和一个添加按钮。我们还初始化了一个 SQLite 数据库来存储任务。
当用户点击添加按钮时,会调用 `add_task` 方法,该方法会将任务添加到数据库中,并重新加载任务列表。
这只是一个简单的示例,你可以根据需要扩展和改进它。你可以添加编辑和删除任务的功能,改进界面设计,增加其他功能等等。
希望这个示例能给你提供一些关于使用 Python 和 PyQt 开发成熟项目的启示!