問題タブ [tkinter-canvas]

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 投票する
1 に答える
6047 参照

python - Tkinter - 特定のタイプの最も近いオブジェクトを見つける

ここでの問題は、特定のタイプの最も近いオブジェクトを見つけることができないということです。コードを提供して、私の意味を理解してもらうのが最善です。

ここでわかるように、画面上の任意の場所をクリックすると、最も近いオブジェクトが返されます。これは私が達成したいことですが、私が無視したい他のオブジェクトを画面に表示しています。タグを使用してこれを行うことができますが、ここでの問題は、何らかの理由で実際のオブジェクトをクリックする必要があることです。このコードは、私の問題を示すために使用されています。私の実際のコードはハノイの塔のゲームで、ディスクがスナップできるように最も近い極を見つけることを目指していますが、ディスクを移動する前にすべての極をクリックしないと、最も近い極を見つけることができません。

これが私の問題を示すコードです。注: "w.bind("", identify)" を "w.tag_bind("line", "", identify)" に変更しただけです。

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

python - (Python tkinter キャンバス ウィジェット) クリックすると 1/9 の正方形の色を変更するにはどうすればよいですか?

Python を使用して単純な Tic Tac Toe ゲームを構築しようとしていますが、最後の視覚効果を除いてほぼ完成しています。

クリックしたときにキャンバスに表示される 9 つの四角形のいずれかを変更できるようにする必要があります。スタック上の多くの例を検索しました...まあ...どれも機能しませんでしたカーソルをマップするために辞書を使用します:

self.map = {(0, 0): 0, (0, 1): 1, (0, 2): 2, (1, 0): 3, (1, 1): 4, (1, 2) : 5, (2, 0): 6, (2, 1): 7,(2, 2): 8}

左上の最初の四角は 0 です これは機能しないようです: id= self.canvas.create_rectangle() はこれでは機能しません。self.canvas.itemconfig(id,fill='bule')

残りではなく、塗りつぶしまたはクリックされた四角形にアクセスする効果的な方法を探しています。ありがとう

私のコードはすべてここに添付されています:

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

python - Tkinter ライブ グラフ キャンバスは、マウスが動くまで更新を停止します

n00bからのPython 2.7の質問は次のとおりです。

シリアル ポートからデータを読み取り、Tkinter-Canvas を使用してライブ グラフを作成するアプリを実行しています。このライブラリは、プログラムを実行したい A20 プラットフォームでは利用できないため、私は matplotlib を使用していません。(mpl の一部の依存関係は、A20 ではまだ必要なバージョンに達していません)

これがライブ グラフを描画する最もエレガントな方法ではないことはわかっていますが、実際にはすべてのプラットフォームで利用可能な Tkinter を lib として依存しているだけなので、最も互換性があるように思えました。私は基本的にキャンバスを削除し、新しいデータが入るたびに1つの位置オフセットで再描画しています。少しちらつきますが、私が言ったように...私はn00bです。:)

グラフを描画するための私のコードは次のとおりです。

これまでのところ問題なく動作していますが、奇妙なエラーに気付きました:

30 分ほどすると、Canvas の更新が停止しますが、プログラム自体はまだ完全に実行されています。アプリの上にマウスを移動すると、キャンバスが再び更新されます。0.5 秒ごとに NewEntry 関数を呼び出します。時々マウスイベントを生成することを考えましたが、それは厄介な回避策です...どんな助けも大歓迎です!

ありがとう、

デッキ

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

python-3.x - Python3 / tkinter でのキャンバスのリフレッシュは、MATLAB の「保留」に似ています

データのリストから値が読み取られる 2 つのスライダー (最小値と最大値) に基づいて、キャンバス上に任意の数のドットをプロットするプログラムを作成しようとしています。

私が抱えている問題は、スライダーを操作するたびにキャンバスを新しいドットで更新することです。私がこれを機能させる唯一の方法は、スライダーが引っ張られるたびにキャンバス全体を再描画することです (以下のコード スニペットを参照)。キャンバスを静的なものにして、スライダーが操作されたときにリストからドットをプロットするだけです。

読みやすくするために一部を省略していますが、動作するサンプル コードをいくつか示します。

トピックを検索しましたが、「update_idletasks()」に繰り返し出くわしましたが、機能していません。

何か案は?

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

python-3.x - tkinter キャンバスのテキスト フィールドの更新

初めて Python で tkinter を使用して GUI を作成しました。私は wxPython で作業しましたが、これと同じ問題はありませんでしたが、キャンバスを使用したことはありません。キャンバスの背後にある思考プロセスは、最終的にアニメーションを追加することです。グリッドの 1 つがキャンバスであるグリッド レイアウトを作成しました。itemconfig を使用してスコア フィールドを更新しようとしていますが、キャンバス上で 2 つのスコア フィールドを更新することができません。私のコードは以下です。キャンバス上の 2 つのスコアを更新する方法に関する推奨事項はありますか? 新しいスコアが画面に書き込まれる前に古いスコアを削除したい。ご覧いただきありがとうございます。グローバルを許してください。これが進行するにつれて、それらは削除されます。