問題タブ [ttk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5012 参照

python - Python:キーにはUIツリーを使用し、値にはその他のウィジェットを使用して、ディクトのディクトを表示します

私には3つのdictがあり、1つは使用可能なすべてのオプションのリストを提供し、2つは選択肢のサブセットを提供します(1つはデフォルト用、もう1つはユーザー選択用)。Pythonに組み込まれているJSONパーサーを使用して3つのdictを取得します。

UIに、dictのキーに基づくツリーを左側に表示したいのですが、右側に、コンボボックス、ボタン、リストボックス、またはその他の適切なウィジェットを表示して、データを操作します。そのキー。私は実際にdictのdictを使用していて、折りたたみを許可したいので、ツリーが必要です。

これまで、tkinter、tkinterのttk、tixライブラリを調べましたが、ツリーは許可されていますが、右側の構成可能なリストは許可されていません。ツリーがPythonのIDLEから借用されている例もいくつか見ました。

  1. そのような機能を提供するGUIツールキットはありますか、それともそのようなものはなく、自分で設計する必要がありますか?
  2. 自分でデザインする必要がある場合、tkよりも推奨するGUIツールキットはありますか?
  3. この種のものが提供されない場合、推奨されるツールキットのGUI設計に関する基本的なチュートリアルはありますか?

GUIツールキットがクロスプラットフォーム互換(* nixとwin)であり、可能であれば無料で配布できるのであれば、私はそれを好みます。興味深いことに、tkを使用してカスタムウィジェットを作成するためのチュートリアルがあります。私は探してみましたが、ウィジェットのデザインではなくtkのウィジェットの使用に誘導され続けています:s

最小限の例として、私は今のところ余分なdictを削除し、次のようにしています:

0 投票する
5 に答える
15802 参照

python - Treeview オブジェクトの空の最初の列を削除します

を使用してデータベースからレコードを取得sqlite3し、Treeview.

レコードを使用してテーブルを作成することに成功しましたが、最初の空の列を削除できません。

ここに画像の説明を入力

0 投票する
1 に答える
3967 参照

python - ttk / python で Label ウィジェットのパディング色を変更する

Pythonでttk/tkinterで画像を表示しようとしています。画像には白い境界線があり、この画像をより大きな白い背景に表示したいので、周りにたくさんの空白があります。

このために、ラベルに「padx」と「pady」をそれぞれ 100px で使用します。残念ながら、パディング領域は灰色です。

今、ラベルの前景色と背景色を無駄に変更しようとしました。パディング領域は灰色のままです。次に、ラベルを Frame ウィジェットに入れ、Frame の前景色/背景色を変更してみました。残念ながら、Frame ウィジェットは width= および height= 引数をリッスンしません。また、前景色を変更すると、SUNKEN ボーダーの色が変わります - 本当にクールですが、私にはまったく役に立ちません :/ .

誰でもこれで私を助けることができますか?現在動作していないコードは次のようになります。

0 投票する
2 に答える
10380 参照

python - フォーカスされていない Text ウィジェットで選択した背景色を変更する Tkinter

ウィジェットにフォーカスがない場合、 Mac OS X の Tkinter Text ウィジェットで選択したテキストのデフォルトの背景色を変更しようとしています。デフォルトのフォーカスされていない選択色は灰色です。何時間も検索した後、これを行うためのすぐに使えるソリューションを見つけることができませんでした。これが私が試したことです:

  • オプションで選択色を変更してselectbackgroundも、ウィジェットがフォーカスされていない場合、選択色は変更されません。例: 灰色のままです。
  • そうでもないText.tag_configure("sel", background=...)
  • 状態での使用ttk.Style.map"!focus"エントリ ウィジェット (およびその他) で機能しますが、テキスト ウィジェットでは機能しません。

そのため、自分でロールする必要がありました (以下を参照)。これを行うより良い方法はありますか?

0 投票する
1 に答える
3843 参照

performance - Python GUI (tkinter.ttk) アプリケーションが遅い

ttk で (作業中の) アプリケーションを完成させました。これは、comport 関連のコントロールと、いくつかのグラフを描画するキャンバスを表示するために、自作のモジュールを使用します。オブジェクトのインスタンスを作成すると、シリアル入力を処理するスレッドが開始され、これがリストに追加されます (グラフごとに 1 つのリスト)。3 ~ 6 個のグラフがあると、アプリケーションが著しく遅くなります。バグもいくつかありますが、全体的なコンセプトが完成したら修正します。

あなたが私を助けるのに役立つかもしれないこと:

  • compport は、LabelFrame および Serial.Serial から派生した自己作成オブジェクトのインスタンスです。
  • グラフの座標は、リストの辞書に保存されます: グラフが 6 つある - 6 を掛けてください
  • 新しい座標が到着するたびに、リストからpop(0)し、新しい座標をappend()します
  • 忘れていましたが、新しい座標セットが到着するタイミングも別のリストに保存します
  • 私はリストを処理するために preiodic 呼び出し関数を使用します: したがって、6 グラフで 1000 の座標がある場合、6000 の細い線を描画します。
  • もちろん、いくつかの定規などのサービス情報もあります

ですから、その考えは明確だと思います。より良いアプローチが何であるかを理解したいと思います。私はPythonとプログラミングも始めたばかりなので、投稿するコードと、それが引き起こす目の痛みについて、あなたの言い訳を求めています. 私はプログラミングスタイルを持っていないので、それを修正したいと思っています。少なくとも少し。そのため、コード内で見られるものについてのその他のコメントは大歓迎です。

そして、シリアル部分も同様に遅れる可能性があります(以前は1秒ごとにポートを再列挙していたときに遅れていました...)

更新:ブライアンのアドバイスどおりに実行しました。これで、2 つの画面再描画関数ができました。それらの違いは、最初にすべての行を左に移動し、新しい行を右に追加し、キャンバスから落ちる行を削除することです。2 つ目は、行を左に移動し、キャンバスからはみ出した要素を右に再配置します (新しい要素は作成しません)。私の最初のバリアントに関しては、これらのいずれにも大きな改善がありますが、肉眼では2つの大きな違いは見られません.もっと多くの要素があればいいのですが. ただし、後者は、崖から落ちる人を追跡する必要がないため、特に私のアプリケーションではうまく機能します。

ここに機能があります:

0 投票する
5 に答える
20943 参照

tkinter - Python で ttk ボタンの高さを変更する

これはばかげた質問のように思えますが、ttk ボタンの高さを手動で変更することは可能ですか?

button = tkinter.Button(frame, text='hi', width=20, height=20...)tkinter ボタンのようなものは問題なく動作します。私は ttk ボタンを使用したいと思いますが、審美的にはるかに優れているためです。

button = ttk.Button(frame, text='hi', width=20, height=20...)高さは有効なオプションではないようです。config で設定するか、変更するスタイルの要素を探してみましたが、うまくいきませんでした。

これに対する簡単な解決策はありますか?私は記録のためにPython 2.7、Windowsを使用しています。申し訳ありませんが、これは些細な質問のように思えますが、運が悪くて周りを見回しました。

0 投票する
1 に答える
350 参照

python - Python でテキスト変数ラベル (ttk) を作成する方法

で作成しようとしてLabelいますttk

単語のポイントが表示されるウィジェットを作成することを目指しています。エントリを作成しましたが、単語の価値があるポイントを表示したいと思います。

これが私のコードです:

これは、次を作成する関数Labelです。

エントリを作成する関数は次のとおりです。

次に、これらの関数を呼び出します。

私の問題は、Labelが表示され続けること0です。ラベルは、単語のポイントに従って変更されません。

ご協力いただきありがとうございます。MFF

曖昧でごめんなさい。

追加情報:

スクラブルゲームを作ろうとしています。実際、私の問題は、単語が価値のあるポイントを表示する方法がわからないことです。エントリの値が変わっても、ラベルは変わりません。

val_entry_mot最初は の値は変わらないと思っていました。そこで、関数を次のように変更して、入力された単語のみを表示しようとしましたcreate_variable_text2()

出来た。エントリ内の単語を変更するたびに、ラベルにその単語が表示されていました。

次に、単語のポイントをカウントするはずのコードに欠陥があると考えました。ここにあります:

values_scrabble()ファイルを開いて辞書に変換する関数です ={'A': 1, 'C': 3, 'B': 3, 'E': 1, 'D': 2, 'G': 2, 'F': 4, 'I': 1, 'H': 4, 'K': 10, 'J': 8, 'M': 2, 'L': 1, 'O': 1, 'N': 1, 'Q': 8, 'P': 3, 'S': 1, 'R': 1, 'U': 1, 'T': 1, 'W': 10, 'V': 4, 'Y': 10, 'X': 10, 'Z': 10}

そして、単語のポイントを数えようとすると、実際に機能しました。だから私の問題はここにないと思います。

これがゲームのスクリーンショットです。それはフランス語ですが、あなたが知っておくべきことは、最初Entryの一番上が単語を入力する場所であり、そのすぐ下が単語のポイントを表示することになっているということです.

ゲームのスクリーンショット

私がはっきりしていることを願っています。ありがとうございました。

MFF

0 投票する
2 に答える
1629 参照

python - Windows で ttk をテーマにしたウィジェットを使用してフォントを変更する方法

OS X ではttk.Style().configure('TLabelframe.label', font='helvetica 14 bold')、ttk.LabelFrame ウィジェットで使用されるフォントを変更します。Windows ではttk.Style().configure('TLabelframe.label', font='arial 14 bold')、同じフォント情報を に返す以外の効果はありませんttk.Style().lookup('TLabelframe.label','font')

さまざまなフォント名とフォーマット、派生スタイルの作成、TkDefaultFont の使用とサイズの変更、さまざまなウィジェット (TButton.label、TCheckbutton.label) を試しました。これまでのところ、何を試しても、常に TkDefaultFont をデフォルト サイズで使用しているように見えます。

python27/tcl/tk8.5/ttk/xpTheme.tcl (Windows のデフォルト テーマ) のフォント設定を変更すると、表示されるフォントが変更されます。-font TkDefaultFontテーマ設定から設定を削除しても、表示される内容は変わりません。

これが実際にどのように機能するかについて何か提案はありますか?

編集:以前はラベルウィジェットのフォントを変更しようとしたことがありませんでしたが、実際に機能します。

0 投票する
2 に答える
2582 参照

python - ttk Treeview selection_set はスペースを受け入れることができません

Python で tkk を使用して gui を構築していますが、Treeviewコマンドに問題がありselection_set()ます。プログラムの起動時にデフォルトの選択を設定するために使用しようとしていますが、スペースを含む文字列を受け入れることができないようです。

原因:

誰でも提案できますか?

0 投票する
1 に答える
5199 参照

python - Python tkinter エントリの値の追加

ユーザーが int 値をEntryウィジェットに入力すると、プログラムがこれらの値を一緒に追加する Python GUI を作成しています。

ただし、何らかの理由で、プログラムにこれらの値を追加するように指示しようとすると、エラーが発生します。

私は周りを見回しましたが、このトピックに関するものは何も見つかりません。Entryウィジェットをintとして宣言しようとしましたIntVarsが、うまくいかなかったので、実際に値を加算できるかどうか疑問に思っていEntryます。