Python Forum
[Tkinter] Tkinter classes
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Tkinter classes
#5
I've tried to add "Notebook" widget, but it takes more place than it's master frame (FrameAction). Why is it so and can I fix that?
import tkinter as tk
from tkinter import ttk as tktw

class Window(tk.Tk):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.geometry("640x480")
        self.minsize(width=640, height=480)
        self.fm = FrameMain(self, background="pink")
        self.fb = FrameBottom(self, background="lightblue")
        self.fl = FrameLeft(self.fm, background="yellow")
        self.fr = FrameRight(self.fm, background="green")
        self.fa = FrameAction(self.fr, background="orange")
        self.fc = FrameChat(self.fr, background="blue")
        self.tm = TopMenu(self)
        self.config(menu=self.tm)
        self.ab = ActionBar(self.fa)
        self.ai = ActionInfo(self.ab)
        self.ab.add(self.ai, text="Info")


class FrameMain(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH, expand=1)


class FrameLeft(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH, expand=1, side="left")


class FrameRight(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH, expand=1, side="right")


class FrameChat(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH, expand=1, side="bottom")


class FrameAction(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH, expand=1, side="top")


class ActionBar(tktw.Notebook):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH, expand=1)


class ActionInfo(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH, expand=1)


class FrameBottom(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill=tk.BOTH)
        self.bs = ButtonSend(self, text="Send")


class ButtonSend(tk.Button):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(side="right")


class TopMenu(tk.Menu):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.add_cascade(label="Menu")


if __name__ == "__main__":
    w = Window()
    w.mainloop()
[Image: notebook.png]
Reply


Messages In This Thread
Tkinter classes - by Gupi - May-24-2019, 11:29 AM
RE: Tkinter classes - by Yoriz - May-24-2019, 12:43 PM
RE: Tkinter classes - by Gupi - May-24-2019, 05:42 PM
RE: Tkinter classes - by Yoriz - May-24-2019, 05:59 PM
RE: Tkinter classes - by Gupi - May-25-2019, 10:39 AM
RE: Tkinter classes - by Yoriz - May-26-2019, 11:59 AM
RE: Tkinter classes - by Gupi - May-26-2019, 01:38 PM
RE: Tkinter classes - by Yoriz - May-26-2019, 02:31 PM
RE: Tkinter classes - by Gupi - May-26-2019, 05:20 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Tkinter & classes Heyjoe 6 3,229 Feb-13-2021, 09:17 PM
Last Post: Heyjoe
  [Tkinter] How to create multilple tabs in tkinter from different classes Rishav 5 18,570 Jul-11-2018, 11:59 AM
Last Post: CCChris91

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020