2010-12-29 18 views
4

私はPythonでTkinterを使って簡単なGUIアプリケーションを作成していますが、1つのフレームにスクロールバーを追加する際に問題があります。フレームは私の20インチの上から下に見えますが、ネットブックやその他の低解像度の画面にすべてを表示するには、スクロールバーが必要です。リストボックスを使ってどのように動作するかわかります。Pythonのtkスクロールフレーム?

framelist = Tkinter.Frame(self.pmaster, relief=FLAT, borderwidth=0) 
framelist.pack(fill=BOTH, padx=0, pady=0) 
yscroll = Tkinter.Scrollbar(framelist, width=10, orient=VERTICAL) 
yscroll.pack(fill=Y,side=RIGHT,padx=0,pady=0) 

これは明らかに、フレームでは動作しませんが。皆さんからのこの問題に関するすべてのヘルプは深く理解されるであろう!

をTkinterには古い可能性がある場合、私も思ったんだけど。それが唯一のGUIインターフェイスました私は学校で学んだが、それは数年前のことだが、それ以上は本当に私の要求を満たしていない。確かに、もっと良い選択肢が必要だろうか?私はUbuntu上にいるbtw。

答えて

6

tkinterのフレームウィジェットはスクロールしません。 1つの解決策は、フレーム全体をキャンバスに(キャンバスオブジェクトとして)配置し、スクロールバーをキャンバスにアタッチすることです。キャンバスにスクロール可能領域の大きさを伝える必要があります。スクロール可能領域は、ウィジェットをすべて配置した後でフレームのサイズを取得することによって実行できます。 UI設計を見直したいかもしれませんが、どのGUIツールキットを使用していても、スクロール可能なフレームは使い方が簡単ではありません。

Tkinterが古くなっているかどうかは、ある人が「はい」と言う人もいますが、「いいえ」と言う人もいます。そこには多くのtkinterの誤解がありますので、すべてのtkinterの意見を塩の穀物で取ってください(私の場合でも!)。 Tkinterは改善を続けており、停滞していません。 Python 2.7以上の贅沢をお持ちの場合は、プラットフォーム固有のテーマやノートブックや階層ツリーなどの追加ウィジェットを提供するttkウィジェットにアクセスできます。

代わりに、wxPythonをチェックアウトすることができます。私の経験では、tkinterよりもかなり多くのバグや癖があるようですが、ウィジェットが多く、より人気があるようです。

私は、tkinterとwxPythonの違いは、ホームデポ(ホームデベロップメント/腰掛け屋)とIkea(あなたが組み立てるプレハブ家具)の違いだと思っています。あなたが望むもの(tkinter)を作ることができます。もう一つはあなたにあらかじめパッケージされたものをたくさん与えます。それぞれのアプローチには長所と短所があります。

+0

徹底的な返信をありがとう!私はキャンバス内のフレームをめちゃくちゃにすることは、 "本当の"解決策ではなく、面倒な回避策のように思えるので、私はUIデザインを再考するつもりです。また、wxPythonについても見ていきますが、新しくエキサイティングなものを提供していない場合は、このプロジェクトのためにTkinterを使用します。 – frigg

+0

ttkはPython 2.6で動作します – Gonzo

関連する問題