ホームページ  >  記事  >  バックエンド開発  >  Tkinter Notebook の使用時に f-string の使用とライブ更新を許可しながら、あるタブから別のタブ オブジェクトに StringVar を使用する方法

Tkinter Notebook の使用時に f-string の使用とライブ更新を許可しながら、あるタブから別のタブ オブジェクトに StringVar を使用する方法

WBOY
WBOY転載
2024-02-09 18:30:04800ブラウズ

使用 Tkinter Notebooks 时,如何将一个选项卡中的 StringVar 用于另一个选项卡对象,同时允许 f 字符串使用和实时更新

質問の内容

bg3 modの作成を支援する小さなプロジェクトを作成しています。私の最終的な目標は、データを入力し、保存時にファイルをエクスポートできる複数のタブを用意することです。

保存とタブの作成は問題なく行えます。私が望んでいることは、mod が作成するカスタム クラスの名前を config タブに入力することです (これは dnd 用です)。次に、localizationタブに入力フィールドのあるタブを作りたいと思います。タグは configtab からクラス名を読み取り、クラス名 description:; として表示します。そのため、config で「warrior」と入力すると、ローカライズでは wariror description:

が表示されます。

ライブ更新のために stringvar を呼び出すことはできますが、f-string やその他の連結機能を使用することはできません。 get() メソッドを使用すると、ウィンドウの作成時にクラス名に設定された値のみを受け取ります。したがって、classname.set("warrior") を使用すると、classname.get() は文字列を返し、f 文字列を使用して、それに戦士の説明を表示させることができます。ただし、get() は 1 回限りの呼び出しであり、構成タブでデータを変更しても更新されません。

以下は、私の現在の一般的なアイデアを示す最低限の実装です。最終プロジェクトでは、クラス名フィールドだけでなく、複数のフィールドが参照されます。

mainprogram.py

リーリー

classconfigtab.py

リーリー

localizationtab.py

リーリー

stackoverflow で検索したところ、他にも同様の質問が見つかりました。彼らは、追跡、イベントのバインド、または単にボタンを押してデータを更新することを使用することさえも挙げました。

追跡とバインドを試みましたが成功しませんでした。おそらく私の実装方法が間違っていたのでしょう。申し訳ありませんが、私の試みを示すコードがファイルにありません。


正解


あなたが言ったように、tkinter変数でtrace()を使用できます:

リーリー

以上がTkinter Notebook の使用時に f-string の使用とライブ更新を許可しながら、あるタブから別のタブ オブジェクトに StringVar を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。