This commit is contained in:
2025-11-12 17:57:45 +08:00
parent 1193dc2f69
commit 81d0131a7b
5 changed files with 345 additions and 334 deletions
+46 -9
View File
@@ -1,6 +1,6 @@
import tkinter as tk
from tkinter import ttk
from core.logger import LogLevel, PrintLog
from core.logger import LogLevel
from core.sfgrid.sfgrid_ui import TradeTargetUI
@@ -35,16 +35,20 @@ class MainWindow:
tab_bar_frame = ttk.Frame(content_area)
tab_bar_frame.pack(side=tk.LEFT, fill=tk.Y, padx=(0, 10))
# 创建自定义样式
self.create_custom_styles()
# 创建Tab按钮(垂直排列,文字垂直显示)
self.tab_buttons = []
strategy_names = ["蒙派\n策略", "涨停\n分析"]
strategy_names = ["蒙派\n策略", "涨停\n复盘"]
for idx, name in enumerate(strategy_names):
btn = ttk.Button(
tab_bar_frame,
text=name,
command=lambda i=idx: self.switch_strategy_tab(i),
width=4
width=4,
style='Bookmark.TButton' # 使用自定义书签样式
)
btn.pack(side=tk.TOP, pady=2, fill=tk.X)
self.tab_buttons.append(btn)
@@ -98,6 +102,38 @@ class MainWindow:
# 默认显示第一个策略
self.switch_strategy_tab(0)
def create_custom_styles(self):
"""创建自定义样式"""
style = ttk.Style()
# 创建书签样式
style.configure(
'Bookmark.TButton',
relief='flat',
borderwidth=1,
padding=(5, 10),
foreground='black',
background='#FFE599', # 浅黄色背景,类似便签纸
font=('Arial', 10, 'bold')
)
# 设置焦点样式(选中状态)
style.map(
'Bookmark.TButton',
background=[('active', '#F1C232'), ('pressed', '#F1C232')],
relief=[('pressed', 'sunken')]
)
# 创建选中状态的书签样式
style.configure(
'SelectedBookmark.TButton',
relief='flat',
borderwidth=1,
padding=(5, 10),
background='#3D85C6', # 蓝色背景表示选中状态
font=('Arial', 10, 'bold')
)
def create_global_log_panel(self, parent):
"""创建全局日志面板"""
# 日志区域(默认隐藏)
@@ -143,7 +179,6 @@ class MainWindow:
# 删除所有日志项
for item in self.log_table.get_children():
self.log_table.delete(item)
self.add_log(LogLevel.DEBUG, "日志已清空")
def create_strategy_frames(self, strategy_names):
"""创建各个策略的Frame"""
@@ -184,9 +219,12 @@ class MainWindow:
def update_tab_button_styles(self):
"""更新Tab按钮的样式以显示选中状态"""
# 注意:ttk.Button的样式需要通过ttk.Style来设置
# 这里简化处理,仅作为接口预留
pass
# 重置所有按钮为普通书签样式
for i, btn in enumerate(self.tab_buttons):
if i == self.current_strategy_index:
btn.configure(style='SelectedBookmark.TButton') # 选中状态
else:
btn.configure(style='Bookmark.TButton') # 普通状态
def toggle_log_panel(self):
"""切换日志面板的显示/隐藏"""
@@ -210,5 +248,4 @@ class MainWindow:
def run(self):
"""运行程序"""
self.root.mainloop()
self.root.mainloop()