Todo: 补充nsis集成需要的依赖 并提交uninstall logo的图片资源 并集成关于GUI版本控制显示代码
This commit is contained in:
51
main.py
51
main.py
@@ -43,6 +43,9 @@ class LoginWindow(QMainWindow):
|
||||
|
||||
self.initUI()
|
||||
|
||||
# 延迟设置版本检查器,确保WebSocket连接已建立
|
||||
QTimer.singleShot(5000, self.setup_version_checker)
|
||||
|
||||
def initUI(self):
|
||||
# 设置窗口基本属性
|
||||
self.setWindowTitle('AI客服智能助手')
|
||||
@@ -406,22 +409,22 @@ class LoginWindow(QMainWindow):
|
||||
"""处理token错误 - 显示红色错误信息并停止所有操作"""
|
||||
try:
|
||||
self.add_log(f"Token验证失败: {error_content}", "ERROR")
|
||||
|
||||
|
||||
# 在状态标签显示红色错误信息
|
||||
self.status_label.setText(f"🔴 {error_content}")
|
||||
self.status_label.setStyleSheet(
|
||||
"color: #dc3545; background: rgba(220, 53, 69, 0.1); border-radius: 12px; padding: 5px 10px; font-weight: bold;")
|
||||
|
||||
|
||||
# 重置按钮状态
|
||||
self.login_btn.setEnabled(True)
|
||||
self.login_btn.setText("重新连接")
|
||||
self.login_btn.setObjectName("loginButton") # 恢复原始样式
|
||||
|
||||
|
||||
# 清空已连接平台列表
|
||||
self.connected_platforms.clear()
|
||||
|
||||
|
||||
self.add_log("由于token无效,已停止所有连接操作", "ERROR")
|
||||
|
||||
|
||||
except Exception as e:
|
||||
self.add_log(f"处理token错误失败: {e}", "ERROR")
|
||||
|
||||
@@ -699,6 +702,44 @@ class LoginWindow(QMainWindow):
|
||||
self.quit_application()
|
||||
event.accept()
|
||||
|
||||
def setup_version_checker(self):
|
||||
"""设置版本检查器的GUI回调"""
|
||||
try:
|
||||
from WebSocket.backend_singleton import get_websocket_manager
|
||||
ws_manager = get_websocket_manager()
|
||||
if ws_manager:
|
||||
ws_manager.gui_update_callback = self.show_update_notification
|
||||
self.add_log("✅ 版本检查器GUI回调已设置", "SUCCESS")
|
||||
else:
|
||||
self.add_log("⚠️ WebSocket管理器未初始化", "WARNING")
|
||||
except Exception as e:
|
||||
self.add_log(f"❌ 设置版本检查器失败: {e}", "ERROR")
|
||||
|
||||
def show_update_notification(self, latest_version, download_url):
|
||||
"""显示版本更新通知"""
|
||||
try:
|
||||
reply = QMessageBox.question(
|
||||
self,
|
||||
"版本更新",
|
||||
f"发现新版本 {latest_version},是否立即更新?\n\n点击确定将打开下载页面。",
|
||||
QMessageBox.Yes | QMessageBox.No,
|
||||
QMessageBox.Yes
|
||||
)
|
||||
|
||||
if reply == QMessageBox.Yes:
|
||||
self.trigger_update(download_url)
|
||||
except Exception as e:
|
||||
self.add_log(f"❌ 显示更新通知失败: {e}", "ERROR")
|
||||
|
||||
def trigger_update(self, download_url):
|
||||
"""触发更新下载"""
|
||||
import webbrowser
|
||||
try:
|
||||
webbrowser.open(download_url)
|
||||
self.add_log("✅ 已打开更新下载页面", "SUCCESS")
|
||||
except Exception as e:
|
||||
self.add_log(f"❌ 打开下载页面失败: {e}", "ERROR")
|
||||
|
||||
|
||||
def main():
|
||||
"""主函数,用于测试界面"""
|
||||
|
||||
Reference in New Issue
Block a user