|
|
|
|
@ -770,6 +770,19 @@ class MarkTextMainWindow(QMainWindow):
|
|
|
|
|
|
|
|
|
|
tools_menu.addSeparator()
|
|
|
|
|
|
|
|
|
|
# 添加刷新功能
|
|
|
|
|
refresh_weather_action = QAction('刷新天气(&R)', self)
|
|
|
|
|
refresh_weather_action.setShortcut('F5')
|
|
|
|
|
refresh_weather_action.triggered.connect(self.refresh_weather_info)
|
|
|
|
|
tools_menu.addAction(refresh_weather_action)
|
|
|
|
|
|
|
|
|
|
refresh_quote_action = QAction('刷新名言(&F)', self)
|
|
|
|
|
refresh_quote_action.setShortcut('F6')
|
|
|
|
|
refresh_quote_action.triggered.connect(self.refresh_quote_info)
|
|
|
|
|
tools_menu.addAction(refresh_quote_action)
|
|
|
|
|
|
|
|
|
|
tools_menu.addSeparator()
|
|
|
|
|
|
|
|
|
|
insert_weather_action = QAction('插入天气(&I)', self)
|
|
|
|
|
insert_weather_action.triggered.connect(self.insert_weather_to_editor)
|
|
|
|
|
tools_menu.addAction(insert_weather_action)
|
|
|
|
|
@ -864,6 +877,9 @@ class MarkTextMainWindow(QMainWindow):
|
|
|
|
|
toolbar.addSeparator()
|
|
|
|
|
toolbar.addAction("学习模式", self.switch_to_learning_mode)
|
|
|
|
|
toolbar.addAction("导入文件", self.import_file)
|
|
|
|
|
toolbar.addSeparator()
|
|
|
|
|
toolbar.addAction("刷新天气", self.refresh_weather_info)
|
|
|
|
|
toolbar.addAction("刷新名言", self.refresh_quote_info)
|
|
|
|
|
|
|
|
|
|
self.addToolBar(toolbar)
|
|
|
|
|
|
|
|
|
|
@ -1248,6 +1264,46 @@ class MarkTextMainWindow(QMainWindow):
|
|
|
|
|
QMessageBox.critical(self, "错误", f"插入名言失败: {str(e)}")
|
|
|
|
|
else:
|
|
|
|
|
QMessageBox.warning(self, "提示", "请先打开一个文档")
|
|
|
|
|
|
|
|
|
|
def refresh_weather_info(self):
|
|
|
|
|
"""刷新天气信息 - 强制刷新缓存"""
|
|
|
|
|
if not self.network_service:
|
|
|
|
|
QMessageBox.warning(self, "提示", "网络服务正在初始化中,请稍后再试")
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# 清除缓存以强制刷新
|
|
|
|
|
if hasattr(self.network_service, 'clear_weather_cache'):
|
|
|
|
|
self.network_service.clear_weather_cache()
|
|
|
|
|
|
|
|
|
|
# 重新获取天气信息
|
|
|
|
|
weather_info = self.network_service.get_weather_info(use_cache=False)
|
|
|
|
|
if weather_info:
|
|
|
|
|
self.statusBar().showMessage("天气信息已刷新", 2000)
|
|
|
|
|
# 更新显示
|
|
|
|
|
self.update_info_display()
|
|
|
|
|
else:
|
|
|
|
|
QMessageBox.warning(self, "提示", "无法刷新天气信息")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
QMessageBox.critical(self, "错误", f"刷新天气信息失败: {str(e)}")
|
|
|
|
|
|
|
|
|
|
def refresh_quote_info(self):
|
|
|
|
|
"""刷新每日名言 - 获取新的名言"""
|
|
|
|
|
if not self.network_service:
|
|
|
|
|
QMessageBox.warning(self, "提示", "网络服务正在初始化中,请稍后再试")
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# 获取新的名言
|
|
|
|
|
quote_text = self.network_service.get_daily_quote()
|
|
|
|
|
if quote_text:
|
|
|
|
|
self.statusBar().showMessage("每日名言已刷新", 2000)
|
|
|
|
|
# 更新显示
|
|
|
|
|
self.update_info_display()
|
|
|
|
|
else:
|
|
|
|
|
QMessageBox.warning(self, "提示", "无法刷新名言信息")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
QMessageBox.critical(self, "错误", f"刷新名言信息失败: {str(e)}")
|
|
|
|
|
|
|
|
|
|
def update_word_count(self):
|
|
|
|
|
"""更新字数统计"""
|
|
|
|
|
|