プロパティ対応表
pico.set / pico.get で読み書きできるプロパティの、ウィジェットごとの完全な一覧
pico.set(id, name, value) / pico.get(id, name) の name に渡せる文字列と、対応する型・対応ウィジェットの一覧です。表に無い名前を渡すとエラーになります(綴りミスとして検出されます)。表にあっても、そのウィジェット種別が対応していない場合は pico.set はエラー、pico.get は nil を返します。
全ウィジェット共通
pico.create() で作れる全種別、および pico.show_*() が返すダイアログすべてに共通です。
| name | 型 | get | set |
|---|
x | Int | ✓ | ✓ |
y | Int | ✓ | ✓ |
w | Int | ✓ | ウィジェットによる(下表) |
h | Int | ✓ | ウィジェットによる(下表) |
visible | Bool | ✓ | ✓ |
background_color | Int | ✓ | ✓ |
hit_transparent | Bool | ✓ | ✓ |
enabled | Bool | ✓ | ✓ |
focusable | Bool | ✓ | ✓ |
hit_transparent を true にすると、そのウィジェットはタップを受けず下のウィジェットへ素通りさせます(表示専用の部品を上に重ねたいとき)。enabled を false にすると操作を受け付けなくなります(タップは受け止めるだけで、コールバックは呼ばれず、下へも抜けません)。親が無効なら子も無効です。Button は文字が灰色になります。focusable はキーボード・コントローラーのフォーカスを受けるか(既定は種類で決まる。pico.focus)。
w / h の取得は常にできますが(現在の実寸が返ります)、設定できるかはウィジェットごとに異なります。下表で w/h の行がある種別のみ pico.set に対応しています。
| name | 型 | get | set |
|---|
text | Str | ✓ | ✓ |
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
font_size | Int | ✓ | ✓ |
text_color | Int | ✓ | ✓ |
border_color | Int | ✓ | ✓ |
icon_id | Int(pico.ICON_*) | ✓ | ✓ |
icon_size | Int(0=16px/1=24px/2=32px/3=48px/4=64px) | ✓ | ✓ |
icon_idを設定すると、文字の代わりにアイコンを描く「アイコンボタン」になります(textは無視されます)。アイコンの色はtext_colorに従います。w/hを明示的に設定していなければ、箱の大きさもicon_sizeのピクセルサイズへ自動的に合います。
Label
| name | 型 | get | set |
|---|
text | Str | ✓ | ✓ |
placeholder | Str | ✓ | ✓ |
font_size | Int | ✓ | ✓ |
text_color | Int | ✓ | ✓ |
border_color | Int | ✓ | ✓ |
max_width | Int | ✓ | ✓ |
max_height | Int | ✓ | ✓ |
text_align | Int(0=Left/1=Center/2=Right) | ✓ | ✓ |
w / h は直接設定できません。max_width / max_height とテキスト内容から自動的に決まります。
Textbox
| name | 型 | get | set |
|---|
text | Str | ✓ | ✓ |
placeholder | Str | ✓ | ✓ |
font_size | Int | ✓ | ✓ |
text_color | Int | ✓ | ✓ |
border_color | Int | ✓ | ✓ |
max_width | Int | ✓ | ✓ |
max_height | Int | ✓ | ✓ |
is_single_line | Bool | ✓ | ✓ |
Label と同じく w / h は直接設定できません。
| name | 型 | get | set |
|---|
text | Str(入力された数字文字列。数値化は呼び出し側の責任) | ✓ | ✓ |
font_size | Int | ✓ | ✓ |
text_color | Int | ✓ | ✓ |
border_color | Int | ✓ | ✓ |
Checkbox
| name | 型 | get | set |
|---|
text | Str | ✓ | ✓ |
checked | Bool | ✓ | ✓ |
font_size | Int | ✓ | ✓ |
text_color | Int | ✓ | ✓ |
Icon
| name | 型 | get | set |
|---|
icon_id | Int(pico.ICON_*) | ✓ | ✓ |
icon_size | Int(0=16px/1=24px/2=32px/3=48px/4=64px) | ✓ | ✓ |
color | Int | ✓ | ✓ |
icon_opaque | Bool | ✓ | ✓ |
Image
| name | 型 | get | set |
|---|
path | Str | ✓ | ✓(ImageView/MarkdownView の path と同じく、アプリのフォルダの外を指すには sd_outside_app_dir 権限が要り、無ければエラー) |
NumberSlider
| name | 型 | get | set |
|---|
value | Float | ✓ | ✓(Int/Floatどちらでも可) |
min_value | Float | ✓ | ✓ |
max_value | Float | ✓ | ✓ |
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
color | Int | ✓ | ✓ |
visible_num | Bool | ✓ | ✓ |
decimal_places | Int | ✓ | ✓ |
| name | 型 | get | set |
|---|
border_color | Int | ✓ | ✓ |
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
scroll_x | Int | ✓ | ✓ |
scroll_y | Int | ✓ | ✓(範囲に収まる) |
max_scroll_x | Int | ✓ | ✗ |
max_scroll_y | Int | ✓ | ✗(子の大きさから測る。add_childのあとに読む) |
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
font_size | Int | ✓ | ✓ |
text_color | Int | ✓ | ✓ |
border_color | Int | ✓ | ✓ |
selected_index | Int | ✓ | ✓ |
enable_icon | Bool | ✓ | ✓ |
item_count | Int | ✓ | ✗(読み取り専用。pico.list_add/pico.list_clearで増減) |
scroll_y | Int | ✓ | ✗(pico.list_scroll_toで動かす) |
CanvasRaster
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
color | Int(ブラシ色) | ✓ | ✓ |
brush_radius | Float | ✓ | ✓(Int/Floatどちらでも可) |
canvas_mode | Int(0=Line/1=Rect/2=Ellipse/3=Arrow/4=Straight/5=Fill) | ✓ | ✓(範囲外はエラー) |
filled | Bool(四角形/楕円を塗りつぶすか) | ✓ | ✓ |
undo_enabled | Bool(pico.canvas_undo用の控えを持つか) | ✓ | ✓(確保できたかはgetで確認) |
w/hを設定すると、それまで描いた絵は消えます(白紙に戻ります)。作った直後に1回だけ設定してください。
保存・読み込み・全消去・元に戻すは pico.canvas_save() / pico.canvas_load() / pico.canvas_clear() / pico.canvas_undo() を使います。詳細は ラスタキャンバス を参照してください。
LayoutContainer
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
direction | Int(0=VERTICAL/1=HORIZONTAL) | ✓ | ✓ |
cross_align | Int(0=START/1=CENTER/2=END) | ✓ | ✓ |
gap | Int | ✓ | ✓ |
padding | Int | ✓ | ✓ |
GridContainer
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
cols | Int | ✓ | ✓ |
gap | Int | ✓ | ✓ |
padding | Int | ✓ | ✓ |
h_align | Int(0=START/1=CENTER/2=END) | ✓ | ✓ |
v_align | Int(同上) | ✓ | ✓ |
TabBar
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
tab_selected | Int | ✓ | ✓(setするとタップ経由と同じ扱いでtab_changedが発火する) |
tab_count | Int | ✓ | ✗(読み取り専用。pico.tab_addで増やす) |
font_size | Int | ✓ | ✓ |
border_color | Int | ✓ | ✓ |
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
selected_index | Int | ✓ | ✓ |
item_count | Int | ✓ | ✗(読み取り専用。pico.list_add/pico.list_clearで増減) |
h の設定には対応していません(内容に応じた固定の高さ)。
Canvas
これ以外の固有プロパティはありません。内容は pico.on(id, "render", fn) で描きます(Canvasと直接描画 参照)。
Rect
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
color | Int | ✓ | ✓ |
filled | Bool(既定true) | ✓ | ✓ |
thickness | Int(既定1。filled=falseのときの枠線の太さ) | ✓ | ✓ |
Ellipse
| name | 型 | get | set |
|---|
w | Int | ✓ | ✓ |
h | Int | ✓ | ✓ |
color | Int | ✓ | ✓ |
filled | Bool(既定true) | ✓ | ✓ |
thickness | Int(既定1。filled=falseのときの輪郭の太さ) | ✓ | ✓ |
w/hに内接する楕円(w==hなら円)を描きます。
Line
| name | 型 | get | set |
|---|
color | Int | ✓ | ✓ |
thickness | Int(既定1) | ✓ | ✓ |
x1 | Int(始点) | ✓ | ✓ |
y1 | Int(始点) | ✓ | ✓ |
x2 | Int(終点) | ✓ | ✓ |
y2 | Int(終点) | ✓ | ✓ |
w/hの設定には対応していません(x1/y1/x2/y2とthicknessから外接矩形として自動計算されます)。共通プロパティのx/yは外接矩形の左上を指し、setすると2点をまとめて平行移動します(線の向き・長さは変わりません)。線の形そのものを変えたい場合はx1/y1/x2/y2を個別に設定してください。
Triangle
| name | 型 | get | set |
|---|
color | Int | ✓ | ✓ |
filled | Bool(既定true) | ✓ | ✓ |
thickness | Int(既定1。filled=falseのときの輪郭の太さ) | ✓ | ✓ |
x1 | Int(頂点1) | ✓ | ✓ |
y1 | Int(頂点1) | ✓ | ✓ |
x2 | Int(頂点2) | ✓ | ✓ |
y2 | Int(頂点2) | ✓ | ✓ |
x3 | Int(頂点3) | ✓ | ✓ |
y3 | Int(頂点3) | ✓ | ✓ |
Lineと同じくw/hの設定には対応していません(3頂点+thicknessから自動計算)。共通プロパティのx/yは外接矩形の左上を指し、setすると3頂点をまとめて平行移動します。
ProgressBar
| name | 型 | get | set |
|---|
value | Float | ✓ | ✓(Int/Floatどちらでも可。min_value〜max_valueに収まる) |
min_value | Float | ✓ | ✓ |
max_value | Float | ✓ | ✓ |
color | Int | ✓ | ✓(バーの色) |
border_color | Int | ✓ | ✓ |
w / h | Int | ✓ | ✓ |
QRCode
| name | 型 | get | set |
|---|
text | Str | ✓ | ✓(QRにする文字。""で空。pico.set の文字列の上限を超えると黙って切れるので、長さの分からない文字は pico.text_set を使う) |
ecc | Int(既定1=QR_ECC_MEDIUM) | ✓ | ✓(誤り訂正の強さ0〜3。QR_ECC_LOW/MEDIUM/QUARTILE/HIGH。範囲外はエラー) |
color | Int(既定0=黒) | ✓ | ✓(升目の色) |
background_color | Int(既定15=白) | ✓ | ✓(地の色。共通プロパティ) |
qr_size | Int | ✓ | ✗(1辺の升目の数。21〜85。空なら0) |
w / h | Int | ✓ | ✓ |
描くときは color と background_color のうち明るい方を地にします(ダークテーマでも「明るい地に暗い升目」のまま。反転したQRを読めない読み取り機があるため)。
TextView
| name | 型 | get | set |
|---|
text | Str | ✓ | ✓(255バイトまで。長い文章は pico.text_set) |
scroll_y | Int | ✓ | ✓ |
row_count | Int | ✓ | ✗(折り返した後の行数) |
w / h | Int | ✓ | ✓ |
ImageView
| name | 型 | get | set |
|---|
path | Str | ✓ | ✓(.pimg/.bmp/.jpg/.pngを読み込む。読めなければエラー。""で閉じる。sd_outside_app_dir権限が要るのはpico.image_loadと同じ) |
image_w / image_h | Int | ✓ | ✗(見せている画像の大きさ。JPEG・PNGは縮めた後。未読込は0) |
full_color | Bool | ✓ | ✓(JPEG・PNG・フルカラーのBMPを液晶へフルカラーで直接描く。既定 true。false で16色の絵だけ) |
w / h | Int | ✓ | ✓(表示欄の大きさ。変えると読み直す) |
MarkdownView
| name | 型 | get | set |
|---|
path | Str | ✗ | ✓(.mdを読む。読めなければエラー) |
text | Str | ✗ | ✓(255バイトまで。長い文書は pico.text_set、8KiBまで) |
scroll_y | Int | ✓ | ✓ |
w / h | Int | ✓ | ✓(変えると文書を組み直す) |
AnalogClock
| name | 型 | get | set |
|---|
hour / minute / second | Int | ✓ | ✓(pico.get_time() の値を流し込む) |
hand_color / second_hand_color | Int | ✗ | ✓ |
w / h | Int | ✓ | ✓(どちらも直径になる) |
DurationPicker
| name | 型 | get | set |
|---|
total_ms | Int | ✓ | ✓(0〜86,399,999) |
editable | Bool | ✓ | ✓(falseで▲▼が消える) |
font_size / text_color / border_color | Int | ✗ | ✓ |
w / h | Int | ✓ | ✓ |
MonthGrid
| name | 型 | get | set |
|---|
year / month | Int | ✓ | ✓(monthは1〜12) |
today | Int | ✗ | ✓(この月の中の今日の日。0で無し) |
selected | Int | ✓ | ✓(選択中の日。0で無し) |
item_count | Int | ✓ | ✗(その月の日数) |
border_color | Int | ✗ | ✓ |
w / h | Int | ✓ | ✓ |
予定の点は pico.set_dots で渡します。
ダイアログ
pico.show_*() が返すIDには、共通のプロパティに加えて次が使えます。ふつうは closed イベントの3番目の引数で結果を受け取れば足ります。
| 開いた関数 | name | 型 | get | set |
|---|
show_input | text | Str | ✓ | ✓ |
show_input | is_single_line | Bool | ✗ | ✓ |
show_file_save / show_file_select | path | Str | ✓(未選択はnil) | ✗ |
show_color | value | Int | ✓(未選択は-1) | ✗ |
show_choice | selected_index / item_count | Int | ✓ | ✗ |
show_date | year / month / selected(日) / text("YYYY-MM-DD") | Int / Str | ✓ | ✗ |
show_time / show_number | text("HH:MM:SS" / 入力した文字列) | Str | ✓ | ✗ |
show_progress | value(0〜100) / text(メッセージ) | Float / Str | ✓(textは✗) | ✓ |
show_message | (専用のプロパティなし。結果はclosedイベントのis_ok) | — | — | — |
start_dir など、開くときに渡した値は後から変えられません。