2017-02-02 26 views
0

私はPythonでGUIを作成するためにscrolledtextモジュールを使ってScrolledTextウィジェットを作成したいと思う。 ScrolledTextウィジェットを正常に作成しましたが、水平スクロールバーを追加することはできません。Python scrolledtext module

e3=ScrolledText(window3,width=24,height=13) 
e3.grid(row=5,column=1,rowspan=6,columnspan=4) 

上記のコードスニペットは、ScrolledTextウィジェットの作成に使用されます。

ScrolledText Widget Screenshot

ウィジェットは、垂直スクロールバーだけが含まれています。私はそれにも水平スクロールバーを追加したい。どのようにそれを行うにはどのようなアイデア?

UPDATE:ScrolledTextウィジェットは、複数行の入力を受け入れるために使用されています。添付されている画像を確認してください。

ScrolledText widget

+0

なぜスクロールテキストウィジェットを使用しますか?数行のコードだけで、テキストウィジェットに水平スクロールバーと垂直スクロールバーの両方を追加するのは簡単です。あなたは 'ScrolledText'を使用しないソリューションにオープンですか? –

+0

@BryanOakley。実際には、私は複数行のエントリウィジェットが必要な電子メール送信アプリを作成しています。なぜ私はScrolledTextを使用しています。また、私は水平スクロールが必要な理由は、ユーザーが自分の電子メールの識別を適切に文書化できるようにすることです。画面全体のスクリーンショットを添付します。そして、はい、私は代替ソリューションでうまくいきます。 –

+0

ScrolledTextの代わりに、水平と垂直の両方のスクロールバーオプションで複数行の入力を許可する他のウィジェットがあれば、それを使うことができます。 https://i.stack.imgur.com/ewOVz.jpg –

答えて

0

あなたはスクロールテキストはテキストウィジェットとスクロールバーのカップルを自分でウィジェット実装することができます。

フレーム内にテキストウィジェットと2つのスクロールバーを配置し、1つのウィジェットのように表示する例を示します。これは、ちょうどScrolledTextウィジェットが行うことです:

import tkinter as tk 

root = tk.Tk() 

textContainer = tk.Frame(root, borderwidth=1, relief="sunken") 
text = tk.Text(textContainer, width=24, height=13, wrap="none", borderwidth=0) 
textVsb = tk.Scrollbar(textContainer, orient="vertical", command=text.yview) 
textHsb = tk.Scrollbar(textContainer, orient="horizontal", command=text.xview) 
text.configure(yscrollcommand=textVsb.set, xscrollcommand=textHsb.set) 

text.grid(row=0, column=0, sticky="nsew") 
textVsb.grid(row=0, column=1, sticky="ns") 
textHsb.grid(row=1, column=0, sticky="ew") 

textContainer.grid_rowconfigure(0, weight=1) 
textContainer.grid_columnconfigure(0, weight=1) 

textContainer.pack(side="top", fill="both", expand=True) 

root.mainloop() 
+0

ありがとうございます。これは完璧に動作します。 –

関連する問題