From e7de20d50e55439c469754ed92bbff1f90a952a9 Mon Sep 17 00:00:00 2001 From: shuaikangzhou <863909694@qq.com> Date: Wed, 10 Jan 2024 20:03:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=8D=95=E4=B8=AA=E8=81=94?= =?UTF-8?q?=E7=B3=BB=E4=BA=BA=E9=80=89=E6=8B=A9=E5=AF=BC=E5=87=BA=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/DataBase/msg.py | 56 +++--- app/components/calendar_dialog.py | 39 +++- app/resources/icons/arrow-left.svg | 1 + app/resources/icons/arrow-right.svg | 1 + app/resources/resource.qrc | 2 + app/resources/resource_rc.py | 182 +++++++++++++++---- app/ui/Icon.py | 2 + app/ui/contact/contactInfo.py | 5 +- app/ui/contact/export/__init__.py | 0 app/ui/contact/export/exportUi.py | 91 ++++++++++ app/ui/contact/{ => export}/export_dialog.py | 122 +++++++++---- app/ui/menu/export_time_range.py | 21 ++- app/ui/menu/time_range.py | 2 + doc/images/contact_info.png | Bin 0 -> 114767 bytes 14 files changed, 413 insertions(+), 111 deletions(-) create mode 100644 app/resources/icons/arrow-left.svg create mode 100644 app/resources/icons/arrow-right.svg create mode 100644 app/ui/contact/export/__init__.py create mode 100644 app/ui/contact/export/exportUi.py rename app/ui/contact/{ => export}/export_dialog.py (53%) create mode 100644 doc/images/contact_info.png diff --git a/app/DataBase/msg.py b/app/DataBase/msg.py index 842784c..c41dc49 100644 --- a/app/DataBase/msg.py +++ b/app/DataBase/msg.py @@ -233,7 +233,7 @@ class Msg: # result.sort(key=lambda x: x[5]) return parser_chatroom_message(result) if username_.__contains__('@chatroom') else result - def get_messages_by_type(self, username_, type_, year_='all',time_range=None): + def get_messages_by_type(self, username_, type_, year_='all', time_range=None): if not self.open_flag: return None if time_range: @@ -344,6 +344,28 @@ class Msg: contacts.sort(key=lambda cur_contact: cur_contact[-1], reverse=True) return contacts + def get_messages_calendar(self, username_): + sql = ''' + SELECT strftime('%Y-%m-%d',CreateTime,'unixepoch','localtime') as days + from ( + SELECT MsgSvrID, CreateTime + FROM MSG + WHERE StrTalker = ? + ORDER BY CreateTime + ) + group by days + ''' + if not self.open_flag: + print('数据库未就绪') + return None + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + result = self.cursor.fetchall() + finally: + lock.release() + return [date[0] for date in result] + def get_messages_by_days(self, username_, is_Annual_report_=False, year_='2023'): if is_Annual_report_: sql = ''' @@ -694,39 +716,11 @@ class Msg: if __name__ == '__main__': - db_path = "./app/database/Msg/MSG.db" + db_path = "./Msg/MSG.db" msg = Msg() msg.init_database() wxid = 'wxid_0o18ef858vnu22' wxid = '24521163022@chatroom' wxid = 'wxid_vtz9jk9ulzjt22' # si print() - from app.util import compress_content - import xml.etree.ElementTree as ET - - msgs = msg.get_messages(wxid) - - for msg in msgs: - if msg[2] == 49 and msg[3] == 5: - xml = compress_content.decompress_CompressContent(msg[11]) - root = ET.XML(xml) - appmsg = root.find('appmsg') - title = appmsg.find('title').text - des = appmsg.find('des').text - url = appmsg.find('url').text - appinfo = root.find('appinfo') - show_display_name = appmsg.find('sourcedisplayname') - if show_display_name is not None: - show_display_name = show_display_name.text - else: - show_display_name = appinfo.find('appname').text - print(title, des, url, show_display_name) - msg_bytes = MessageBytesExtra() - msg_bytes.ParseFromString(msg[10]) - for tmp in msg_bytes.message2: - if tmp.field1 == 3: - thumb = tmp.field2 - print(thumb) - if tmp.field2 == 4: - app_logo = tmp.field2 - print('logo', app_logo) + print(msg.get_messages_calendar(wxid)) diff --git a/app/components/calendar_dialog.py b/app/components/calendar_dialog.py index f38026b..91898ef 100644 --- a/app/components/calendar_dialog.py +++ b/app/components/calendar_dialog.py @@ -1,8 +1,12 @@ import time -from PyQt5 import QtWidgets -from PyQt5.QtCore import QTimer, QThread, pyqtSignal -from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QMessageBox, QCalendarWidget, QWidget, QVBoxLayout +from datetime import datetime, timedelta +from PyQt5.QtCore import QTimer, QThread, pyqtSignal, Qt +from PyQt5.QtGui import QIcon +from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QMessageBox, QCalendarWidget, QWidget, QVBoxLayout, \ + QToolButton + +from app.ui.Icon import Icon class CalendarDialog(QDialog): @@ -18,12 +22,37 @@ class CalendarDialog(QDialog): self.setWindowTitle('选择日期') self.calendar = QCalendarWidget(self) self.calendar.clicked.connect(self.onDateChanged) + prev_btn = self.calendar.findChild(QToolButton, "qt_calendar_prevmonth") + prev_btn.setIcon(Icon.Arrow_left_Icon) + next_btn = self.calendar.findChild(QToolButton, "qt_calendar_nextmonth") + next_btn.setIcon(Icon.Arrow_right_Icon) + self.date_range = date_range if date_range: self.calendar.setDateRange(*date_range) + # 从第一天开始,依次添加日期到列表,直到该月的最后一天 + current_date = date_range[1] + while (current_date + timedelta(days=1)).month == date_range[1].month: + current_date += timedelta(days=1) + range_format = self.calendar.dateTextFormat(current_date) + range_format.setForeground(Qt.gray) + self.calendar.setDateTextFormat(current_date, range_format) + # 从第一天开始,依次添加日期到列表,直到该月的最后一天 + current_date = date_range[0] + while (current_date - timedelta(days=1)).month == date_range[0].month: + current_date -= timedelta(days=1) + range_format = self.calendar.dateTextFormat(current_date) + range_format.setForeground(Qt.gray) + self.calendar.setDateTextFormat(current_date, range_format) layout = QVBoxLayout(self) layout.addWidget(self.calendar) self.setLayout(layout) + def set_start_date(self): + if self.date_range: + self.calendar.setCurrentPage(self.date_range[0].year, self.date_range[0].month) + def set_end_date(self): + if self.date_range: + self.calendar.setCurrentPage(self.date_range[1].year, self.date_range[1].month) def onDateChanged(self): # 获取选择的日期 selected_date = self.calendar.selectedDate() @@ -37,11 +66,11 @@ class CalendarDialog(QDialog): if __name__ == '__main__': import sys - from datetime import datetime + from datetime import datetime, timedelta app = QApplication(sys.argv) # 设置日期范围 - start_date = datetime(2023, 12, 11) + start_date = datetime(2024, 1, 5) end_date = datetime(2024, 1, 9) date_range = (start_date.date(), end_date.date()) ex = CalendarDialog(date_range=date_range) diff --git a/app/resources/icons/arrow-left.svg b/app/resources/icons/arrow-left.svg new file mode 100644 index 0000000..7d5f037 --- /dev/null +++ b/app/resources/icons/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/arrow-right.svg b/app/resources/icons/arrow-right.svg new file mode 100644 index 0000000..47b6761 --- /dev/null +++ b/app/resources/icons/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/resource.qrc b/app/resources/resource.qrc index 9dc8036..b4edd97 100644 --- a/app/resources/resource.qrc +++ b/app/resources/resource.qrc @@ -41,5 +41,7 @@ icons/woman.svg icons/select.svg icons/unselect.svg + icons/arrow-left.svg + icons/arrow-right.svg diff --git a/app/resources/resource_rc.py b/app/resources/resource_rc.py index 6811953..bada8d0 100644 --- a/app/resources/resource_rc.py +++ b/app/resources/resource_rc.py @@ -16768,6 +16768,62 @@ qt_resource_data = b"\ \x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x37\x42\x31\x35\x22\ \x20\x70\x2d\x69\x64\x3d\x22\x32\x36\x30\x33\x33\x22\x3e\x3c\x2f\ \x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x03\x5f\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x38\x38\x37\x36\x34\x33\x37\x39\x31\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x31\x35\x36\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x30\x33\x2e\x33\ +\x34\x32\x39\x39\x37\x20\x38\x37\x2e\x30\x31\x33\x38\x39\x36\x61\ +\x34\x37\x2e\x39\x30\x38\x38\x32\x37\x20\x34\x37\x2e\x39\x30\x38\ +\x38\x32\x37\x20\x30\x20\x30\x20\x30\x20\x30\x2d\x37\x30\x2e\x39\ +\x39\x33\x31\x30\x32\x41\x36\x31\x2e\x34\x32\x31\x35\x37\x34\x20\ +\x36\x31\x2e\x34\x32\x31\x35\x37\x34\x20\x30\x20\x30\x20\x30\x20\ +\x37\x32\x33\x2e\x39\x30\x34\x34\x32\x39\x20\x31\x33\x2e\x32\x35\ +\x36\x38\x32\x33\x6c\x2d\x33\x2e\x31\x37\x33\x34\x34\x38\x20\x32\ +\x2e\x37\x36\x33\x39\x37\x31\x4c\x32\x34\x31\x2e\x32\x33\x33\x32\ +\x33\x20\x34\x37\x30\x2e\x39\x34\x39\x39\x31\x35\x6c\x2d\x32\x2e\ +\x34\x30\x35\x36\x37\x38\x20\x31\x2e\x38\x34\x32\x36\x34\x37\x63\ +\x2d\x31\x2e\x36\x33\x37\x39\x30\x39\x20\x31\x2e\x32\x32\x38\x34\ +\x33\x31\x2d\x33\x2e\x31\x37\x33\x34\x34\x38\x20\x32\x2e\x35\x35\ +\x39\x32\x33\x32\x2d\x34\x2e\x36\x30\x36\x36\x31\x38\x20\x33\x2e\ +\x39\x34\x31\x32\x31\x38\x2d\x32\x30\x2e\x30\x31\x33\x31\x39\x36\ +\x20\x31\x38\x2e\x39\x33\x38\x33\x31\x39\x2d\x32\x30\x2e\x39\x38\ +\x35\x37\x30\x34\x20\x34\x38\x2e\x31\x31\x33\x35\x36\x36\x2d\x32\ +\x2e\x38\x36\x36\x33\x34\x20\x36\x38\x2e\x30\x37\x35\x35\x37\x37\ +\x6c\x32\x2e\x38\x31\x35\x31\x35\x35\x20\x32\x2e\x39\x31\x37\x35\ +\x32\x35\x20\x34\x38\x34\x2e\x38\x32\x30\x39\x35\x34\x20\x34\x35\ +\x39\x2e\x39\x34\x35\x32\x31\x36\x63\x32\x32\x2e\x35\x32\x31\x32\ +\x34\x34\x20\x32\x31\x2e\x33\x34\x33\x39\x39\x37\x20\x36\x30\x2e\ +\x30\x39\x30\x37\x37\x33\x20\x32\x31\x2e\x33\x34\x33\x39\x39\x37\ +\x20\x38\x32\x2e\x36\x31\x32\x30\x31\x36\x20\x30\x20\x32\x30\x2e\ +\x30\x31\x33\x31\x39\x36\x2d\x31\x38\x2e\x39\x33\x38\x33\x31\x39\ +\x20\x32\x30\x2e\x39\x38\x35\x37\x30\x34\x2d\x34\x38\x2e\x31\x31\ +\x33\x35\x36\x36\x20\x32\x2e\x38\x36\x36\x33\x34\x2d\x36\x38\x2e\ +\x30\x37\x35\x35\x37\x37\x6c\x2d\x32\x2e\x38\x36\x36\x33\x34\x2d\ +\x32\x2e\x39\x36\x38\x37\x30\x39\x2d\x34\x34\x36\x2e\x38\x39\x33\ +\x31\x33\x32\x2d\x34\x32\x33\x2e\x39\x31\x31\x32\x32\x37\x4c\x38\ +\x30\x33\x2e\x33\x34\x32\x39\x39\x37\x20\x38\x37\x2e\x30\x31\x33\ +\x38\x39\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x33\x30\x33\ +\x31\x33\x33\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x31\x35\x37\x22\ +\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ \x00\x00\x09\xf9\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -19560,6 +19616,50 @@ qt_resource_data = b"\ \x91\x45\x16\x59\x64\x91\x45\x16\xff\xa5\x50\xea\xff\x03\xa2\x62\ \xb7\x9c\xc4\xc5\xc1\xc0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ +\x00\x00\x02\x99\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x38\x38\x37\x36\x38\x34\x30\x32\x39\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x37\x31\x33\x30\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x34\x30\x2e\x38\ +\x37\x31\x36\x39\x34\x20\x39\x37\x2e\x31\x31\x37\x33\x31\x34\x61\ +\x35\x36\x2e\x33\x39\x38\x34\x34\x20\x35\x36\x2e\x33\x39\x38\x34\ +\x34\x20\x30\x20\x30\x20\x31\x20\x30\x2d\x38\x30\x2e\x34\x36\x31\ +\x37\x37\x35\x20\x35\x38\x2e\x31\x31\x30\x33\x39\x33\x20\x35\x38\ +\x2e\x31\x31\x30\x33\x39\x33\x20\x30\x20\x30\x20\x31\x20\x38\x31\ +\x2e\x34\x36\x39\x37\x34\x36\x20\x30\x6c\x34\x36\x30\x2e\x37\x38\ +\x37\x32\x35\x37\x20\x34\x35\x35\x2e\x31\x30\x37\x34\x31\x34\x61\ +\x35\x36\x2e\x33\x39\x38\x34\x34\x20\x35\x36\x2e\x33\x39\x38\x34\ +\x34\x20\x30\x20\x30\x20\x31\x20\x30\x20\x38\x30\x2e\x34\x34\x35\ +\x37\x37\x35\x4c\x33\x32\x32\x2e\x33\x34\x31\x34\x34\x20\x31\x30\ +\x30\x37\x2e\x33\x33\x32\x31\x34\x31\x61\x35\x38\x2e\x31\x31\x30\ +\x33\x39\x33\x20\x35\x38\x2e\x31\x31\x30\x33\x39\x33\x20\x30\x20\ +\x30\x20\x31\x2d\x38\x31\x2e\x34\x36\x39\x37\x34\x36\x20\x30\x20\ +\x35\x36\x2e\x33\x39\x38\x34\x34\x20\x35\x36\x2e\x33\x39\x38\x34\ +\x34\x20\x30\x20\x30\x20\x31\x20\x30\x2d\x38\x30\x2e\x34\x36\x31\ +\x37\x37\x35\x4c\x36\x36\x30\x2e\x39\x35\x36\x30\x37\x36\x20\x35\ +\x31\x31\x2e\x39\x38\x35\x38\x34\x20\x32\x34\x30\x2e\x38\x37\x31\ +\x36\x39\x34\x20\x39\x37\x2e\x31\x31\x37\x33\x31\x34\x7a\x22\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x31\x31\x31\x31\x31\x31\x22\x20\x70\ +\x2d\x69\x64\x3d\x22\x37\x31\x33\x31\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ \x00\x00\x05\x66\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -20457,6 +20557,10 @@ qt_resource_name = b"\ \x08\x97\xaf\x87\ \x00\x73\ \x00\x74\x00\x61\x00\x72\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0e\ +\x08\xfa\x38\xa7\ +\x00\x61\ +\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x07\ \x0a\xa9\x5a\x07\ \x00\x63\ @@ -20493,6 +20597,10 @@ qt_resource_name = b"\ \x0f\x0e\xef\x47\ \x00\x77\ \x00\x65\x00\x69\x00\x78\x00\x69\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0f\ +\x0f\x22\x69\x47\ +\x00\x61\ +\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x05\ \x00\x33\x57\x47\ \x00\x30\ @@ -20530,7 +20638,7 @@ qt_resource_name = b"\ qt_resource_struct_v1 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x03\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x13\x52\ \x00\x00\x00\x50\x00\x01\x00\x00\x00\x01\x00\x00\x19\x78\ @@ -20557,22 +20665,24 @@ qt_resource_struct_v1 = b"\ \x00\x00\x02\x76\x00\x00\x00\x00\x00\x01\x00\x04\x0c\x41\ \x00\x00\x02\x90\x00\x00\x00\x00\x00\x01\x00\x04\x11\xe2\ \x00\x00\x02\xa8\x00\x00\x00\x00\x00\x01\x00\x04\x14\x12\ -\x00\x00\x02\xbc\x00\x00\x00\x00\x00\x01\x00\x04\x1e\x0f\ -\x00\x00\x02\xd6\x00\x02\x00\x00\x00\x08\x00\x00\x00\x25\ -\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x04\x26\x4a\ -\x00\x00\x03\x00\x00\x00\x00\x00\x00\x01\x00\x04\x2e\x00\ -\x00\x00\x03\x1a\x00\x00\x00\x00\x00\x01\x00\x04\x31\x18\ -\x00\x00\x03\x2e\x00\x00\x00\x00\x00\x01\x00\x04\x34\x91\ -\x00\x00\x03\x44\x00\x00\x00\x00\x00\x01\x00\x04\x3d\x9c\ -\x00\x00\x03\x5a\x00\x00\x00\x00\x00\x01\x00\x04\x44\xe1\ -\x00\x00\x03\x74\x00\x00\x00\x00\x00\x01\x00\x04\xc1\x58\ -\x00\x00\x03\x84\x00\x00\x00\x00\x00\x01\x00\x04\xc6\xc2\ -\x00\x00\x03\x94\x00\x00\x00\x00\x00\x01\x00\x04\xcc\x40\ -\x00\x00\x03\xa4\x00\x00\x00\x00\x00\x01\x00\x04\xd2\x63\ -\x00\x00\x03\xb4\x00\x00\x00\x00\x00\x01\x00\x04\xd8\x6c\ -\x00\x00\x03\xc4\x00\x00\x00\x00\x00\x01\x00\x04\xde\x8f\ -\x00\x00\x03\xd4\x00\x00\x00\x00\x00\x01\x00\x04\xe4\xd0\ -\x00\x00\x03\xe4\x00\x00\x00\x00\x00\x01\x00\x04\xeb\x23\ +\x00\x00\x02\xca\x00\x00\x00\x00\x00\x01\x00\x04\x17\x75\ +\x00\x00\x02\xde\x00\x00\x00\x00\x00\x01\x00\x04\x21\x72\ +\x00\x00\x02\xf8\x00\x02\x00\x00\x00\x08\x00\x00\x00\x27\ +\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x04\x29\xad\ +\x00\x00\x03\x22\x00\x00\x00\x00\x00\x01\x00\x04\x31\x63\ +\x00\x00\x03\x3c\x00\x00\x00\x00\x00\x01\x00\x04\x34\x7b\ +\x00\x00\x03\x50\x00\x00\x00\x00\x00\x01\x00\x04\x37\xf4\ +\x00\x00\x03\x66\x00\x00\x00\x00\x00\x01\x00\x04\x40\xff\ +\x00\x00\x03\x7c\x00\x00\x00\x00\x00\x01\x00\x04\x48\x44\ +\x00\x00\x03\x96\x00\x00\x00\x00\x00\x01\x00\x04\xc4\xbb\ +\x00\x00\x03\xba\x00\x00\x00\x00\x00\x01\x00\x04\xc7\x58\ +\x00\x00\x03\xca\x00\x00\x00\x00\x00\x01\x00\x04\xcc\xc2\ +\x00\x00\x03\xda\x00\x00\x00\x00\x00\x01\x00\x04\xd2\x40\ +\x00\x00\x03\xea\x00\x00\x00\x00\x00\x01\x00\x04\xd8\x63\ +\x00\x00\x03\xfa\x00\x00\x00\x00\x00\x01\x00\x04\xde\x6c\ +\x00\x00\x04\x0a\x00\x00\x00\x00\x00\x01\x00\x04\xe4\x8f\ +\x00\x00\x04\x1a\x00\x00\x00\x00\x00\x01\x00\x04\xea\xd0\ +\x00\x00\x04\x2a\x00\x00\x00\x00\x00\x01\x00\x04\xf1\x23\ " qt_resource_struct_v2 = b"\ @@ -20580,7 +20690,7 @@ qt_resource_struct_v2 = b"\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x8c\x68\xa4\x46\x85\ @@ -20633,38 +20743,42 @@ qt_resource_struct_v2 = b"\ \x00\x00\x02\x90\x00\x00\x00\x00\x00\x01\x00\x04\x11\xe2\ \x00\x00\x01\x8c\x68\xa6\x6b\x89\ \x00\x00\x02\xa8\x00\x00\x00\x00\x00\x01\x00\x04\x14\x12\ +\x00\x00\x01\x8c\xf3\x38\xf8\x1c\ +\x00\x00\x02\xca\x00\x00\x00\x00\x00\x01\x00\x04\x17\x75\ \x00\x00\x01\x8c\x16\x33\xc3\xa4\ -\x00\x00\x02\xbc\x00\x00\x00\x00\x00\x01\x00\x04\x1e\x0f\ +\x00\x00\x02\xde\x00\x00\x00\x00\x00\x01\x00\x04\x21\x72\ \x00\x00\x01\x8c\x68\xa5\xb8\xe6\ -\x00\x00\x02\xd6\x00\x02\x00\x00\x00\x08\x00\x00\x00\x25\ +\x00\x00\x02\xf8\x00\x02\x00\x00\x00\x08\x00\x00\x00\x27\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x04\x26\x4a\ +\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x04\x29\xad\ \x00\x00\x01\x8c\x16\x33\xc3\xa5\ -\x00\x00\x03\x00\x00\x00\x00\x00\x00\x01\x00\x04\x2e\x00\ +\x00\x00\x03\x22\x00\x00\x00\x00\x00\x01\x00\x04\x31\x63\ \x00\x00\x01\x8c\xee\x70\x7d\x1b\ -\x00\x00\x03\x1a\x00\x00\x00\x00\x00\x01\x00\x04\x31\x18\ +\x00\x00\x03\x3c\x00\x00\x00\x00\x00\x01\x00\x04\x34\x7b\ \x00\x00\x01\x8c\x68\x2b\xa2\xb9\ -\x00\x00\x03\x2e\x00\x00\x00\x00\x00\x01\x00\x04\x34\x91\ +\x00\x00\x03\x50\x00\x00\x00\x00\x00\x01\x00\x04\x37\xf4\ \x00\x00\x01\x8c\x68\xa8\x53\x77\ -\x00\x00\x03\x44\x00\x00\x00\x00\x00\x01\x00\x04\x3d\x9c\ +\x00\x00\x03\x66\x00\x00\x00\x00\x00\x01\x00\x04\x40\xff\ \x00\x00\x01\x8c\x68\x9c\x76\x1a\ -\x00\x00\x03\x5a\x00\x00\x00\x00\x00\x01\x00\x04\x44\xe1\ +\x00\x00\x03\x7c\x00\x00\x00\x00\x00\x01\x00\x04\x48\x44\ \x00\x00\x01\x8c\x9b\xb4\x01\x0f\ -\x00\x00\x03\x74\x00\x00\x00\x00\x00\x01\x00\x04\xc1\x58\ +\x00\x00\x03\x96\x00\x00\x00\x00\x00\x01\x00\x04\xc4\xbb\ +\x00\x00\x01\x8c\xf3\x39\x91\xdd\ +\x00\x00\x03\xba\x00\x00\x00\x00\x00\x01\x00\x04\xc7\x58\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ -\x00\x00\x03\x84\x00\x00\x00\x00\x00\x01\x00\x04\xc6\xc2\ +\x00\x00\x03\xca\x00\x00\x00\x00\x00\x01\x00\x04\xcc\xc2\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ -\x00\x00\x03\x94\x00\x00\x00\x00\x00\x01\x00\x04\xcc\x40\ +\x00\x00\x03\xda\x00\x00\x00\x00\x00\x01\x00\x04\xd2\x40\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ -\x00\x00\x03\xa4\x00\x00\x00\x00\x00\x01\x00\x04\xd2\x63\ +\x00\x00\x03\xea\x00\x00\x00\x00\x00\x01\x00\x04\xd8\x63\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ -\x00\x00\x03\xb4\x00\x00\x00\x00\x00\x01\x00\x04\xd8\x6c\ +\x00\x00\x03\xfa\x00\x00\x00\x00\x00\x01\x00\x04\xde\x6c\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ -\x00\x00\x03\xc4\x00\x00\x00\x00\x00\x01\x00\x04\xde\x8f\ +\x00\x00\x04\x0a\x00\x00\x00\x00\x00\x01\x00\x04\xe4\x8f\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ -\x00\x00\x03\xd4\x00\x00\x00\x00\x00\x01\x00\x04\xe4\xd0\ +\x00\x00\x04\x1a\x00\x00\x00\x00\x00\x01\x00\x04\xea\xd0\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ -\x00\x00\x03\xe4\x00\x00\x00\x00\x00\x01\x00\x04\xeb\x23\ +\x00\x00\x04\x2a\x00\x00\x00\x00\x00\x01\x00\x04\xf1\x23\ \x00\x00\x01\x8b\x0b\x05\xf6\x30\ " diff --git a/app/ui/Icon.py b/app/ui/Icon.py index d63dead..4e34fd2 100644 --- a/app/ui/Icon.py +++ b/app/ui/Icon.py @@ -36,6 +36,8 @@ class Icon: Woman_Icon_path = ':/icons/icons/woman.svg' Man_Icon = QIcon(':/icons/icons/man.svg') Woman_Icon = QIcon(':/icons/icons/woman.svg') + Arrow_left_Icon = QIcon(':/icons/icons/arrow-left.svg') + Arrow_right_Icon = QIcon(':/icons/icons/arrow-right.svg') # Man_Icon_pixmap = QPixmap(Man_Icon_path) # Woman_Icon_pixmap = QPixmap(Woman_Icon_path) # Logo_Icon = QIcon(':/icons/icons/logo.png') diff --git a/app/ui/contact/contactInfo.py b/app/ui/contact/contactInfo.py index 1b26047..0d11f1e 100644 --- a/app/ui/contact/contactInfo.py +++ b/app/ui/contact/contactInfo.py @@ -1,13 +1,12 @@ from PyQt5.QtCore import pyqtSignal, QUrl, QThread from PyQt5.QtGui import QDesktopServices -from PyQt5.QtWidgets import QWidget, QMenu, QAction, QToolButton, QMessageBox, QDialog +from PyQt5.QtWidgets import QWidget, QMenu, QAction, QToolButton, QMessageBox -from app.DataBase.output_pc import Output from app.ui.Icon import Icon from .contactInfoUi import Ui_Form from .userinfo import userinfo from ...person import Contact, Me -from .export_dialog import ExportDialog +from app.ui.contact.export.export_dialog import ExportDialog class ContactInfo(QWidget, Ui_Form): diff --git a/app/ui/contact/export/__init__.py b/app/ui/contact/export/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/ui/contact/export/exportUi.py b/app/ui/contact/export/exportUi.py new file mode 100644 index 0000000..05c8549 --- /dev/null +++ b/app/ui/contact/export/exportUi.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'exportUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(553, 394) + self.verticalLayout_3 = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setObjectName("label_3") + self.horizontalLayout.addWidget(self.label_3) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem) + self.btn_select_all = QtWidgets.QPushButton(Dialog) + self.btn_select_all.setObjectName("btn_select_all") + self.horizontalLayout.addWidget(self.btn_select_all) + self.comboBox_time = QtWidgets.QComboBox(Dialog) + self.comboBox_time.setObjectName("comboBox_time") + self.comboBox_time.addItem("") + self.comboBox_time.addItem("") + self.comboBox_time.addItem("") + self.horizontalLayout.addWidget(self.comboBox_time) + self.comboBox_type = QtWidgets.QComboBox(Dialog) + self.comboBox_type.setObjectName("comboBox_type") + self.comboBox_type.addItem("") + self.comboBox_type.addItem("") + self.horizontalLayout.addWidget(self.comboBox_type) + self.verticalLayout_3.addLayout(self.horizontalLayout) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setObjectName("label_2") + self.verticalLayout_2.addWidget(self.label_2) + self.horizontalLayout_2.addLayout(self.verticalLayout_2) + self.horizontalLayout_2.setStretch(0, 1) + self.verticalLayout_3.addLayout(self.horizontalLayout_2) + self.progressBar = QtWidgets.QProgressBar(Dialog) + self.progressBar.setProperty("value", 24) + self.progressBar.setObjectName("progressBar") + self.verticalLayout_3.addWidget(self.progressBar) + self.label_process = QtWidgets.QLabel(Dialog) + self.label_process.setText("") + self.label_process.setObjectName("label_process") + self.verticalLayout_3.addWidget(self.label_process) + self.label_time = QtWidgets.QLabel(Dialog) + self.label_time.setText("") + self.label_time.setObjectName("label_time") + self.verticalLayout_3.addWidget(self.label_time) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem1) + self.btn_start = QtWidgets.QPushButton(Dialog) + self.btn_start.setObjectName("btn_start") + self.horizontalLayout_3.addWidget(self.btn_start) + self.btn_cancel = QtWidgets.QPushButton(Dialog) + self.btn_cancel.setObjectName("btn_cancel") + self.horizontalLayout_3.addWidget(self.btn_cancel) + self.verticalLayout_3.addLayout(self.horizontalLayout_3) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label_3.setText(_translate("Dialog", "导出过程中请不要退出")) + self.btn_select_all.setText(_translate("Dialog", "全选")) + self.comboBox_time.setItemText(0, _translate("Dialog", "全部时间")) + self.comboBox_time.setItemText(1, _translate("Dialog", "最近三个月")) + self.comboBox_time.setItemText(2, _translate("Dialog", "自定义时间")) + self.comboBox_type.setItemText(0, _translate("Dialog", "全部聊天记录")) + self.comboBox_type.setItemText(1, _translate("Dialog", "不含图片/视频/文件")) + self.label_2.setText(_translate("Dialog", "消息类型")) + self.btn_start.setText(_translate("Dialog", "开始")) + self.btn_cancel.setText(_translate("Dialog", "取消")) diff --git a/app/ui/contact/export_dialog.py b/app/ui/contact/export/export_dialog.py similarity index 53% rename from app/ui/contact/export_dialog.py rename to app/ui/contact/export/export_dialog.py index bc1f957..11186e8 100644 --- a/app/ui/contact/export_dialog.py +++ b/app/ui/contact/export/export_dialog.py @@ -1,9 +1,13 @@ +import os import time - +from datetime import datetime, timedelta from PyQt5.QtCore import QTimer from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QDialog, QVBoxLayout, QCheckBox, QHBoxLayout, \ QProgressBar, QLabel, QMessageBox, QComboBox +from app.DataBase import msg_db +from app.ui.menu.export_time_range import TimeRangeDialog +from .exportUi import Ui_Dialog from app.DataBase.output_pc import Output types = { @@ -14,7 +18,7 @@ types = { '表情包': 47, '音乐与音频': 4903, '文件': 4906, - '分享卡片':4905, + '分享卡片': 4905, '拍一拍等系统消息': 10000 } Stylesheet = """ @@ -27,15 +31,18 @@ QPushButton:hover { """ -class ExportDialog(QDialog): +class ExportDialog(QDialog, Ui_Dialog): def __init__(self, contact=None, title="选择导出的类型", file_type="csv", parent=None): super(ExportDialog, self).__init__(parent) + self.select_all_flag = False + self.setupUi(self) self.setStyleSheet(Stylesheet) + self.contact = contact if file_type == 'html': self.export_type = Output.HTML self.export_choices = {"文本": True, "图片": True, "语音": False, "视频": False, "表情包": False, - '音乐与音频': False,'分享卡片':False,'文件': False, + '音乐与音频': False, '分享卡片': False, '文件': False, '拍一拍等系统消息': True} # 定义导出的数据类型,默认全部选择 elif file_type == 'csv': self.export_type = Output.CSV @@ -48,53 +55,40 @@ class ExportDialog(QDialog): elif file_type == 'docx': self.export_type = Output.DOCX self.export_choices = {"文本": True, "图片": False, "语音": False, "视频": False, - "表情包": False,'拍一拍等系统消息': True} # 定义导出的数据类型,默认全部选择 + "表情包": False, '拍一拍等系统消息': True} # 定义导出的数据类型,默认全部选择 else: self.export_choices = {"文本": True, "图片": True, "视频": True, "表情包": True} # 定义导出的数据类型,默认全部选择 self.setWindowTitle(title) - layout = QVBoxLayout(self) self.resize(400, 300) self.worker = None # 导出线程 - self.progress_bar = QProgressBar(self) - self.progress_label = QLabel(self) - self.time_label = QLabel(self) + for export_type, default_state in self.export_choices.items(): checkbox = QCheckBox(export_type) checkbox.setChecked(default_state) - layout.addWidget(checkbox) - layout.addWidget(self.progress_bar) - layout.addWidget(self.progress_label) - layout.addWidget(self.time_label) - self.notice_label = QLabel(self) - self.notice_label.setText( - "注意:导出HTML时选择图片、视频、语音、文件、音乐与音频、表情包(特别是表情包)\n会导致大大影响导出速度,请合理选择导出的类型") - layout.addWidget(self.notice_label) - hlayout = QHBoxLayout(self) - self.export_button = QPushButton("导出") - self.export_button.clicked.connect(self.export_data) - hlayout.addWidget(self.export_button) + self.verticalLayout_2.addWidget(checkbox) - self.cancel_button = QPushButton("取消") - self.cancel_button.clicked.connect(self.reject) # 使用reject关闭对话框 - hlayout.addWidget(self.cancel_button) - layout.addLayout(hlayout) - self.setLayout(layout) + self.btn_select_all.clicked.connect(self.select_all) + self.btn_start.clicked.connect(self.export_data) + self.btn_cancel.clicked.connect(self.reject) # 使用reject关闭对话框 + self.comboBox_time.activated.connect(self.set_export_date) self.timer = QTimer(self) self.time = 0 self.total_msg_num = 99999 # 总的消息个数 self.num = 0 # 当前完成的消息个数 self.timer.timeout.connect(self.update_elapsed_time) + self.time_range = None def export_data(self): - self.export_button.setEnabled(False) - self.cancel_button.setEnabled(False) + self.btn_start.setEnabled(False) + self.btn_cancel.setEnabled(False) # 在这里获取用户选择的导出数据类型 selected_types = {types[export_type]: checkbox.isChecked() for export_type, checkbox in zip(self.export_choices.keys(), self.findChildren(QCheckBox))} # 在这里根据用户选择的数据类型执行导出操作 print("选择的数据类型:", selected_types) - self.worker = Output(self.contact, type_=self.export_type, message_types=selected_types) + self.worker = Output(self.contact, type_=self.export_type, message_types=selected_types, + time_range=self.time_range) self.worker.progressSignal.connect(self.update_progress) self.worker.okSignal.connect(self.export_finished) self.worker.rangeSignal.connect(self.set_total_msg_num) @@ -104,34 +98,92 @@ class ExportDialog(QDialog): self.start_time = time.time() # self.accept() # 使用accept关闭对话框 + def set_export_date(self): + date_range = self.comboBox_time.currentText() + if date_range == '全部时间': + pass + elif date_range == '最近三个月': + + + # 获取今天的日期和时间 + today = datetime.now() + + # 获取今天的日期 + today_date = today.date() + + # 获取今天的24:00:00的时间戳 + today_midnight = datetime.combine(today_date, datetime.min.time()) + timedelta(days=1) + today_midnight_timestamp = int(today_midnight.timestamp()) + + # 获取三个月前的日期 + three_months_ago = today - timedelta(days=90) + + # 获取三个月前的00:00:00的时间戳 + three_months_ago_date = three_months_ago.date() + three_months_ago_midnight = datetime.combine(three_months_ago_date, datetime.min.time()) + three_months_ago_midnight_timestamp = int(three_months_ago_midnight.timestamp()) + self.time_range = (three_months_ago_midnight_timestamp, today_midnight_timestamp) + + elif date_range == '自定义时间': + date_range = None + chat_calendar = msg_db.get_messages_calendar(self.contact.wxid) + if chat_calendar: + start_time = datetime.strptime(chat_calendar[0], "%Y-%m-%d") + end_time = datetime.strptime(chat_calendar[-1], "%Y-%m-%d") + date_range = (start_time.date(),end_time.date()) + self.time_range_view = TimeRangeDialog(date_range=date_range,parent=self) + self.time_range_view.date_range_signal.connect(self.set_time_range) + self.time_range_view.show() + self.comboBox_time.setCurrentIndex(0) + # QMessageBox.warning(self, + # "别急别急", + # "马上就实现该功能" + # ) + + def set_time_range(self, time_range): + self.time_range = time_range + self.comboBox_time.setCurrentIndex(2) + def set_total_msg_num(self, num): self.total_msg_num = num # b''+num +(1,1) def export_finished(self): - self.export_button.setEnabled(True) - self.cancel_button.setEnabled(True) + self.btn_start.setEnabled(True) + self.btn_cancel.setEnabled(True) self.time = 0 end_time = time.time() print(f'总耗时:{end_time - self.start_time}s') reply = QMessageBox(self) reply.setIcon(QMessageBox.Information) reply.setWindowTitle('OK') - reply.setText(f"导出聊天记录成功\n在./data/目录下(跟exe文件在一起)") + reply.setText(f"导出聊天记录成功\n在./data/目录下(跟exe文件在一起)\n{os.getcwd()}\\data\\") reply.addButton("确认", QMessageBox.AcceptRole) reply.addButton("取消", QMessageBox.RejectRole) api = reply.exec_() self.accept() + def select_all(self): + self.select_all_flag = not self.select_all_flag + print('全选', self.select_all_flag) + if self.select_all_flag: + for checkbox in self.findChildren(QCheckBox): + checkbox.setChecked(True) + self.btn_select_all.setText('全不选') + else: + for checkbox in self.findChildren(QCheckBox): + checkbox.setChecked(False) + self.btn_select_all.setText('全选') + def update_elapsed_time(self): self.time += 1 - self.time_label.setText(f"耗时: {self.time}s") + self.label_time.setText(f"耗时: {self.time}s") def update_progress(self, progress_percentage): self.num += 1 progress_percentage = int((self.num) / self.total_msg_num * 100) - self.progress_bar.setValue(progress_percentage) - self.progress_label.setText(f"导出进度: {progress_percentage}%") + self.progressBar.setValue(progress_percentage) + self.label_process.setText(f"导出进度: {progress_percentage}%") if __name__ == '__main__': diff --git a/app/ui/menu/export_time_range.py b/app/ui/menu/export_time_range.py index 6b0a81d..eeb5098 100644 --- a/app/ui/menu/export_time_range.py +++ b/app/ui/menu/export_time_range.py @@ -4,12 +4,19 @@ from PyQt5.QtCore import QTimer, QThread, pyqtSignal from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QMessageBox, QCalendarWidget, QWidget, QVBoxLayout, QLabel from app.components.calendar_dialog import CalendarDialog -from .time_range import Ui_Dialog - +try: + from .time_range import Ui_Dialog +except: + from time_range import Ui_Dialog Stylesheet = ''' QToolButton{ color:#000000; } +QCalendarWidget QAbstractItemView:disabled { + +} +QCalendarWidget QAbstractItemView:enabled{ +} ''' @@ -32,6 +39,8 @@ class TimeRangeDialog(QDialog, Ui_Dialog): self.calendar = CalendarDialog(date_range=date_range, parent=self) self.calendar.selected_date_signal.connect(self.set_date) self.btn_ok.clicked.connect(self.ok) + self.btn_ok.setEnabled(False) + self.btn_ok_num = 0 self.btn_cancel.clicked.connect(lambda x: self.close()) self.start_time_flag = True self.start_timestamp = 0 @@ -43,11 +52,15 @@ class TimeRangeDialog(QDialog, Ui_Dialog): date_object = datetime.fromtimestamp(timestamp) str_start = date_object.strftime("%Y-%m-%d") self.toolButton_start_time.setText(str_start) + self.btn_ok_num += 1 else: date_object = datetime.fromtimestamp(timestamp) str_start = date_object.strftime("%Y-%m-%d") self.end_timestamp = timestamp + 86399 self.toolButton_end_time.setText(str_start) + self.btn_ok_num += 1 + if self.btn_ok_num == 2: + self.btn_ok.setEnabled(True) def ok(self): date_range = (self.start_timestamp, self.end_timestamp) @@ -56,10 +69,12 @@ class TimeRangeDialog(QDialog, Ui_Dialog): def select_date_start(self): self.start_time_flag = True + self.calendar.set_start_date() self.calendar.show() def select_date_end(self): self.start_time_flag = False + self.calendar.set_end_date() self.calendar.show() @@ -72,6 +87,6 @@ if __name__ == '__main__': start_date = datetime(2023, 12, 11) end_date = datetime(2024, 1, 9) date_range = (start_date.date(), end_date.date()) - ex = CalendarDialog(date_range=date_range) + ex = TimeRangeDialog(date_range=date_range) ex.show() sys.exit(app.exec_()) diff --git a/app/ui/menu/time_range.py b/app/ui/menu/time_range.py index 2f640ad..97e1813 100644 --- a/app/ui/menu/time_range.py +++ b/app/ui/menu/time_range.py @@ -46,6 +46,8 @@ class Ui_Dialog(object): self.toolButton_end_time.setObjectName("toolButton_end_time") self.horizontalLayout.addWidget(self.toolButton_end_time) self.verticalLayout.addLayout(self.horizontalLayout) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.btn_ok = QtWidgets.QPushButton(Dialog) diff --git a/doc/images/contact_info.png b/doc/images/contact_info.png new file mode 100644 index 0000000000000000000000000000000000000000..afb6e9b9b3f5bc3ba7ebdd4f15c504c772fbeb8d GIT binary patch literal 114767 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 z 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

y(th2l!+SUt$_l0F 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 l#7E}ly)IpA|Mt5(Os4Ud#)1pA5%