0
私はTkinterでGUIプログラムを開発しています。また7" タッチスクリーン、フルスクリーンで動作します。 まず、私はメインタイトルを作った。Tkinter GUIプログラムのCanvasオブジェクトとその親Toplevelオブジェクトの右側の隙間
import Tkinter as tk
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 480
class Application(tk.Toplevel):
def __init__(self, *args, **kwargs):
tk.Toplevel.__init__(self, *args, **kwargs)
self.overrideredirect(True)
self.wm_geometry("800x480")
self.cnvs = None
self.showTitle()
def showTitle(self):
self.config(bg = 'white', borderwidth = 0)
self.cnvs = TitleCanvas(self)
self.cnvs.grid(sticky = tk.N + tk.E + tk.W + tk.S)
class TitleCanvas(tk.Canvas):
def __init__(self, parent):
tk.Canvas.__init__(self, parent, width = SCREEN_WIDTH, height = SCREEN_HEIGHT)
self.widgets = {}
self.init_ui()
def init_ui(self):
# BG Color: White
self.config(bg = 'white', borderwidth = 0)
# Blank Area
# Row: 0
self.lblBlank = tk.Label(self, background = 'white', borderwidth = 0, text = '')
self.lblBlank.grid(pady = 20, row = 0)
# Title Image
# Row: 1
self.photoLogo = tk.PhotoImage(file = 'samplelogo.gif')
self.lblLogo = tk.Label(self, image = self.photoLogo)
self.lblLogo.grid(padx = 100, pady = 40, row = 10, sticky = tk.E + tk.W)
# Text1
# Row: 2
self.lblLoad = tk.Label(self, background = 'white',
font = ("Helvetica", -30), text = "Loading...")
self.lblLoad.grid(pady = 60, row = 2, sticky = tk.E + tk.W)
# Text2
# Row: 3
self.lblVer = tk.Label(self, background = 'white',
font = ("Helvetica", -30), text = "Company and Version")
self.lblVer.grid(pady = 30, row = 3, sticky = tk.E + tk.W)
app = Application()
app.mainloop()
Canvasオブジェクトは、画面全体を埋める必要がある。しかし、それはに到達していません右側のエッジ。 私は)((create_imageで、この問題を解決)してcreate_text。これらのメソッドは、ウィジェットの位置を設定することができます。
シジュウカラ?
(ギャップを表示するために、あなたの例では異なる背景を追加する必要があります) – PRMoureu
これは、各ウィジェットの背景オプションによってギャップが生じたことを意味しますか?私はすべての背景オプションを削除しましたが、Toplevelは削除されませんでした。私は別の原因のためだと思う。 – AncientGratin
なぜ私はキャンバスでgrid()を使用しましたか?問題は解決されました。 grid()の代わりにcreate_image()とcreate_text()メソッドを使用します。ご協力ありがとうございます。 – AncientGratin