我是靠谱客的博主 谨慎猫咪,这篇文章主要介绍使用PyQt5实现日记本demo,现在分享给大家,希望可以做个参考。

 1.UI界面代码

使用Qt Designer设计界面,自动生成的代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'D:PythonptqtPyqtCodediary_bookdiary.ui' # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(377, 442) self.centralWidget = QtWidgets.QWidget(MainWindow) self.centralWidget.setObjectName("centralWidget") self.groupBox = QtWidgets.QGroupBox(self.centralWidget) self.groupBox.setGeometry(QtCore.QRect(10, 70, 341, 331)) self.groupBox.setObjectName("groupBox") self.textEdit_write_diary = QtWidgets.QTextEdit(self.groupBox) self.textEdit_write_diary.setGeometry(QtCore.QRect(10, 110, 321, 221)) self.textEdit_write_diary.setObjectName("textEdit_write_diary") self.label = QtWidgets.QLabel(self.groupBox) self.label.setGeometry(QtCore.QRect(20, 32, 54, 12)) self.label.setObjectName("label") self.label_2 = QtWidgets.QLabel(self.groupBox) self.label_2.setGeometry(QtCore.QRect(20, 65, 54, 12)) self.label_2.setObjectName("label_2") self.lineEdit_date = QtWidgets.QLineEdit(self.groupBox) self.lineEdit_date.setGeometry(QtCore.QRect(60, 30, 130, 20)) self.lineEdit_date.setObjectName("lineEdit_date") self.lineEdit_weather = QtWidgets.QLineEdit(self.groupBox) self.lineEdit_weather.setGeometry(QtCore.QRect(60, 60, 113, 20)) self.lineEdit_weather.setObjectName("lineEdit_weather") self.label_3 = QtWidgets.QLabel(self.groupBox) self.label_3.setGeometry(QtCore.QRect(20, 90, 54, 12)) self.label_3.setObjectName("label_3") self.groupBox_2 = QtWidgets.QGroupBox(self.centralWidget) self.groupBox_2.setGeometry(QtCore.QRect(20, 10, 201, 51)) self.groupBox_2.setObjectName("groupBox_2") self.dateTimeEdit = QtWidgets.QDateTimeEdit(self.groupBox_2) self.dateTimeEdit.setGeometry(QtCore.QRect(0, 20, 194, 22)) self.dateTimeEdit.setObjectName("dateTimeEdit") self.groupBox_3 = QtWidgets.QGroupBox(self.centralWidget) self.groupBox_3.setGeometry(QtCore.QRect(230, 10, 120, 51)) self.groupBox_3.setObjectName("groupBox_3") self.comboBox = QtWidgets.QComboBox(self.groupBox_3) self.comboBox.setGeometry(QtCore.QRect(30, 20, 69, 22)) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") MainWindow.setCentralWidget(self.centralWidget) self.menuBar = QtWidgets.QMenuBar(MainWindow) self.menuBar.setGeometry(QtCore.QRect(0, 0, 377, 23)) self.menuBar.setObjectName("menuBar") self.menu = QtWidgets.QMenu(self.menuBar) self.menu.setObjectName("menu") self.menu_2 = QtWidgets.QMenu(self.menuBar) self.menu_2.setObjectName("menu_2") self.menu_3 = QtWidgets.QMenu(self.menuBar) self.menu_3.setTitle("") self.menu_3.setObjectName("menu_3") MainWindow.setMenuBar(self.menuBar) self.action_open = QtWidgets.QAction(MainWindow) self.action_open.setObjectName("action_open") self.action_close = QtWidgets.QAction(MainWindow) self.action_close.setObjectName("action_close") self.action_alter = QtWidgets.QAction(MainWindow) self.action_alter.setObjectName("action_alter") self.action_save = QtWidgets.QAction(MainWindow) self.action_save.setObjectName("action_save") self.action_about = QtWidgets.QAction(MainWindow) self.action_about.setObjectName("action_about") self.menu.addAction(self.action_open) self.menu.addSeparator() self.menu.addAction(self.action_alter) self.menu.addAction(self.action_save) self.menu.addAction(self.action_close) self.menu_2.addAction(self.action_about) self.menuBar.addAction(self.menu.menuAction()) self.menuBar.addAction(self.menu_2.menuAction()) self.menuBar.addAction(self.menu_3.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.groupBox.setTitle(_translate("MainWindow", "写日记")) self.label.setText(_translate("MainWindow", "日期:")) self.label_2.setText(_translate("MainWindow", "天气:")) self.label_3.setText(_translate("MainWindow", "内容")) self.groupBox_2.setTitle(_translate("MainWindow", "日期")) self.groupBox_3.setTitle(_translate("MainWindow", "天气")) self.comboBox.setItemText(0, _translate("MainWindow", "晴朗")) self.comboBox.setItemText(1, _translate("MainWindow", "下雨")) self.comboBox.setItemText(2, _translate("MainWindow", "阴天")) self.comboBox.setItemText(3, _translate("MainWindow", "下雪")) self.comboBox.setItemText(4, _translate("MainWindow", "雾霾")) self.menu.setTitle(_translate("MainWindow", "文件")) self.menu_2.setTitle(_translate("MainWindow", "关于我们")) self.action_open.setText(_translate("MainWindow", "打开日记本")) self.action_close.setText(_translate("MainWindow", "关闭")) self.action_alter.setText(_translate("MainWindow", "修改日记")) self.action_save.setText(_translate("MainWindow", "保存日记")) self.action_about.setText(_translate("MainWindow", "关于")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())

2.功能代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# -*- coding: utf-8 -*- """ Module implementing MainWindow. """ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QMainWindow, QMessageBox from Ui_diary import Ui_MainWindow import sys from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QApplication,QWidget,QFileDialog from PyQt5.QtCore import QDate,QDateTime,QTime class MainWindow(QMainWindow, Ui_MainWindow): """ 记账本小demo """ def __init__(self, parent=None): """ 初始化界面 """ super(MainWindow, self).__init__(parent) self.setupUi(self) #弹出日历控件 self.dateTimeEdit.setCalendarPopup(True) #信号 self.dateTimeEdit.dateTimeChanged.connect(self.display_date) self.comboBox.currentIndexChanged.connect(self.display_weather) def display_date(self): """把所选择的日期显示在单行文本框中""" date = self.dateTimeEdit.date() date_info = self.lineEdit_date.setText(date.toString("yyyy-MM-dd dddd")) date_info = self.textEdit_write_diary.setPlainText(date.toString("yyyy-MM-dd dddd") + 'n') def display_weather(self,weather): """把所选择的天气显示在单行文本框中""" weather = self.comboBox.currentText() self.lineEdit_weather.setText(weather) #self.textEdit_write_diary.setPlainText(a + weather) @pyqtSlot() def on_action_open_triggered(self): """ 打开文件,显示在多行文本框中,即显示日记在文本框中 """ print("打开") filename=QFileDialog.getOpenFileName(self,'打开文件夹','.') #r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 #关键字with在不再需要访问文件后将其关闭 ,open返回的对象存储在f这个变量当中 with open(filename[0],'r') as f: my_txt=f.read() self.textEdit_write_diary.setPlainText(my_txt) @pyqtSlot() def on_action_alter_triggered(self): """ 修改日记 """ print("修改日记") filename=QFileDialog.getOpenFileName(self,'打开文件夹','.') #r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 #关键字with在不再需要访问文件后将其关闭 ,open返回的对象存储在f这个变量当中 with open(filename[0],'r') as f: my_txt=f.read() self.textEdit_write_diary.setPlainText(my_txt) @pyqtSlot() def on_action_save_triggered(self): """ Slot documentation goes here. """ filename=QFileDialog.getSaveFileName(self,'保存文件','.') with open(filename[0],'w') as f: my_text=self.textEdit_write_diary.toPlainText() f.write(my_text) @pyqtSlot() def on_action_close_triggered(self): """ 关闭窗口 """ main_Window = QApplication.instance() main_Window.quit() @pyqtSlot() def on_action_about_triggered(self): """ 弹出一个对画框 """ QMessageBox.information(self, '关于我们', '欢迎使用日记本小程序~') if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) ui = MainWindow() ui.show() sys.exit(app.exec_())

3.结果展示

 

最后

以上就是谨慎猫咪最近收集整理的关于使用PyQt5实现日记本demo的全部内容,更多相关使用PyQt5实现日记本demo内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部