[Update] 設定画面から透明度変更時に、メイン画面のカバーを一時的に外すように。

スライダークリック時(ドラッグ時)にカバーを外し、リリース時に戻す。
リリースはCTkSlider側で設定されていないのでうまくいくけど、
CTkSliderはbind ButtonPress(クリック)はオーバーライドされるので引数command(クリックイベント)に無理やり挟み込み。
This commit is contained in:
Sakamoto Shiina
2023-10-13 13:41:10 +09:00
parent 77500adb8d
commit 508cca8215
3 changed files with 26 additions and 3 deletions

View File

@@ -204,11 +204,10 @@ class _SettingBoxGenerator():
def createSettingBoxSlider(self, for_var_label_text, for_var_desc_text, slider_attr_name, slider_range, command, variable, slider_number_of_steps: Union[int, None] = None):
def createSettingBoxSlider(self, for_var_label_text, for_var_desc_text, slider_attr_name, slider_range, command, variable, slider_number_of_steps: Union[int, None] = None, slider_bind__ButtonPress=None, slider_bind__ButtonRelease=None):
(setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(slider_attr_name, for_var_label_text, for_var_desc_text)
# print(self.settings.uism.SB__SLIDER_WIDTH)
# print(self.settings.uism.SB__SLIDER_HEIGHT)
slider_widget = CTkSlider(
setting_box_item_frame,
width=self.settings.uism.SB__SLIDER_WIDTH,
@@ -225,6 +224,17 @@ class _SettingBoxGenerator():
slider_widget.grid(row=1, column=SETTING_BOX_COLUMN, sticky="e")
if slider_bind__ButtonPress is not None:
def adjusted_slider_bind__ButtonPress(_e):
command(_e)
slider_bind__ButtonPress()
slider_widget.configure(command=adjusted_slider_bind__ButtonPress)
if slider_bind__ButtonRelease is not None:
def adjusted_slider_bind__ButtonRelease(_e):
slider_bind__ButtonRelease()
slider_widget.bind("<ButtonRelease>", adjusted_slider_bind__ButtonRelease, "+")
return setting_box_frame

View File

@@ -33,6 +33,8 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi
slider_range=view_variable.SLIDER_RANGE_TRANSPARENCY,
command=lambda value: slider_transparency_callback(value),
variable=view_variable.VAR_TRANSPARENCY,
slider_bind__ButtonPress=view_variable.CALLBACK_BUTTON_PRESS_TRANSPARENCY,
slider_bind__ButtonRelease=view_variable.CALLBACK_BUTTON_RELEASE_TRANSPARENCY,
)
config_window.sb__transparency.grid(row=row)
row+=1