CursorTokenLogin/layout/main1.ui
2026-05-11 14:27:31 +08:00

991 lines
77 KiB
XML

<?xml version='1.0' encoding='utf-8'?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>900</width>
<height>650</height>
</rect>
</property>
<property name="windowTitle">
<string>牛马Cursor登录器</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout_central">
<property name="leftMargin">
<number>8</number>
</property>
<property name="topMargin">
<number>8</number>
</property>
<property name="rightMargin">
<number>8</number>
</property>
<property name="bottomMargin">
<number>8</number>
</property>
<item>
<widget class="QSplitter" name="splitterMainLog">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="childrenCollapsible">
<bool>false</bool>
</property>
<widget class="QWidget" name="widgetMainArea">
<layout class="QVBoxLayout" name="verticalLayout_mainArea">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QSplitter" name="splitterBody">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="childrenCollapsible">
<bool>false</bool>
</property>
<widget class="QListWidget" name="tabList">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>220</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">QListWidget {
border: 1px solid palette(mid);
border-radius: 4px;
background: palette(base);
color: palette(text);
outline: none;
}
QListWidget::item {
min-height: 38px;
padding: 8px 12px;
border-bottom: 1px solid palette(midlight);
}
QListWidget::item:selected {
color: palette(highlighted-text);
background: palette(highlight);
}
QListWidget::item:hover:!selected {
background: palette(alternate-base);
}</string>
</property>
<property name="currentRow">
<number>0</number>
</property>
<item>
<property name="text">
<string>Token切换</string>
</property>
</item>
<item>
<property name="text">
<string>一键续杯</string>
</property>
</item>
<item>
<property name="text">
<string>Cursor 配置</string>
</property>
</item>
<item>
<property name="text">
<string>帮助</string>
</property>
</item>
</widget>
<widget class="QStackedWidget" name="contentStack">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="pageLogin">
<layout class="QVBoxLayout" name="verticalLayout_pageLogin">
<item>
<widget class="QGroupBox" name="groupToken">
<property name="title">
<string>Token 输入</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_token">
<item>
<widget class="QTextEdit" name="txtToken">
<property name="placeholderText">
<string>请粘贴 Cursor Token 到这里...</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_tokenActions">
<item>
<widget class="QPushButton" name="btnChange">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color: #0078D4;
color: white;
border-radius: 5px;
}
QPushButton:hover {
background-color: #106EBE;
}
QPushButton:pressed {
background-color: #005A9E;
}</string>
</property>
<property name="text">
<string>🚀 开始换号</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnOnlineShop">
<property name="minimumSize">
<size>
<width>160</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>220</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color: #FF9800;
color: white;
border-radius: 5px;
}
QPushButton:hover {
background-color: #F57C00;
}
QPushButton:pressed {
background-color: #E65100;
}</string>
</property>
<property name="text">
<string>在线购买Token</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageRenewal">
<layout class="QVBoxLayout" name="verticalLayout_pageRenewal">
<item>
<widget class="QGroupBox" name="groupDeviceId">
<property name="title">
<string>设备号</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_deviceId">
<item>
<widget class="QLineEdit" name="txtDeviceId">
<property name="readOnly">
<bool>true</bool>
</property>
<property name="placeholderText">
<string>设备号将在程序启动后自动生成...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnCopyDeviceId">
<property name="minimumSize">
<size>
<width>88</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>复制</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupActivationCode">
<property name="title">
<string>激活码</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_activationCode">
<item>
<widget class="QLabel" name="lblActivationCode">
<property name="text">
<string>激活码:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="txtActivationCode">
<property name="placeholderText">
<string>请输入激活码...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnActivateRenewal">
<property name="minimumSize">
<size>
<width>88</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>激活</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnBuyActivationCode">
<property name="minimumSize">
<size>
<width>88</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>在线购买</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupMemberStatus">
<property name="title">
<string>会员状态</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_memberStatus">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_memberStatusHeader">
<item>
<widget class="QLabel" name="lblMemberStatus">
<property name="text">
<string>当前状态:未刷新</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_memberStatus">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btnRefreshMemberStatus">
<property name="minimumSize">
<size>
<width>88</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>刷新</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout_memberInfo">
<item row="0" column="0">
<widget class="QLabel" name="lblMemberLevelTitle">
<property name="text">
<string>会员等级:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="lblMemberLevel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblAccountTypeTitle">
<property name="text">
<string>账号类型:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="lblAccountType">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lblActivatedAtTitle">
<property name="text">
<string>激活时间:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="lblActivatedAt">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lblExpiredAtTitle">
<property name="text">
<string>到期时间:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="lblExpiredAt">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_oneClickRenewal">
<item>
<widget class="QPushButton" name="btnOneClickRenewal">
<property name="minimumSize">
<size>
<width>444</width>
<height>48</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>48</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color: #D83B01;
color: white;
border-radius: 5px;
}
QPushButton:hover {
background-color: #C23900;
}
QPushButton:pressed {
background-color: #A4262C;
}</string>
</property>
<property name="text">
<string>一键续杯</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="lblRenewalWarning">
<property name="styleSheet">
<string notr="true">color: #D83B01; font-weight: bold;</string>
</property>
<property name="text">
<string>请用完后再点击续杯,如发现大量未使用完就续杯情况,一律封号处理,请悉知!</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_renewal">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageCursorConfig">
<layout class="QVBoxLayout" name="verticalLayout_pageCursorConfig">
<item>
<widget class="QGroupBox" name="groupCursor">
<property name="title">
<string>Cursor 路径</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_cursorPath">
<item>
<widget class="QLabel" name="lblCursor">
<property name="text">
<string>路径:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="txtCursorPath">
<property name="placeholderText">
<string>请选择 Cursor 安装路径...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnBrowseCursor">
<property name="text">
<string>浏览</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnAutoCursorPath">
<property name="minimumSize">
<size>
<width>88</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>自动查找</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnOpenCursor">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="text">
<string>打开 Cursor</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_cursorConfig">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageHelp">
<layout class="QHBoxLayout" name="horizontalLayout_pageHelp">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="helpTabList">
<property name="minimumSize">
<size>
<width>140</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>190</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">QListWidget {
border: 1px solid palette(mid);
border-radius: 4px;
background: palette(base);
color: palette(text);
outline: none;
}
QListWidget::item {
min-height: 34px;
padding: 8px 12px;
border-bottom: 1px solid palette(midlight);
}
QListWidget::item:selected {
color: palette(highlighted-text);
background: palette(highlight);
}
QListWidget::item:hover:!selected {
background: palette(alternate-base);
}</string>
</property>
<property name="currentRow">
<number>0</number>
</property>
<item>
<property name="text">
<string>应急检修</string>
</property>
</item>
<item>
<property name="text">
<string>使用说明</string>
</property>
</item>
<item>
<property name="text">
<string>捐赠支持</string>
</property>
</item>
<item>
<property name="text">
<string>关于软件</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="helpContentStack">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="pageHelpEmergency">
<layout class="QVBoxLayout" name="verticalLayout_helpEmergency">
<item>
<widget class="QGroupBox" name="groupHelpEmergency">
<property name="title">
<string>应急检修</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_helpEmergencyContent">
<item>
<widget class="QLabel" name="lblHelpEmergencyDesc">
<property name="text">
<string>打开应急检修工具面板,可进行 DB Browser 下载、清除 Cursor 缓存、Token 提取等操作。</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnEmergencyRepair">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>打开应急检修</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_helpEmergency">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageHelpUsageGuide">
<layout class="QVBoxLayout" name="verticalLayout_helpUsageGuide">
<item>
<widget class="QGroupBox" name="groupHelpUsageGuide">
<property name="title">
<string>使用说明</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_helpUsageGuideContent">
<item>
<widget class="QLabel" name="lblHelpUsageGuideDesc">
<property name="text">
<string>查看软件使用说明图片,支持滚轮查看和缩放。</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnUsageGuide">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>打开使用说明</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_helpUsageGuide">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageHelpDonate">
<layout class="QVBoxLayout" name="verticalLayout_helpDonate">
<item>
<widget class="QGroupBox" name="groupHelpDonate">
<property name="title">
<string>捐赠支持</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_helpDonateContent">
<item>
<widget class="QLabel" name="lblHelpDonateDesc">
<property name="text">
<string>打开捐赠支持窗口,查看微信和支付宝捐赠二维码。</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnDonate">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>打开捐赠支持</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_helpDonate">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageHelpAbout">
<layout class="QVBoxLayout" name="verticalLayout_helpAbout">
<item>
<widget class="QGroupBox" name="groupHelpAbout">
<property name="title">
<string>关于软件</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_helpAboutContent">
<item>
<widget class="QLabel" name="lblHelpAboutDesc">
<property name="text">
<string>查看当前软件版本、用途和交流群信息。</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnAbout">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>查看关于软件</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_helpAbout">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QGroupBox" name="groupLog">
<property name="minimumSize">
<size>
<width>0</width>
<height>140</height>
</size>
</property>
<property name="title">
<string>日志展示</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_log">
<item>
<widget class="QTextEdit" name="txtLog">
<property name="readOnly">
<bool>true</bool>
</property>
<property name="placeholderText">
<string>日志输出...</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_logButtons">
<item>
<spacer name="horizontalSpacer_log">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btnCheckUpdate">
<property name="minimumSize">
<size>
<width>88</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>检查更新</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnClearLog">
<property name="minimumSize">
<size>
<width>88</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>清空日志</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>900</width>
<height>33</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>设置</string>
</property>
<addaction name="actionExit" />
</widget>
<addaction name="menuFile" />
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="sizeGripEnabled">
<bool>true</bool>
</property>
</widget>
<action name="actionExit">
<property name="text">
<string>退出</string>
</property>
</action>
<action name="actionEmergencyRepair">
<property name="text">
<string>应急检修</string>
</property>
</action>
<action name="actionUsageGuide">
<property name="text">
<string>使用说明</string>
</property>
</action>
<action name="actionDonate">
<property name="text">
<string>捐赠支持</string>
</property>
</action>
<action name="actionAbout">
<property name="text">
<string>关于软件</string>
</property>
</action>
</widget>
<resources />
<connections>
<connection>
<sender>tabList</sender>
<signal>currentRowChanged(int)</signal>
<receiver>contentStack</receiver>
<slot>setCurrentIndex(int)</slot>
<hints>
<hint type="sourcelabel">
<x>93</x>
<y>120</y>
</hint>
<hint type="destinationlabel">
<x>420</x>
<y>120</y>
</hint>
</hints>
</connection>
<connection>
<sender>helpTabList</sender>
<signal>currentRowChanged(int)</signal>
<receiver>helpContentStack</receiver>
<slot>setCurrentIndex(int)</slot>
<hints>
<hint type="sourcelabel">
<x>220</x>
<y>180</y>
</hint>
<hint type="destinationlabel">
<x>520</x>
<y>180</y>
</hint>
</hints>
</connection>
</connections>
</ui>