Add label_group and background_group to NumWidget class

This commit is contained in:
shenjack 2024-04-06 18:30:32 +08:00
parent eb5b1fadd5
commit ec3cce88c2
Signed by: shenjack
GPG Key ID: 7B1134A979775551

View File

@ -43,6 +43,8 @@ class NumWidget:
self._x = x self._x = x
font = load_font("黑体", 15) font = load_font("黑体", 15)
font_height = font.ascent - font.descent font_height = font.ascent - font.descent
self.label_group = Group(parent=group, order=20)
self.background_group = Group(parent=group, order=10)
self.label = Label( self.label = Label(
x=x + 17, x=x + 17,
y=y + 7, y=y + 7,
@ -54,7 +56,7 @@ class NumWidget:
height=font_height + 4, height=font_height + 4,
anchor_x="center", anchor_x="center",
batch=batch, batch=batch,
group=group, group=self.label_group,
) )
self.background = Rectangle( self.background = Rectangle(
x=x, x=x,
@ -63,7 +65,7 @@ class NumWidget:
height=font_height + 4, height=font_height + 4,
color=gray, color=gray,
batch=batch, batch=batch,
group=group, group=self.background_group,
) )
@property @property
@ -136,11 +138,29 @@ class MainWindow(Window):
self.num_batch = Batch() self.num_batch = Batch()
self.num_group = Group(parent=self.main_group, order=10) self.num_group = Group(parent=self.main_group, order=10)
# 从大到小 # 从大到小
num_group = Group(parent=self.num_group, order=10)
for i in range(256): for i in range(256):
num_name = NumWidget( num_name = NumWidget(
num=i, batch=self.num_batch, group=self.num_group, x=40, y=50 num=i, batch=self.num_batch, group=num_group, x=40, y=50
) )
self.num_dict[i] = num_name self.num_dict[i] = num_name
self.num_hints = []
# 每个部分的取值提示
num_hint_group = Group(parent=self.main_group, order=20)
# hp: 3~6 len = 4
# 要覆盖住 4 个数字
self.num_hints.append(
Rectangle(
x=40 - 3,
y=self.height - (170 + 30 * 3),
width=46,
height=80,
color=(255, 255, 255, 255),
batch=self.num_batch,
group=num_hint_group,
)
)
# 0-9 sorted # 0-9 sorted
# 取前9个拿到血量这边 # 取前9个拿到血量这边
# index 3~6 之和 + 154 = 血量 # index 3~6 之和 + 154 = 血量
@ -173,7 +193,6 @@ class MainWindow(Window):
for status, widgets in self.display_dict.items(): for status, widgets in self.display_dict.items():
num_count = 0 num_count = 0
for widget in widgets: for widget in widgets:
# print(f"status: {status}, num_count: {num_count} {status.value=}")
widget.x = 40 + (65 * status.value) widget.x = 40 + (65 * status.value)
widget.y = self.height - (170 + 30 * num_count) widget.y = self.height - (170 + 30 * num_count)
num_count += 1 num_count += 1