Python Tkinter GUI程序中画布对象与其父顶级对象右侧之间的间隙

Python Tkinter GUI程序中画布对象与其父顶级对象右侧之间的间隙,python,python-2.7,tkinter,raspberry-pi3,Python,Python 2.7,Tkinter,Raspberry Pi3,我正在用Tkinter开发一个GUI程序。它将在7英寸触摸屏、全屏上工作。 首先,我做了主标题 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.overrideredi

我正在用Tkinter开发一个GUI程序。它将在7英寸触摸屏、全屏上工作。 首先,我做了主标题

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()

画布对象应该填满整个屏幕。但是它没有到达右侧的边缘。
要消除这个差距,我应该怎么做?

我用create_image()和create_text()解决了这个问题。这些方法可以设置小部件的位置

TitleCanvas.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')

(您应该在示例中添加不同的背景以使间隙可见)这是否意味着每个小部件中的背景选项都会导致间隙?我删除了除Toplevel之外的所有背景选项,但间隙没有删除。我想这是因为另一个原因。我为什么在画布中使用grid()?问题已经解决。我使用create_image()并创建_text()方法,而不是grid()。谢谢您的帮助。