Skip to content

Commit c20d094

Browse files
committed
数据项默认值
1 parent 5c2bf32 commit c20d094

File tree

2 files changed

+130
-0
lines changed

2 files changed

+130
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
'''
2+
本節文章
3+
https://learnscript.net/zh-hant/obs-python-scripting/junior/data/get-and-set-data-item-default-value/ 如何取得和設定資料項的預設值
4+
'''
5+
6+
# 匯入模組 obspython
7+
import obspython as obs
8+
9+
10+
# 用於儲存腳本設定
11+
data = None
12+
13+
14+
def script_load(settings):
15+
# 在腳本載入時,將腳本設定儲存在模組變數 data 中
16+
global data
17+
data = settings
18+
19+
20+
def script_properties():
21+
props = obs.obs_properties_create()
22+
23+
# 添加設定訊息內容的文字方塊
24+
obs.obs_properties_add_text(props, 'message', '訊息:', obs.OBS_TEXT_DEFAULT)
25+
26+
# 添加選擇延遲時間的下拉式方塊
27+
prop = obs.obs_properties_add_list(props, 'time', '延遲時間:', obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING)
28+
obs.obs_property_list_add_string(prop, '長', 'long')
29+
obs.obs_property_list_add_string(prop, '短', 'short')
30+
31+
# 添加一個顯示訊息的按鈕
32+
obs.obs_properties_add_button(props, 'show', '顯示', show_clicked)
33+
34+
return props
35+
36+
37+
def script_defaults(settings):
38+
# 為腳本設定項設定預設值,包括預設訊息和延遲時間
39+
obs.obs_data_set_default_string(settings, 'message', '這是預設訊息')
40+
obs.obs_data_set_default_string(settings, 'time', 'short')
41+
42+
43+
def show_clicked(props, prop):
44+
# 根據使用者選擇的延遲時間,決定延遲的秒數
45+
time = obs.obs_data_get_string(data, 'time')
46+
seconds = None
47+
48+
if time == 'long':
49+
seconds = 3
50+
elif time == 'short':
51+
seconds = 1
52+
53+
if seconds:
54+
# 添加計時器,時間間隔為指定的秒數
55+
obs.timer_add(log, 1000 * seconds)
56+
obs.script_log(obs.LOG_INFO, f'{seconds} 秒後顯示訊息')
57+
58+
59+
def log():
60+
message = obs.obs_data_get_string(data, 'message')
61+
obs.script_log(obs.LOG_INFO, message)
62+
63+
# 移除之前添加的計時器
64+
obs.remove_current_callback()
65+

src/zh/junior/data_item_default.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
'''
2+
本节文章
3+
https://learnscript.net/zh/obs-python-scripting/junior/data/get-and-set-data-item-default-value/ 如何获取和设置数据项的默认值
4+
'''
5+
6+
# 导入模块 obspython
7+
import obspython as obs
8+
9+
10+
# 用于保存脚本设置
11+
data = None
12+
13+
14+
def script_load(settings):
15+
# 在脚本加载时,将脚本设置保存在模块变量 data 中
16+
global data
17+
data = settings
18+
19+
20+
def script_properties():
21+
props = obs.obs_properties_create()
22+
23+
# 添加设置消息内容的文本框
24+
obs.obs_properties_add_text(props, 'message', '消息:', obs.OBS_TEXT_DEFAULT)
25+
26+
# 添加选择延迟时间的组合框
27+
prop = obs.obs_properties_add_list(props, 'time', '延迟时间:', obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING)
28+
obs.obs_property_list_add_string(prop, '长', 'long')
29+
obs.obs_property_list_add_string(prop, '短', 'short')
30+
31+
# 添加一个显示消息的按钮
32+
obs.obs_properties_add_button(props, 'show', '显示', show_clicked)
33+
34+
return props
35+
36+
37+
def script_defaults(settings):
38+
# 为脚本设置项设置默认值,包括默认消息和延迟时间
39+
obs.obs_data_set_default_string(settings, 'message', '这是默认消息')
40+
obs.obs_data_set_default_string(settings, 'time', 'short')
41+
42+
43+
def show_clicked(props, prop):
44+
# 根据用户选择的延迟时间,决定延迟的秒数
45+
time = obs.obs_data_get_string(data, 'time')
46+
seconds = None
47+
48+
if time == 'long':
49+
seconds = 3
50+
elif time == 'short':
51+
seconds = 1
52+
53+
if seconds:
54+
# 添加计时器,时间间隔为指定的秒数
55+
obs.timer_add(log, 1000 * seconds)
56+
obs.script_log(obs.LOG_INFO, f'{seconds} 秒后显示消息')
57+
58+
59+
def log():
60+
message = obs.obs_data_get_string(data, 'message')
61+
obs.script_log(obs.LOG_INFO, message)
62+
63+
# 移除之前添加的计时器
64+
obs.remove_current_callback()
65+

0 commit comments

Comments
 (0)