给我一个用pyqt5 制作待办事项提醒app的例子
时间: 2024-05-04 16:18:12 浏览: 11
好的,下面是一个简单的待办事项提醒的例子,使用了 PyQT5 和 QML。
1. 创建一个名为 main.py 的文件,输入以下代码:
```python
import sys
from PyQt5.QtCore import QUrl, Qt
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtCore import QObject, pyqtSignal
class Task(QObject):
titleChanged = pyqtSignal()
timeChanged = pyqtSignal()
def __init__(self, title='', time='', parent=None):
super().__init__(parent)
self._title = title
self._time = time
def getTitle(self):
return self._title
def setTitle(self, title):
self._title = title
self.titleChanged.emit()
def getTime(self):
return self._time
def setTime(self, time):
self._time = time
self.timeChanged.emit()
if __name__ == '__main__':
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
task_model = Task('Task Title', 'Task Time')
engine.rootContext().setContextProperty('task_model', task_model)
engine.load(QUrl.fromLocalFile('main.qml'))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
```
2. 创建一个名为 main.qml 的文件,输入以下代码:
```qml
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
visible: true
width: 640
height: 480
title: "Task Reminder"
Task {
id: task
title: "Task Title"
time: "Task Time"
onTitleChanged: task_title.text = title
onTimeChanged: task_time.text = time
}
Column {
spacing: 10
Text {
id: task_title
text: task.title
font.pixelSize: 24
}
Text {
id: task_time
text: task.time
font.pixelSize: 16
}
TextField {
id: title_input
placeholderText: "Enter task title"
onTextChanged: task.setTitle(text)
}
TextField {
id: time_input
placeholderText: "Enter task time"
onTextChanged: task.setTime(text)
}
}
}
```
3. 运行 main.py 文件,将会看到一个窗口,可以输入待办事项的标题和时间,并在下方实时更新。
这是一个非常简单的例子,你可以根据自己的需求进行修改和扩展。