python - Gui 不显示某些小部件且 GUI 不可拉伸
问题描述
嗨,我的显示器的最大分辨率是 1366 x 768。我有以下代码,它显示了几个变量。我的代码有两个问题。
GUI 只显示 12 个变量,但我需要显示 15 个。我无法将 GUI 拉伸到某个点之外以查看其余部分。所有 15 个变量都显示在我的朋友显示器中,显示器的分辨率为 1920 x 1080。
我为滚动条添加的代码也不起作用,因此我已将其注释掉。
from tkinter import *
from tkinter import ttk
class Application(Frame):
def widgets(self):
self.tabcontrol = ttk.Notebook(self)
self.tab1 = ttk.Frame(self)
#self.xscrollbar = Scrollbar(self.tab1, orient = HORIZONTAL)
#self.tab1.configure(xscrollcommand = self.xscrollbar.set)
self.tabcontrol.add(self.tab1, text = "Tab-1")
self.tabcontrol.pack(expand =1, fill = "both")
#self.xscrollbar.grid(row = 2, column =0, sticky = N+S+E+W)
#self.xscrollbar.configure(command = self.tab1.xview)
self.photo = PhotoImage(file = "Test.PNG")
self.title = Label(self.tab1, image = self.photo)
self.title.grid(row= 0, column=0, columnspan = 15, rowspan =1)
self.L1 = Label(self.tab1, text = "A", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =0)
self.L2 = Label(self.tab1, text = "B", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =1)
self.L3 = Label(self.tab1, text = "C", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =2)
self.L4 = Label(self.tab1, text = "D", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =3)
self.L5 = Label(self.tab1, text = "E", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =4)
self.L6 = Label(self.tab1, text = "F", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =5)
self.L7 = Label(self.tab1, text = "G", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =6)
self.L8 = Label(self.tab1, text = "H", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =7)
self.L9 = Label(self.tab1, text = "I", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =8)
self.L10 = Label(self.tab1, text = "J", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =9)
self.L11 = Label(self.tab1, text = "K", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =10)
self.L12 = Label(self.tab1, text = "L", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =11)
self.L13 = Label(self.tab1, text = "M", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =12)
self.L14 = Label(self.tab1, text = "N", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =13)
self.L15 = Label(self.tab1, text = "O", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =14)
def __init__(self, initial):
super(Application, self).__init__(initial)
self.grid()
self.widgets()
Window = Tk()
Tool = Application(Window)
Window.mainloop()
解决方案
找到解决方案!
from tkinter import *
from tkinter import ttk
class Application(Frame):
def widgets(self):
self.tabcontrol = ttk.Notebook(self)
self.tab1 = ttk.Frame(self)
self.tabcontrol.add(self.tab1, text = "Tab-1")
self.tabcontrol.pack(expand =1, fill = "both")
self.frame_canvas = Frame(self.tab1)
self.frame_canvas.grid(row=0, column=0, sticky=N+S+E+W)
self.frame_canvas.grid_rowconfigure(0, weight=1)
self.frame_canvas.grid_columnconfigure(0, weight=1)
self.canvas = Canvas(self.frame_canvas)
self.canvas.grid(row=0, column=0, sticky=N+S+E+W)
self.scroll = Scrollbar(self.frame_canvas, orient="horizontal", command=self.canvas.xview)
self.scroll.grid(row=3, column=0, sticky=N+S+E+W)
self.canvas.configure(xscrollcommand=self.scroll.set)
self.frame_widgets = Frame(self.canvas)
self.canvas.create_window((0, 0), window=self.frame_widgets)
self.photo = PhotoImage(file = "Test.PNG")
self.title = Label(self.frame_widgets, image = self.photo)
self.title.grid(row= 0, column=0, columnspan = 15, rowspan =1)
self.L1 = Label(self.frame_widgets, text = "A", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =0)
self.L2 = Label(self.frame_widgets, text = "B", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =1)
self.L3 = Label(self.frame_widgets, text = "C", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =2)
self.L4 = Label(self.frame_widgets, text = "D", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =3)
self.L5 = Label(self.frame_widgets, text = "E", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =4)
self.L6 = Label(self.frame_widgets, text = "F", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =5)
self.L7 = Label(self.frame_widgets, text = "G", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =6)
self.L8 = Label(self.frame_widgets, text = "H", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =7)
self.L9 = Label(self.frame_widgets, text = "I", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =8)
self.L10 = Label(self.frame_widgets, text = "J", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =9)
self.L11 = Label(self.frame_widgets, text = "K", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =10)
self.L12 = Label(self.frame_widgets, text = "L", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =11)
self.L13 = Label(self.frame_widgets, text = "M", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =12)
self.L14 = Label(self.frame_widgets, text = "N", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =13)
self.L15 = Label(self.frame_widgets, text = "O", fg = "white", bg = "steel blue", font = "Helvetica 10 bold").grid(row=1, column =14)
self.frame_widgets.update_idletasks()
self.canvas.config(width=1366, height=600, scrollregion=self.canvas.bbox("all"))
def __init__(self, initial):
super(Application, self).__init__(initial)
self.grid()
self.widgets()
Window = Tk()
Tool = Application(Window)
Window.mainloop()
推荐阅读
- php - PHP数组仅显示for循环中的最后一项
- excel - 如何使用 VBA 将一个工作簿中的多个表复制到新工作簿?
- angular - 如何更改 Angular Material 表中的滚动条样式?
- javascript - 如何防止 Chromes 自动填充弄乱我的 vuetify 登录表单?
- android - 无法从 android 发出 WritableMap 数组到 react-native
- javascript - 只有 Firefox 类型错误:“尝试获取资源时出现网络错误。”
- json - kubectl patch:是否可以在单个补丁执行中向数组添加多个值
- python - Python os.startfile 在 ubuntu 中不起作用
- python - Python & Discord.py,离开命令
- c# - json文件中的凭据未发布