ラベルを一定のサイズに設定していますが、プログラムを実行すると、メインウィンドウがラベル全体を見るのに十分ではありません。 メインウィンドウのサイズを大きくするにはどうすればよいですか?私は別の選択肢を試したが、私は運がない。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()
あなたは '.place()'マネージャを使用する必要がありますか? '.place()'は境界と場所を無視します。他のウィンドウマネージャ( '.grid()'と '.pack()'を使いたいと思うかもしれませんが、いくつかの頭痛を覚えておいてください。これらの2つの**は同じコンテナで使用することはできません(むしろ、Tkは残りのSunの生涯にわたってそれらを解決しようとします)。 – Delioth
いいえ、私は.placeを使う必要はありません。私はそれが私にもっとコントロールを与えるだろうと思ったので、もともとそれを選んだ。 – Prox
これは少しだけコントロールを与えるかもしれませんが、あなたはもっとコントロールしたくありません。 '.grid()'が必要なものを正確に与えることができない場合、 '.place() 'に移動することができます。 'その特定の事のために。しかし '.grid()'はおそらく60%の状況で望むものを正確に与えることができ、 '.pack()'は残りの99%を処理します。 '.place()'は、ウィンドウやその他の要素全体に対して相対的な位置付けが必要であるが、 '.grid()'ハンドルではなく、重複する要素に対しても便利です。 – Delioth