2017-04-17 12 views
0

ラベルを一定のサイズに設定していますが、プログラムを実行すると、メインウィンドウがラベル全体を見るのに十分ではありません。 メインウィンドウのサイズを大きくするにはどうすればよいですか?私は別の選択肢を試したが、私は運がない。PythonのメインTkinterウィンドウのサイズを変更するには?

import win32com.client 
import os 
# import threading # use the Timer 
import tkinter 

from tkinter import Tk, Label, Button 

class myGUI: 

    def timer(self): 

     import pythoncom  
     pythoncom.CoInitialize() 

     outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 

     inbox = outlook.GetDefaultFolder(6) 



     messages = inbox.Items 
     message = messages.GetLast() 
     body_content = message.Subject # can be Body, To, REcipients, Sender, etc 


     self.answer_label['text'] = (body_content) # orginally used body_content.encode("utf-8") to fixed character encoding issue 


     self.master.after(20, self.timer) # after needs to be called from an existing widget such as master 
             # In this case, the after method is used to refresh the e-mails instead of threading 

    def __init__(self, master): 
     self.master = master 
     master.title("CheckStat") 


     self.answer_label = Label(master, text='', fg="light green", bg="dark green", font="Helvetica 16 bold italic") 
     self.answer_label.place(height=100, width=600) 

     self.timer() 


root = Tk() 
my_gui = myGUI(root) 
root.mainloop() 
+0

あなたは '.place()'マネージャを使用する必要がありますか? '.place()'は境界と場所を無視します。他のウィンドウマネージャ( '.grid()'と '.pack()'を使いたいと思うかもしれませんが、いくつかの頭痛を覚えておいてください。これらの2つの**は同じコンテナで使用することはできません(むしろ、Tkは残りのSunの生涯にわたってそれらを解決しようとします)。 – Delioth

+0

いいえ、私は.placeを使う必要はありません。私はそれが私にもっとコントロールを与えるだろうと思ったので、もともとそれを選んだ。 – Prox

+0

これは少しだけコントロールを与えるかもしれませんが、あなたはもっとコントロールしたくありません。 '.grid()'が必要なものを正確に与えることができない場合、 '.place() 'に移動することができます。 'その特定の事のために。しかし '.grid()'はおそらく60%の状況で望むものを正確に与えることができ、 '.pack()'は残りの99%を処理します。 '.place()'は、ウィンドウやその他の要素全体に対して相対的な位置付けが必要であるが、 '.grid()'ハンドルではなく、重複する要素に対しても便利です。 – Delioth

答えて

1

あなたの代わりにplacepackまたはgridを使用している場合は、ウィンドウが自動的に拡大またはラベルの内容に合わせて縮小されます。 placeは非常に控えめに使用するのが一番です。

placeを使用する場合は、ルートウィンドウのgeometryメソッドで明示的にサイズを指定できます。

は例えば、ルートウィンドウが600x100可能にするために、あなたは、この行を追加する必要があります

root.geometry("600x100") 
+0

私はroot.geometry()について不思議でした。私はそれを試みたが、何もしていないようだ。 – Prox

+0

@Prox:それは間違いなく何かをします。これは、ルートウィンドウのサイズを指定されたサイズに強制します。 –

関連する問題