簡體   English   中英

在另一個框架內顯示 Tkinter 框架時出現問題

[英]Problem with displaying Tkinter Frames inside another frame

嗨,我在使用 tkinter 框架時遇到問題。 我希望有一個帶主機的 window。 在那個主框架中,我有一個標題 label、頂部框架和底部框架。 我希望使用網格將標題 label 和頂部和底部框架一個接一個地放置。 我遇到的問題是標題 label 並且底部框架沒有顯示。

這是我的代碼:

    from tkinter import *

def addLabels(frame):
    lbl_date = Label(frame, text="DATE(DD/MM/YYYY)").grid(row=0,column=0)
    lbl_po = Label(frame, text="PO #").grid(row=0,column=1)
    lbl_nikls = Label(frame, text="NIKLS").grid(row=0,column=2)
    lbl_sro = Label(frame, text="SRO").grid(row=0,column=3)
    lbl_hours = Label(frame, text="HOURS").grid(row=0,column=4)
    lbl_otHours = Label(frame, text="OT HOURS").grid(row=0,column=5)
    lbl_dot = Label(frame, text="D-OT HOURS").grid(row=0,column=6)
    lbl_invoice = Label(frame, text="INVOICE #").grid(row=0,column=7)

def addEntry(frame):
    entry_date = Entry(frame).grid(row=1,column=0)
    entry_po = Entry(frame).grid(row=1,column=1)
    chk_nikls = Checkbutton(frame, text="").grid(row=1, column=2)
    chk_sro = Checkbutton(frame, text="").grid(row=1, column=3)
    entry_hours = Entry(frame).grid(row=1,column=4)
    entry_otHours = Entry(frame).grid(row=1,column=5)
    entry_dot = Entry(frame).grid(row=1,column=6)
    entry_invoice = Entry(frame).grid(row=1,column=7)    

##create window
window = Tk()

#main fraime
mainframe = Frame(master=window, borderwidth=1, highlightbackground="black", highlightthickness=1)
##create and pack trinity header
lbl_title = Label(master=mainframe, text="Trinity Menu").grid(row=0)

##create frame for top view
top = Frame(master=mainframe, borderwidth=1, highlightbackground="black", highlightthickness=1).grid(row=1)
addLabels(top)
addEntry(top)

##create frame for bottom view
bottom = Frame(master=mainframe, borderwidth=1, highlightbackground="black", highlightthickness=1).grid(row=2)  
addLabels(bottom)

## run program
window.mainloop()

如果你能請幫助,將不勝感激。 提前致謝。

第一個問題是:你永遠不會在mainframe上使用placepackgrid 使用類似的東西:

mainframe = Frame(master=window, borderwidth=1, highlightbackground="black", highlightthickness=1)
mainframe.pack()

第二個:您使用e=Entry(...)創建一個框架。 然后e是 class Entry的 object 。 您使用a=e.grid(...)等將其放置為 py。但是a的類型為 None。 因此a=e.grid(...)返回與a=Entry(...).grid(...)相同aNoneType ),但您對此不感興趣,而是對e感興趣。 這也不是 jQuery。 所以使用:

lbl_title = Label(master=mainframe, text="Trinity Menu")
lbl_title.grid(row=0)

希望這會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM