[Update(tmp)] ※Dropdown Menu開きません。 Config Window: Option Menu系widgetを全てframeを使った自作widgetにすり替え。

This commit is contained in:
Sakamoto Shiina
2023-10-06 16:30:56 +09:00
parent 29e106ce9a
commit 8dd1ddd6ac
5 changed files with 40 additions and 24 deletions

View File

@@ -692,14 +692,14 @@ class View():
def updateList_MicHost(self, new_mic_host_list:list): def updateList_MicHost(self, new_mic_host_list:list):
self.view_variable.LIST_MIC_HOST = new_mic_host_list self.view_variable.LIST_MIC_HOST = new_mic_host_list
vrct_gui.config_window.sb__optionmenu_mic_host.configure(values=new_mic_host_list) # vrct_gui.config_window.sb__optionmenu_mic_host.configure(values=new_mic_host_list)
def updateSelected_MicHost(self, selected_mic_host_name:str): def updateSelected_MicHost(self, selected_mic_host_name:str):
self.view_variable.VAR_MIC_HOST.set(selected_mic_host_name) self.view_variable.VAR_MIC_HOST.set(selected_mic_host_name)
def updateList_MicDevice(self, new_mic_device_list): def updateList_MicDevice(self, new_mic_device_list):
self.view_variable.LIST_MIC_DEVICE = new_mic_device_list self.view_variable.LIST_MIC_DEVICE = new_mic_device_list
vrct_gui.config_window.sb__optionmenu_mic_device.configure(values=new_mic_device_list) # vrct_gui.config_window.sb__optionmenu_mic_device.configure(values=new_mic_device_list)
def updateSelected_MicDevice(self, default_selected_mic_device_name:str): def updateSelected_MicDevice(self, default_selected_mic_device_name:str):
self.view_variable.VAR_MIC_DEVICE.set(default_selected_mic_device_name) self.view_variable.VAR_MIC_DEVICE.set(default_selected_mic_device_name)
@@ -716,7 +716,7 @@ class View():
def updateList_SpeakerDevice(self, new_speaker_device_list): def updateList_SpeakerDevice(self, new_speaker_device_list):
self.view_variable.LIST_SPEAKER_DEVICE = new_speaker_device_list self.view_variable.LIST_SPEAKER_DEVICE = new_speaker_device_list
vrct_gui.config_window.sb__optionmenu_speaker_device.configure(values=new_speaker_device_list) # vrct_gui.config_window.sb__optionmenu_speaker_device.configure(values=new_speaker_device_list)
@staticmethod @staticmethod
def updateSetProgressBar_SpeakerEnergy(new_speaker_energy): def updateSetProgressBar_SpeakerEnergy(new_speaker_energy):

View File

@@ -3,7 +3,7 @@ from typing import Union
from customtkinter import CTkOptionMenu, CTkFont, CTkFrame, CTkLabel, CTkRadioButton, CTkEntry, CTkSlider, CTkSwitch, CTkCheckBox, CTkProgressBar from customtkinter import CTkOptionMenu, CTkFont, CTkFrame, CTkLabel, CTkRadioButton, CTkEntry, CTkSlider, CTkSwitch, CTkCheckBox, CTkProgressBar
from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth, createOptionMenuBox
SETTING_BOX_COLUMN = 1 SETTING_BOX_COLUMN = 1
@@ -76,19 +76,30 @@ class _SettingBoxGenerator():
def createSettingBoxDropdownMenu(self, for_var_label_text, for_var_desc_text, optionmenu_attr_name, command, variable=None, dropdown_menu_values=None): def createSettingBoxDropdownMenu(self, for_var_label_text, for_var_desc_text, optionmenu_attr_name, command, variable=None, dropdown_menu_values=None):
(setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(for_var_label_text, for_var_desc_text) (setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(for_var_label_text, for_var_desc_text)
option_menu_widget = CTkOptionMenu( option_menu_widget = createOptionMenuBox(
setting_box_item_frame, parent_widget=setting_box_item_frame,
height=self.settings.uism.SB__OPTIONMENU_HEIGHT, optionmenu_bg_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR,
width=self.settings.uism.SB__OPTIONMENU_WIDTH, optionmenu_hovered_bg_color=self.settings.ctm.SB__OPTIONMENU_HOVERED_BG_COLOR,
values=dropdown_menu_values, optionmenu_clicked_bg_color=self.settings.ctm.SB__OPTIONMENU_CLICKED_BG_COLOR,
button_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR, optionmenu_ipadx=(8,8),
button_hover_color=self.settings.ctm.SB__OPTIONMENU_HOVERED_BG_COLOR, optionmenu_ipady=2,
fg_color=self.settings.ctm.SB__OPTIONMENU_BG_COLOR, optionmenu_ipady_between_img=8,
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__OPTION_MENU_FONT_SIZE, weight="normal"), optionmenu_min_height=self.settings.uism.SB__OPTIONMENU_MIN_HEIGHT,
optionmenu_min_width=self.settings.uism.SB__OPTIONMENU_MIN_WIDTH,
variable=variable, variable=variable,
command=command, font_family=self.settings.FONT_FAMILY,
anchor="w", font_size=self.settings.uism.SB__OPTION_MENU_FONT_SIZE,
text_color=self.settings.ctm.LABELS_TEXT_COLOR,
image_file=self.settings.image_file.ARROW_LEFT.rotate(90),
image_size=(14,14),
command=lambda _e: print(_e),
# command=open_selectable_language_window_command,
# optionmenu_position="center",
# setattr_widget=main_window,
# image_widget_attr_name=arrow_img_attr_name,
) )
option_menu_widget.grid(row=1, column=SETTING_BOX_COLUMN, sticky="e") option_menu_widget.grid(row=1, column=SETTING_BOX_COLUMN, sticky="e")
setattr(self.config_window, optionmenu_attr_name, option_menu_widget) setattr(self.config_window, optionmenu_attr_name, option_menu_widget)

View File

@@ -232,6 +232,7 @@ class ColorThemeManager():
self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR
self.config_window.SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_850_COLOR self.config_window.SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_850_COLOR
self.config_window.SB__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_950_COLOR
self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR
self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR

View File

@@ -146,9 +146,9 @@ class UiScalingManager():
self.config_window.SB__OPTION_MENU_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE self.config_window.SB__OPTION_MENU_FONT_SIZE = self.config_window.SB__SELECTOR_FONT_SIZE
self.config_window.SB__OPTIONMENU_HEIGHT = self._calculateUiSize(30) self.config_window.SB__OPTIONMENU_MIN_HEIGHT = self._calculateUiSize(30)
self.config_window.SB__OPTIONMENU_WIDTH = self._calculateUiSize(200) self.config_window.SB__OPTIONMENU_MIN_WIDTH = self._calculateUiSize(200)
self.config_window.SB__DROPDOWN_MENU_WIDTH = self.config_window.SB__OPTIONMENU_WIDTH self.config_window.SB__DROPDOWN_MENU_WIDTH = self.config_window.SB__OPTIONMENU_MIN_WIDTH
self.config_window.SB__DROPDOWN_MENU_MAX_BUTTON_HEIGHT = int(self.config_window.SB__OPTION_MENU_FONT_SIZE + self._calculateUiSize(6)) self.config_window.SB__DROPDOWN_MENU_MAX_BUTTON_HEIGHT = int(self.config_window.SB__OPTION_MENU_FONT_SIZE + self._calculateUiSize(6))
self.config_window.SB__DROPDOWN_MENU_FRAME_CORNER_RADIUS = self._calculateUiSize(10) self.config_window.SB__DROPDOWN_MENU_FRAME_CORNER_RADIUS = self._calculateUiSize(10)
self.config_window.SB__DROPDOWN_MENU_FRAME_MAX_HEIGHT = self._calculateUiSize(200) self.config_window.SB__DROPDOWN_MENU_FRAME_MAX_HEIGHT = self._calculateUiSize(200)

View File

@@ -142,14 +142,18 @@ def createButtonWithImage(parent_widget, button_fg_color, button_enter_color, bu
return button_wrapper return button_wrapper
def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_bg_color, optionmenu_clicked_bg_color, optionmenu_ipadx, optionmenu_ipady, variable, font_family, font_size, text_color, image_file, image_size, command, optionmenu_position=None, setattr_widget=None, image_widget_attr_name=None): def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_bg_color, optionmenu_clicked_bg_color, optionmenu_ipadx, optionmenu_ipady, variable, font_family, font_size, text_color, image_file, image_size, command, optionmenu_position=None, optionmenu_ipady_between_img=0, optionmenu_min_height=None, optionmenu_min_width=None, setattr_widget=None, image_widget_attr_name=None):
option_menu_box = CTkFrame(parent_widget, corner_radius=4, fg_color=optionmenu_bg_color, cursor="hand2") option_menu_box = CTkFrame(parent_widget, corner_radius=6, fg_color=optionmenu_bg_color, cursor="hand2")
option_menu_box.grid_rowconfigure(0, weight=1)
if optionmenu_min_height is not None: option_menu_box.grid_rowconfigure(0, minsize=optionmenu_min_height)
option_menu_box.grid_columnconfigure(0, weight=1) option_menu_box.grid_columnconfigure(0, weight=1)
option_menu_box.grid_rowconfigure(0, weight=1) if optionmenu_min_width is not None: option_menu_box.grid_columnconfigure(0, minsize=optionmenu_min_width)
optionmenu_label_wrapper = CTkFrame(option_menu_box, corner_radius=0, fg_color=optionmenu_bg_color) optionmenu_label_wrapper = CTkFrame(option_menu_box, corner_radius=0, fg_color=optionmenu_bg_color)
optionmenu_label_wrapper.grid(row=0, column=0, sticky="ew") optionmenu_label_wrapper.grid(row=0, column=0, padx=(optionmenu_ipadx[0],0), pady=optionmenu_ipady, sticky="ew")
LABEL_COLUMN=0 LABEL_COLUMN=0
if optionmenu_position == "center": if optionmenu_position == "center":
@@ -163,7 +167,7 @@ def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_b
font=CTkFont(family=font_family, size=font_size, weight="normal"), font=CTkFont(family=font_family, size=font_size, weight="normal"),
text_color=text_color text_color=text_color
) )
optionmenu_label_widget.grid(row=0, column=LABEL_COLUMN, padx=optionmenu_ipadx, pady=optionmenu_ipady) optionmenu_label_widget.grid(row=0, column=LABEL_COLUMN, padx=(0, optionmenu_ipady_between_img))
optionmenu_img_widget = CTkLabel( optionmenu_img_widget = CTkLabel(
@@ -177,7 +181,7 @@ def createOptionMenuBox(parent_widget, optionmenu_bg_color, optionmenu_hovered_b
if image_widget_attr_name is not None: if image_widget_attr_name is not None:
setattr(setattr_widget, image_widget_attr_name, optionmenu_img_widget) setattr(setattr_widget, image_widget_attr_name, optionmenu_img_widget)
optionmenu_img_widget.grid(row=0, column=1, padx=0, pady=0) optionmenu_img_widget.grid(row=0, column=1, padx=(0, optionmenu_ipadx[1]), pady=optionmenu_ipady)
bindEnterAndLeaveColor([optionmenu_label_wrapper, option_menu_box, optionmenu_label_widget, optionmenu_img_widget], optionmenu_hovered_bg_color, optionmenu_bg_color) bindEnterAndLeaveColor([optionmenu_label_wrapper, option_menu_box, optionmenu_label_widget, optionmenu_img_widget], optionmenu_hovered_bg_color, optionmenu_bg_color)