Gui не отображает некоторые виджеты, а GUI не растягивается - PullRequest
0 голосов
/ 30 октября 2018

Привет, максимальное разрешение моего монитора - 1366 x 768. У меня есть следующий код, который отображает несколько переменных. У меня есть две проблемы с кодом.

  1. Графический интерфейс отображает только 12 переменных, но мне нужно 15 для отображения. Я не могу растянуть GUI за определенную точку, чтобы увидеть остальные. Все 15 переменных отображаются на мониторе моих друзей с дисплеем 1920 x 1080.

  2. Код, который я добавил для полосы прокрутки, тоже не работает, поэтому я закомментировал его.


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

1 Ответ

0 голосов
/ 30 октября 2018

Решение найдено!

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...