0

スクロールバー付きのリストボックスを含むGUIをPython/Tkinterでコーディングしています。スクロールバーが期待どおりに動作するようになりました(つまり、クリックするとリストボックスの内容が上下にスクロールします)が、スクロールバー自体の動作に問題があります。下の画像は明確にするのに役立つはずです。

tk.ScrollbarWindowsレンダリング

リストボックスのサイズは8行で、12行しかないため、最初にスライダーを大きくする必要があります(スクロールバーの長さの2/3)。次に、下にスクロールするたびに(どのように行うかに関係なく)、スライダーはバーの上部に「接着」されたままになります。これにより、スライダーの上で矢印の下をクリックする上向きの高速スクロール方法を使用できなくなります。したがって、上向きのスクロールは、矢印を使用して一度に1行ずつ移動するように制限されます。下向きの高速スクロールは問題なく機能しますが、前述のように、スライダーは依然として上部に「接着」されたままです。スライダーをクリックして下にドラッグできますが、すぐに一番上に戻ります。矢印(上または下)をクリックすると、正常に機能します。

ttkで代替スクロールバーを使用してみましたが、実際にはそれ以上の効果はありません。

ttk.ScrollbarWindowsレンダリング

この場合、スライダーがバー全体に表示され、上下どちらの方向にも高速スクロールできません。グラブアンドドラッグは(どういうわけか)機能し、リストボックスはスクロールしますが、上または下にどれだけ近いかについて視覚的な手がかりは得られません。矢印は(再び)正常に機能します。

要するに、それは使用可能ですが、非常にグリッチで奇妙です。これはすべて、WindowsOSでPython/ Tkinterを使用する際の既知の制限ですか?(私のマシンには、SP3を搭載したWindowsXP(32ビット)が搭載されています。Pythonバージョン2.7.3です。)

4

1 に答える 1

4

スクロールバーが正しく構成されていないようです。双方向の接続を確立する必要があります。スクロールバーを認識できるように(サムを更新するように)リストボックスを構成する必要があり、リストボックスを認識できるように(リストボックスの内容をスクロールするように)スクロールバーを構成する必要があります。

あなたが説明する振る舞いは、あなたが前者をするのを忘れたように聞こえます。たぶん、あなたが私たちにあなたのタラを見せれば、私たちはそれを確認することができます。次のようなことをしていますか?

my_listbox.configure(yscrollcommand=my_scrollbar.set)
my_scrollbar.configure(command=my_listbox.yview)
于 2013-01-05T00:10:15.023 に答える