【问题标题】:Python/Tkinter Frontend FramePython/Tkinter 前端框架
【发布时间】:2018-06-28 20:21:08
【问题描述】:

When opened normally Fullscreen

我正在做我的第一个项目,我正在使用 python/tkinter。我想出了这个设计(上图),但我不能让它响应。

我希望底部保持不变,但我想将顶部延伸到底部。

from tkinter import *

root = Tk()

topFrame = Frame(root)
topFrame.pack(side=TOP, fill=BOTH)

scrollbar = Scrollbar(topFrame)
scrollbar.pack(side=RIGHT, fill=Y)

listbox = Listbox(topFrame)
listbox.pack(fill=BOTH)

for i in range(100):
    listbox.insert(END, i)

#附加列表和滚动

listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)

#bottom frame

bottomFrame = Frame(root)
bottomFrame.pack(side=BOTTOM, fill=X)

#底部左侧框架

b_leftFrame = Frame(bottomFrame)
b_leftFrame.pack(side=LEFT, fill=X)

#定义标签

label1 = Label(b_leftFrame, text="Title")
label1.grid(row=0, column=0, sticky=E)

label2 = Label(b_leftFrame, text="Author")
label2.grid(row=0, column=2, sticky=E)

label3 = Label(b_leftFrame, text="Publisher")
label3.grid(row=0, column=4, sticky=E)

label4 = Label(b_leftFrame, text="Year")
label4.grid(row=0, column=6, sticky=E)

label5 = Label(b_leftFrame, text="Translator")
label5.grid(row=0, column=8, sticky=E)

#定义标签

title_text =StringVar()
entry1 = Entry(b_leftFrame, textvariable=title_text)
entry1.grid(row=0, column=1)

author_text =StringVar()
entry2 = Entry(b_leftFrame, textvariable=author_text)
entry2.grid(row=0, column=3)

publisher_text =StringVar()
entry3 = Entry(b_leftFrame, textvariable=publisher_text)
entry3.grid(row=0, column=5)

year_text =StringVar()
entry4 = Entry(b_leftFrame, textvariable=year_text)
entry4.grid(row=0, column=7)

translator_text =StringVar()
entry4 = Entry(b_leftFrame, textvariable=translator_text)
entry4.grid(row=0, column=9)

#右下

b_rightFrame = Frame(bottomFrame)
b_rightFrame.pack(side=RIGHT)

#按钮

b1=Button(b_rightFrame, text="View All", width=12)
b1.grid(row=2, column=3)

b1=Button(b_rightFrame, text="Search Entry", width=12)
b1.grid(row=3, column=3)

b1=Button(b_rightFrame, text="Add Entry", width=12)
b1.grid(row=4, column=3)

b1=Button(b_rightFrame, text="Update selected", width=12)
b1.grid(row=5, column=3)

b1=Button(b_rightFrame, text="Delete selected", width=12)
b1.grid(row=6, column=3)

b1=Button(b_rightFrame, text="Close", width=12)
b1.grid(row=7, column=3)



root.mainloop()

【问题讨论】:

  • 什么是afaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

标签: python windows tkinter responsive-design desktop-application


【解决方案1】:

这里的问题是包含 Listbox 的 topFrame 小部件没有占用所有可用空间。

尝试替换您的:

topFrame.pack(fill=BOTH)

与:

topFrame.pack(fill=BOTH, expand=YES)

一旦您最大化窗口,这将使 topFrame 展开。

此外,为了使列表框也扩展,请替换您的

listbox.pack(fill=BOTH)

与:

listbox.pack(fill=BOTH, expand=YES)

【讨论】:

  • 这行得通,非常感谢。仅通过您建议的更改,我如何将 b_leftFrame 居中,全屏时它会粘在左侧。我怎样才能把它居中?
  • 您希望它扩大尺寸还是仅居中并保持相同的宽度?
  • 在保持相同宽度的同时保持居中
  • 在每个标签和条目 .grid 之后添加一个b_leftFrame.grid_columnconfigure(column, weight=1),将列替换为真实的列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
  • 2021-05-20
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
相关资源
最近更新 更多