Skip to content

Commit 46bfb51

Browse files
committed
chore:魔数改枚举体,研究模式控制器美观的滑动条
1 parent 07121ae commit 46bfb51

File tree

3 files changed

+171
-15
lines changed

3 files changed

+171
-15
lines changed

src/ui/ui_mine_num_bar.py

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,52 @@ def setupUi(self, Form):
2222
Form.setWindowOpacity(10.0)
2323
self.verticalSlider = QtWidgets.QSlider(Form)
2424
self.verticalSlider.setGeometry(QtCore.QRect(30, 60, 22, 261))
25-
self.verticalSlider.setStyleSheet("QSlider {\n"
26-
" padding: 2px;\n"
27-
" height: 40px;\n"
25+
self.verticalSlider.setStyleSheet("QSlider::groove:vertical {\n"
26+
" border: 0px solid #bbbbbb;\n"
27+
" background-color: #50A6EA;\n"
28+
" border-radius: 4px;\n"
29+
" width: 16px;\n"
30+
"}\n"
31+
"\n"
32+
"QSlider::handle:vertical {\n"
33+
" background: #ffffff;\n"
34+
" border: 1px solid rgb(207,207,207);\n"
35+
" height: 12px;\n"
36+
" margin: 0 -5px;\n"
37+
" border-radius: 7px;\n"
38+
"}\n"
39+
"\n"
40+
"/* 已滑过的部分(下方 → 滑块位置) */\n"
41+
"QSlider::sub-page:vertical {\n"
42+
" background: qlineargradient(\n"
43+
" spread:pad,\n"
44+
" x1:0, y1:0,\n"
45+
" x2:0, y2:1,\n"
46+
" stop:0 #ddd5d5,\n"
47+
" stop:0.5 #dad3d3,\n"
48+
" stop:1 #ddd5d5\n"
49+
" );\n"
50+
" border-radius: 4px;\n"
51+
"}\n"
52+
"\n"
53+
"/* 未滑过的部分(滑块位置 → 顶部) */\n"
54+
"QSlider::add-page:vertical {\n"
55+
" background: qlineargradient(\n"
56+
" spread:pad,\n"
57+
" x1:0, y1:1,\n"
58+
" x2:0, y2:0,\n"
59+
" stop:0 #50A6EA,\n"
60+
" stop:0.5 #87C1F1,\n"
61+
" stop:1 #50A6EA\n"
62+
" );\n"
63+
" \n"
64+
" border-radius: 4px;\n"
65+
"}\n"
66+
"\n"
67+
"/* 禁用态 */\n"
68+
"QSlider::add-page:vertical:disabled,\n"
69+
"QSlider::sub-page:vertical:disabled {\n"
70+
" background: #b9b9b9;\n"
2871
"}\n"
2972
"")
3073
self.verticalSlider.setOrientation(QtCore.Qt.Vertical)
@@ -40,7 +83,7 @@ def setupUi(self, Form):
4083
font.setWeight(75)
4184
self.label_4.setFont(font)
4285
self.label_4.setContextMenuPolicy(QtCore.Qt.PreventContextMenu)
43-
self.label_4.setText("32")
86+
self.label_4.setText("20")
4487
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
4588
self.label_4.setObjectName("label_4")
4689
self.label_5 = QtWidgets.QLabel(Form)

src/utils.py

Lines changed: 77 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,9 @@ def display_names(cls):
3636

3737

3838
class GameBoardState(BaseDiaPlayEnum):
39-
# GameBoardState::Ready => Ok(1),
40-
# GameBoardState::Playing => Ok(2),
41-
# GameBoardState::Win => Ok(3),
42-
# GameBoardState::Loss => Ok(4),
43-
# GameBoardState::PreFlaging => Ok(5),
44-
# GameBoardState::Display => Ok(6),
39+
'''
40+
关于鼠标状态的枚举体,这些魔数遵循ms_toollib标准
41+
'''
4542
Ready = 1
4643
Playing = 2
4744
Win = 3
@@ -63,8 +60,81 @@ def display_name(self):
6360
case GameBoardState.PreFlaging:
6461
return _translate("Form", "预标记")
6562
case GameBoardState.Display:
66-
return _translate("Form", "显示")
63+
return _translate("Form", "回放")
64+
65+
66+
67+
class MouseState(BaseDiaPlayEnum):
68+
'''
69+
关于鼠标状态的枚举体,这些魔数遵循ms_toollib标准
70+
'''
71+
UpUp = 1
72+
UpDown = 2
73+
UpDownNotFlag = 3
74+
DownUp = 4
75+
Chording = 5
76+
ChordingNotFlag = 6
77+
DownUpAfterChording = 7
78+
Undefined = 8
79+
80+
@property
81+
def display_name(self):
82+
match self:
83+
case GameBoardState.UpUp:
84+
return _translate("Form", "双键抬起")
85+
case GameBoardState.UpDown:
86+
return _translate("Form", "右键按下且标过雷")
87+
case GameBoardState.UpDownNotFlag:
88+
return _translate("Form", "右键按下且没有标过雷")
89+
case GameBoardState.DownUp:
90+
return _translate("Form", "左键按下")
91+
case GameBoardState.Chording:
92+
return _translate("Form", "双键按下")
93+
case GameBoardState.ChordingNotFlag:
94+
return _translate("Form", "双键按下且先按下右键且没有标雷")
95+
case GameBoardState.DownUpAfterChording:
96+
return _translate("Form", "双击后先弹起右键左键还没有弹起")
97+
case GameBoardState.Undefined:
98+
return _translate("Form", "未初始化")
99+
100+
101+
102+
class GameMode(BaseDiaPlayEnum):
103+
'''
104+
关于游戏模式的枚举体,这些魔数遵循evf标准(ms_toollib也是遵循evf标准)
105+
参考:
106+
https://github.com/eee555/ms-toollib/blob/main/evf%E6%A0%87%E5%87%86.md
107+
'''
108+
Standard = 0
109+
Win7 = 4
110+
ClassicNoGuess = 5
111+
StrictNoGuess = 6
112+
WeakNoGuess = 7
113+
BlessingMode = 8
114+
GuessableNoGuess = 9
115+
LuckyMode = 10
67116

117+
@property
118+
def display_name(self):
119+
match self:
120+
case GameBoardState.Standard:
121+
return _translate("Form", "标准")
122+
case GameBoardState.Win7:
123+
return _translate("Form", "win7")
124+
case GameBoardState.ClassicNoGuess:
125+
return _translate("Form", "经典无猜")
126+
case GameBoardState.StrictNoGuess:
127+
return _translate("Form", "强无猜")
128+
case GameBoardState.WeakNoGuess:
129+
return _translate("Form", "弱无猜")
130+
case GameBoardState.BlessingMode:
131+
return _translate("Form", "准无猜")
132+
case GameBoardState.GuessableNoGuess:
133+
return _translate("Form", "强可猜")
134+
case GameBoardState.LuckyMode:
135+
return _translate("Form", "弱可猜")
136+
137+
68138

69139
def get_paths():
70140
if getattr(sys, "frozen", False):

uiFiles/ui_mine_num_bar.ui

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,52 @@
4444
</rect>
4545
</property>
4646
<property name="styleSheet">
47-
<string notr="true">QSlider {
48-
padding: 2px;
49-
height: 40px;
47+
<string notr="true">QSlider::groove:vertical {
48+
border: 0px solid #bbbbbb;
49+
background-color: #50A6EA;
50+
border-radius: 4px;
51+
width: 16px;
52+
}
53+
54+
QSlider::handle:vertical {
55+
background: #ffffff;
56+
border: 1px solid rgb(207,207,207);
57+
height: 12px;
58+
margin: 0 -5px;
59+
border-radius: 7px;
60+
}
61+
62+
/* 已滑过的部分(下方 → 滑块位置) */
63+
QSlider::sub-page:vertical {
64+
background: qlineargradient(
65+
spread:pad,
66+
x1:0, y1:0,
67+
x2:0, y2:1,
68+
stop:0 #ddd5d5,
69+
stop:0.5 #dad3d3,
70+
stop:1 #ddd5d5
71+
);
72+
border-radius: 4px;
73+
}
74+
75+
/* 未滑过的部分(滑块位置 → 顶部) */
76+
QSlider::add-page:vertical {
77+
background: qlineargradient(
78+
spread:pad,
79+
x1:0, y1:1,
80+
x2:0, y2:0,
81+
stop:0 #50A6EA,
82+
stop:0.5 #87C1F1,
83+
stop:1 #50A6EA
84+
);
85+
86+
border-radius: 4px;
87+
}
88+
89+
/* 禁用态 */
90+
QSlider::add-page:vertical:disabled,
91+
QSlider::sub-page:vertical:disabled {
92+
background: #b9b9b9;
5093
}
5194
</string>
5295
</property>
@@ -81,7 +124,7 @@
81124
<enum>Qt::PreventContextMenu</enum>
82125
</property>
83126
<property name="text">
84-
<string notr="true">32</string>
127+
<string notr="true">20</string>
85128
</property>
86129
<property name="alignment">
87130
<set>Qt::AlignCenter</set>

0 commit comments

Comments
 (0)