2017-07-06 6 views
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() 

enter image description here

Canvasオブジェクトは、画面全体を埋める必要がある。しかし、それはに到達していません右側のエッジ。 私は)((create_imageで、この問題を解決)してcreate_text。これらのメソッドは、ウィジェットの位置を設定することができます。

シジュウカラ?

+0

(ギャップを表示するために、あなたの例では異なる背景を追加する必要があります) – PRMoureu

+0

これは、各ウィジェットの背景オプションによってギャップが生じたことを意味しますか?私はすべての背景オプションを削除しましたが、Toplevelは削除されませんでした。私は別の原因のためだと思う。 – AncientGratin

+0

なぜ私はキャンバスでgrid()を使用しましたか?問題は解決されました。 grid()の代わりにcreate_image()とcreate_text()メソッドを使用します。ご協力ありがとうございます。 – AncientGratin

答えて

0

を何をすべき、ギャップを削除するにはleCanvas.init_ui()メソッドはこのように改訂することができます。

def init_ui(self): 
    #BG Color: White 
    self.config(bg = 'white', borderwidth = 0) 

    # Background 
    self.create_rectangle((0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), fill = 'white') 

    # Title Image 
    #Center Point: (400, 160) 
    self.photoLogo = tk.PhotoImage(file = 'samplelogo.gif') 
    self.create_image(400, 160, anchor = tk.CENTER, image = self.photoLogo) 

    # Text1 
    self.create_text((400, 315), text = 'Loading...') 

    # Text2 
    self.create_text((400, 435), text = 'Company and Version') 
関連する問題