古诗句插入功能

pull/109/head
Maziang 3 months ago
parent bfdb9d124c
commit 07ac34ee46

@ -18,6 +18,7 @@ class QuoteFloatingWidget(QWidget):
# 定义信号
closed = pyqtSignal() # 窗口关闭信号
refresh_requested = pyqtSignal() # 刷新请求信号
insert_requested = pyqtSignal(str) # 插入请求信号,传递要插入的文本
def __init__(self, parent=None):
super().__init__(parent)
@ -111,6 +112,13 @@ class QuoteFloatingWidget(QWidget):
bottom_layout.addWidget(self.refresh_btn)
bottom_layout.addStretch()
# 插入按钮
self.insert_btn = QPushButton("插入")
self.insert_btn.setObjectName("insertButton")
self.insert_btn.clicked.connect(self.on_insert_clicked)
bottom_layout.addWidget(self.insert_btn)
main_layout.addLayout(bottom_layout)
# 设置主布局
@ -184,7 +192,7 @@ class QuoteFloatingWidget(QWidget):
color: white;
border-radius: 6px;
}}
QPushButton#refreshButton {{
QPushButton#refreshButton, QPushButton#insertButton {{
background-color: {colors['accent']};
color: white;
border: none;
@ -193,7 +201,7 @@ class QuoteFloatingWidget(QWidget):
font-size: 11px;
font-weight: 500;
}}
QPushButton#refreshButton:hover {{
QPushButton#refreshButton:hover, QPushButton#insertButton:hover {{
background-color: {colors['accent_hover']};
}}
""")
@ -254,7 +262,7 @@ class QuoteFloatingWidget(QWidget):
color: white;
border-radius: 6px;
}}
QPushButton#refreshButton {{
QPushButton#refreshButton, QPushButton#insertButton {{
background-color: {colors['accent']};
color: white;
border: none;
@ -263,7 +271,7 @@ class QuoteFloatingWidget(QWidget):
font-size: 11px;
font-weight: 500;
}}
QPushButton#refreshButton:hover {{
QPushButton#refreshButton:hover, QPushButton#insertButton:hover {{
background-color: {colors['accent_hover']};
}}
""")
@ -295,6 +303,22 @@ class QuoteFloatingWidget(QWidget):
# 同时直接获取新的内容并更新显示
self.fetch_and_update_quote()
def on_insert_clicked(self):
"""插入按钮点击事件"""
# 发送插入请求信号,传递完整的诗句信息
quote = self.quote_data.get("quote", "")
author = self.quote_data.get("author", "佚名")
source = self.quote_data.get("source", "")
# 构造完整的诗句文本
if source:
full_quote_text = f"{quote} —— {author}{source}"
else:
full_quote_text = f"{quote} —— {author}"
if quote:
self.insert_requested.emit(full_quote_text)
def fetch_and_update_quote(self):
"""获取新的谏言内容并更新显示"""
try:

@ -121,6 +121,7 @@ class WordStyleMainWindow(QMainWindow):
self.quote_floating_widget.hide() # 默认隐藏
self.quote_floating_widget.closed.connect(self.on_quote_floating_closed)
self.quote_floating_widget.refresh_requested.connect(self.refresh_daily_quote)
self.quote_floating_widget.insert_requested.connect(self.insert_quote_to_cursor)
# 设置窗口属性
self.setWindowTitle("文档1 - MagicWord")
@ -1800,6 +1801,20 @@ class WordStyleMainWindow(QMainWindow):
"""每日谏言悬浮窗口关闭时的处理"""
self.status_bar.showMessage("每日谏言悬浮窗口已关闭", 2000)
def insert_quote_to_cursor(self, quote_text):
"""将古诗句插入到光标位置"""
if hasattr(self, 'text_edit'):
# 获取当前光标位置
cursor = self.text_edit.textCursor()
# 在光标位置插入文本
cursor.insertText(quote_text + "\n")
# 更新状态栏提示
# 从文本中提取诗句部分用于显示
quote_only = quote_text.split(" —— ")[0] if " —— " in quote_text else quote_text
self.status_bar.showMessage(f"已插入古诗句: {quote_only}", 3000)
def toggle_weather_tools(self, checked):
"""切换天气工具组显示"""
if checked:

Loading…
Cancel
Save