【GUI】Fletスレ【Python/Flutter】 (43レス)
1-

1: 01/25(土)11:24 ID:im0hq6D4(1/2) AAS
Pythonだけで比較的省労力でGUIが作れて趣味プログラマレベルでもとっつきやすいFletについて語りませんか。

公式 外部リンク:flet.dev
14: 02/14(金)19:21 ID:5ZxZeKkO(1) AAS
DropdownのOptionのcontentプロパティに文字列以外のコントロールも入れられると知って、flet.Rowを入れたんだけど、valueプロパティ(Optionのkeyプロパティ)は(自分の誤解でなければ)文字列化されちゃうのね。keyプロパティにtupleとかsqlite3.Rowを代入しても文字列化されるという仕様はどうなんだろう。任意のコントロールを格納できるようにした意味がないような気もするが……。
15: 02/14(金)20:33 ID:g5/dL1pg(1) AAS
全てはControlEventのdataがstr型に引っ張られているきがしている
16: 02/18(火)06:28 ID:0A5hl3HK(1) AAS
これイベントハンドラが
スレッドプールから呼ばれてマルチスレッドになってんだよな
17: 03/21(金)14:26 ID:Vdi6rcDR(1) AAS
0.27が出ているみたい。Dropdownコントロールが置き換えで微妙に仕様が変わっているみたいね。
入力文字列に基づく絞り込み表示がされるようになったのは嬉しいけれど、どうせならsuggestionプロパティを追加する等してAutoComplete相当の機能も取り込んでくれないかな。
あと、DropdownOptionにcontent属性を指定していてる場合、選択時にドロップダウンボックス内に表示されるのが(content属性ではなく)key属性の内容になっている(0.26ではcontent属性の内容だった)。これが意図した仕様変更なら改悪なのでは。
18: 03/25(火)19:20 ID:z+9Q790S(1) AAS
Reactでいいや
19: 03/26(水)10:01 ID:IczPUqJi(1) AAS
他のコントロールの手前にコントロール表示を重ねること(オーバーレイ表示)ができるのって、Page.overlayに入れられるコントロール(AlertDialog等)か、そうでなければStackの中だけか。
普通のColumnとかがオーバーレイ表示できるオプションがあれば便利なんだけどなぁ。
20: 03/29(土)15:56 ID:EL1+Ga+h(1) AAS
expand: True と width をともに指定したときの挙動って、親コントロールがRow やColumnのときとそれ以外のときとでひょっとして異なる?(RowやColumnのときはexpand: Trueが優先されるのに対し、それ以外のときはwidth指定が優先される?)
本来的には親コントロールがRowやColumn以外のときにもexpandを指定できるのがおかしいのかもしれないけれど、そこを許容するのであれば、他の部分の仕様も合わせておいて欲しかった。
21: 03/29(土)19:06 ID:tGLPvbVs(1) AAS
Page.on_keyboard_eventは、キー押しっぱなしのリピート入力には対応していないか。
22: 04/02(水)13:41 ID:ls9ya9jn(1) AAS
TextFieldにフォーカスを当てたときにTextField内に文字列があったらそれを選択状態にするというのをやりたいんだけど、方法がわからない。わりとありがちなニーズだと思うんだけど、
そもそも、TextField内の文字列を選択状態にするというメソッドがないような……。
仮に、今は方法がないのだとしても、バージョンアップなどでそのうち対応しそうではあるけれど、現状だとまだできないのかな?
23: 04/17(木)09:31 ID:jdK9MviC(1) AAS
Viewを新規作成したときのアニメーションはあんまり要らないかな。設定で切り替えられるようになっていればいいのにとちょっと思う。
24: 04/17(木)18:59 ID:1klF/n3v(1) AAS
遷移変えたいならPageTransitionTheme
25: 04/18(金)19:21 ID:ZUjnUsfX(1/2) AAS
おお、そんなところで設定できたのね。Themeは見てなかったよ。
26: 04/18(金)19:40 ID:ZUjnUsfX(2/2) AAS
おお、そんなところで設定できたのね。Themeは見てなかったよ。
27: 04/23(水)05:54 ID:curLR6rF(1) AAS
AlertDialogに「OK」「Cancel」のテキストボタンを置いて、それぞれを押したときの処理を書くという場合、テキストボタンのon_clickにlambdaで書ける内容なら苦労しないんだけど、文が必要なときはどうするのがいいかな?
今は、関数を作ってテキストボタンのon_clickに指定しているんだけど、わざわざ名前付きの関数を作らなきゃいけないのがちょっと不満なんだよね。よくあるGUIライブラリみたいに戻り値で分岐させる方が楽だったなという感が拭えなくて。
28: 05/10(土)13:31 ID:J+Qfv1kZ(1) AAS
バージョン上げるとちょこちょこエラーになる…
29: 07/30(水)13:42 ID:9cD2Qfoh(1) AAS
1か月くらい前に1.0アルファ版が出ていたのね。ちょっと触る時間がないんだけど、結構再設計されている部分があるみたい。
30: 07/30(水)14:00 ID:Meqfu9qd(1) AAS
リアクティブプログラミングスタイルの記述が気になっているけど触っていない
31: 08/03(日)21:32 ID:2B5I/jfB(1) AAS
レイアウト系コントロールのcontrolsプロパティに、たとえばRowとCheckboxとLiptViewを突っ込むと、VSCodeのPylanceから「型"list[Row | Checkbox | ListView]"の引数を、関数"__init__"の型"list[Control]" のパラメーター"controls"に割り当てることはできません」って警告が出て鬱陶しいんだけど正攻法で抑止する方法って何かないかな。
Row, Checkbox, ListViewがControlの下位クラスってことを型チェッカーが把握してないってことだと思うんだけど。
32: 08/04(月)14:31 ID:IfdApRBS(1/2) AAS
RowとCheckboxとListViewをすべてControlにcastすれば警告は抑止できるけど、さすがにそんなこといちいちやっていられないし。
たぶん何か簡単な方法があると思うんだけどなぁ。
33: 08/04(月)17:37 ID:QEghF0O/(1) AAS
昔それなったことあるけど
今単純にColumnのcontrolsにRow, Checkbox, ListViewを突っ込んだだけだとでないな
34: 31-32 08/04(月)18:49 ID:IfdApRBS(2/2) AAS
原因は一応分かったかも。
中のコントロールにflet.Refで参照を張っているんだけどどうやら角括弧による型付きRefで参照を張ると警告が出るっぽい。単にft.Ref() にしたら警告が出なくなった。ただ、動作に問題がないかは要確認かな。何でそうなるのかもまだきちんとは分かってないし。
35: 08/05(火)16:12 ID:d07nDUZU(1) AAS
ジェネリクスの共変とか反変とかの概念が関係あるみたいね、あまりよく分かってないが。基底型がBで派生型がDのとき、list[D]がlist[B]の派生型になるとは限らないとか何とか。本当は型理論とかまじめに勉強すべきなんだろうけど、それはちょっとしんどいなぁ……。
36: 08/14(木)22:21 ID:ZKu9lsh4(1) AAS
@data_viewにちょっと触ってみた。before_updateに色々突っ込まずに済むようになったみたいでそれ自体はいい感じ。
ただ、親コントロール.controls[インデックス] = 新コントロールという感じで更新するとき、インデックス(親コントロールの何番目の子要素か)をハードコーティングしたくないんだけど、あまりうまく行く方法が見つからなくて困り中。Refでやるのが普通かなと思ったんだけど、@data_viewはメモ化しているみたいで、キャッシュからコントロールが返されるときにうまくいかないみたい。
あまり触る時間もないので当面はハードコーティングで済ませて、ドキュメントが公開された後にあらためて検討することになりそう。
37: 08/18(月)15:46 ID:1pvPWxPY(1) AAS
TextFieldを含むカスタムコントロールXと、その状態を保持するXStateクラスとを作ってControlBuilderでリアクティブに処理しようとする場合、とりあえずxにxstateへの参照を持たせて、TextFieldのon_changeの中で x.state.value = e.control.value みたいな感じにしているんだけど、こんな設計でいいのかな。これだと入力のたびにTextField(あるいはそれを含むカスタムコントロール全体?)が再生成されることになるんだけどリアクティブUIってそんなもの?
あまり、他のフレームワークとか触ったことがないので勝手がよくわからない。
38
(1): 08/18(月)18:58 ID:HwAf1a14(1) AAS
ControlBuilderで生成されるコントロールが持つメソッド(具体的にはfocus)の呼び出しって、どう書けばいいんだろ?
controlsリストの最初の要素としてfocusを持つコントロールを生成して返すControlBuilderを置いた上で、他の場所でself.controls[0].focus って書いたら、「ControlBuilderはfocusという名前のメソッドを持ってない」と怒られたんだが。
39: 08/21(木)20:32 ID:NaAwv2o/(1/4) AAS
dev5066いれてみたけどControlBuilderどこだよ…
40: 08/21(木)20:33 ID:NaAwv2o/(2/4) AAS
dev5509だった
41: 08/21(木)20:48 ID:NaAwv2o/(3/4) AAS
名前変わったのかよ
42: 08/21(木)21:11 ID:NaAwv2o/(4/4) AAS
>>38
ft.Refで参照したよ
で、TextField.focus()だと非同期になってるからawaitいる
43: 08/22(金)09:05 ID:5NhjtIih(1) AAS
ControlBuilderで返されるオブジェクトのrefプロパティに適宜のref名を設定して参照を張るという方法は、ControlBuilderに渡す状態オブジェクト変数が p → q → p …… というように同じ引数になる場合、同じ引数による2回目以降の呼び出しでは効かなくなるという問題がない? だから、ControlBuilderを使う場合にはrefは事実上、使えなくなったものだと思っていたんだが。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.492s*