修复:

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