4

Python で Tkinter を使用して単純な GUI アプリを作成していますが、単一のフレームにスクロールバーを追加する際に問題が発生しています。フレームは私の 20 インチでは上から下まで見えますが、ネットブックやその他の低解像度画面ですべてを表示するには、スクロールバーが必要です。

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を使用しています。

4

1 に答える 1

6

tkinterのフレームウィジェットはスクロールしません。1つの解決策は、フレーム全体を(キャンバスオブジェクトとして)キャンバスに配置し、スクロールバーをキャンバスにアタッチすることです。スクロール可能な領域の大きさをキャンバスに指示する必要があります。これは、すべてのウィジェットをフレームに配置したら、フレームのサイズを取得することで実行できます。ただし、UIデザインを再検討することをお勧めします。スクロール可能なフレームは、使用するGUIツールキットに関係なく使いやすいものではありません。

Tkinterが時代遅れであるかどうかについては...「はい」と言う人もいれば、「いいえ」と言う人もいます。そこには多くのtkinterの誤った情報があるので、すべてのtkinterの意見を一粒の塩で取ってください(私のものでさえ!)。Tkinterは改善を続けており、停滞していません。Python 2.7以降を使用する余裕がある場合は、プラットフォーム固有のテーマを提供するttkウィジェットと、ノートブックや階層ツリーなどの追加のウィジェットにアクセスできます。

別の方法については、wxPythonを確認することをお勧めします。私の経験では、tkinterよりもかなり多くのバグや癖があるようですが、ウィジェットがはるかに多く、人気があるようです。

tkinterとwxPythonの違いは、Home Depot(リノベーション/ランバーヤードストア)とIkea(自分で組み立てるプレハブ家具)の違いのようなものだと思います。あなたが望むもの(tkinter)は、他のものがあなたにたくさんのあらかじめパッケージ化されたものを与えます。それぞれのアプローチには長所と短所があります。

于 2010-12-29T04:39:50.487 に答える