修复:
- 登录弹窗细节调整:错误提示行平时隐藏(消除密码框下方大段空白)、logo 加大到 64x64、窗口加宽到 380、取消/登录按钮缩小 - 启动时节点未配置:隐藏主窗口只显示登录框,登录成功恢复主窗口,取消则直接退出程序
This commit is contained in:
+17
-7
@@ -1123,7 +1123,7 @@ class LoginDialog(QDialog):
|
||||
super().__init__(parent)
|
||||
self.setWindowTitle("节点配置登录")
|
||||
self.setWindowIcon(load_icon())
|
||||
self.setFixedSize(340, 190)
|
||||
self.setFixedSize(380, 200)
|
||||
self.setStyleSheet(f"""
|
||||
QDialog {{ background-color: {C_BG}; }}
|
||||
QLabel {{ color: {C_TEXT}; font-family: "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; }}
|
||||
@@ -1137,15 +1137,15 @@ class LoginDialog(QDialog):
|
||||
}}
|
||||
QPushButton#btnOk {{
|
||||
background-color: {C_GREEN}; color: #fff; border: none;
|
||||
border-radius: 6px; padding: 7px 18px;
|
||||
font-size: 13px; font-weight: bold;
|
||||
border-radius: 6px; padding: 4px 12px;
|
||||
font-size: 12px; font-weight: bold;
|
||||
}}
|
||||
QPushButton#btnOk:hover {{ background-color: #5ed978; }}
|
||||
QPushButton#btnOk:disabled {{ background-color: #2a3a2e; color: #666; }}
|
||||
QPushButton#btnCancel {{
|
||||
background-color: {C_CARD}; color: {C_SUBTEXT};
|
||||
border: 1px solid {C_BORDER}; border-radius: 6px;
|
||||
padding: 7px 18px; font-size: 13px;
|
||||
padding: 4px 12px; font-size: 12px;
|
||||
}}
|
||||
""")
|
||||
|
||||
@@ -1155,8 +1155,8 @@ class LoginDialog(QDialog):
|
||||
|
||||
# 左侧 logo
|
||||
logo = QLabel()
|
||||
logo.setPixmap(load_icon().pixmap(48, 48))
|
||||
logo.setFixedSize(48, 48)
|
||||
logo.setPixmap(load_icon().pixmap(64, 64))
|
||||
logo.setFixedSize(64, 64)
|
||||
logo.setAlignment(Qt.AlignCenter)
|
||||
root.addWidget(logo, 0, Qt.AlignVCenter)
|
||||
|
||||
@@ -1175,6 +1175,8 @@ class LoginDialog(QDialog):
|
||||
|
||||
self.lb_err = QLabel("")
|
||||
self.lb_err.setStyleSheet(f"color: {C_RED}; font-size: 11px;")
|
||||
self.lb_err.setFixedHeight(14)
|
||||
self.lb_err.hide() # 无错误时不占空间,避免密码框下方留大片空白
|
||||
form.addWidget(self.lb_err)
|
||||
|
||||
bottom = QHBoxLayout()
|
||||
@@ -1201,10 +1203,12 @@ class LoginDialog(QDialog):
|
||||
password = self.ed_pass.text()
|
||||
if not user or not password:
|
||||
self.lb_err.setText("请输入用户名和密码")
|
||||
self.lb_err.show()
|
||||
return
|
||||
self.btn_ok.setEnabled(False)
|
||||
self.btn_cancel.setEnabled(False)
|
||||
self.lb_err.setText("正在登录...")
|
||||
self.lb_err.show()
|
||||
threading.Thread(target=self._worker, args=(user, password), daemon=True).start()
|
||||
|
||||
def _worker(self, user, password):
|
||||
@@ -1236,6 +1240,7 @@ class LoginDialog(QDialog):
|
||||
self.accept()
|
||||
else:
|
||||
self.lb_err.setText(info)
|
||||
self.lb_err.show()
|
||||
|
||||
# ── 状态指示灯(小圆点) ───────────────────────────────
|
||||
|
||||
@@ -1596,9 +1601,14 @@ class MainWindow(QWidget):
|
||||
|
||||
# ── 节点登录 ──
|
||||
def _maybe_show_login(self):
|
||||
"""启动时节点未配置则弹出登录框。"""
|
||||
"""启动时节点未配置:隐藏主窗口只显示登录框;登录成功恢复,取消则退出。"""
|
||||
if _endpoint_domain() == "???":
|
||||
self.hide()
|
||||
self._show_login_dialog()
|
||||
if _endpoint_domain() == "???":
|
||||
self.quit_app() # 未登录且无可用节点,直接退出
|
||||
return
|
||||
self.show()
|
||||
|
||||
def _show_login_dialog(self):
|
||||
"""弹出登录框;成功后重载节点并刷新标题。"""
|
||||
|
||||
Reference in New Issue
Block a user