GUIをレイアウトしようとしていますので、スクリーン・ワードが各方向の画面を塗りつぶすように追加されていますが、root.geometry( '300x600')のサイズまでですPack tkinterウィンドウが過去のフレームに展開されます
代わりに、フレームの幅をはるかに超えて拡大しています。これは正しいサイズにするための方法はありますか?私はこれまでにはうまくいきませんでした。
編集:テキスト全体を表示するには、スクロールバーが、私はroot.geometryを設定する必要が( '684x418)
from tkinter import *
class Rhapsody_Gui:
def __init__(self,root):
Window = Frame(root, width=200, height=200)
self.InWidget = Text(Window,bg='white',bd=3,fg='black',exportselection=0,height=1,wrap=WORD,insertofftime=0,insertbackground="white")
Window.pack()
self.InWidget.focus_set()
self.scroll = Scrollbar(Window, orient=VERTICAL)
self.OutWidget = Text(Window, yscrollcommand=self.scroll.set)#, height=30)
self.OutWidget.bind("<Button 1>",self.Select)
self.InWidget.bind("<Return>", self.Post)
myList = ['words', 'that', 'should', 'be', 'printed']
for x in myList:
self.OutWidget['state'] = ['normal']
self.OutWidget.insert(END, x +'\n')
self.scroll.config(command=self.OutWidget.yview)
self.InWidget.pack(side=TOP, fill='none')
self.OutWidget.pack(side=LEFT, fill='none', expand=False)
self.scroll.config(command=self.OutWidget.yview)
self.scroll.pack(side=RIGHT, fill=Y, expand=False)#, ipadx=5)
self.OutWidget['state'] = ['disabled']
def Post(self,event):
text = self.InWidget.get(1.0,2.0)
self.InWidget.delete(1.0,2.0)
self.OutWidget['state'] = ['normal']
self.OutWidget.insert('end',text)
self.OutWidget['state'] = ['disabled']
return ("break")
def Select(self,event):
line_start = self.OutWidget.index("@%s,%s linestart" % (event.x, event.y))
line_end = self.OutWidget.index("%s lineend" % line_start)
self.OutWidget.tag_configure("highlight", background="yellow")
self.OutWidget.tag_remove("highlight", 1.0, "end")
self.OutWidget.tag_add("highlight", line_start, line_end)
self.InWidget.focus_set()
return ("break")
if __name__ == '__main__':
root = Tk()
root.geometry('300x600+600+100')
App = Rhapsody_Gui(root)
root.mainloop()
これは、すべて満たされた以外、私は、それが見えるようにしたいものです下への道順
テキストウィジェットをウィンドウに塗りつぶしたり、ウィンドウをテキストウィジェットのサイズに縮小する方法を尋ねていますか?ウィンドウは600x300で描画されます。この行を追加して、ジオメトリが変更されたことを確認します。 'root.bind( ''、lambda:print(root.geometry()))' –
Novel
テキストが書き込まれるOutWidgetを同じにします。全体のウィンドウとしてのサイズ私にとっては、フレームの幅をはるかに超えて目に見えないほど広がっています。だから、スクロールバーやOutWidgetテキストウィンドウの端を見るために、ウィンドウのサイズを大きくする必要があります。 – ProfessionalNameForDisplayHere