I have got a problem with spacing entry fields in window. It places not next to the label.
I tried to change numbers of rows and columns to place it right next to labels, bit it doesn't work. Now these fields just levitate.
Here is my code:
from tkinter import *
from tkinter import ttk
import tkinter as tk
from tkinter import Tk
class Window(Tk):
is_reset = True
def __init__(self):
super().__init__()
self.geometry("720x465+760+200")
self.resizable(True, True)
self.title("Калькулятор СМО")
self.icon = PhotoImage(file="smile.png")
self.iconphoto(False, self.icon)
self.notebook = ttk.Notebook()
self.notebook.grid()
self.frame1 = ttk.Frame(self.notebook)
self.frame2 = ttk.Frame(self.notebook)
self.frame3 = ttk.Frame(self.notebook)
self.frame1.grid()
self.frame2.grid()
self.frame3.grid()
self.notebook.add(self.frame1, text="Одноканальна СМО з відмовами")
self.notebook.add(self.frame2, text="Багатоканальна СМО з відмовами")
self.notebook.add(self.frame3, text="Одноканальна СМО з очікуванням з обмеженою чергою")
def make_frame1(self):
intensity_lambda_label = tk.Label(self.frame1, text="Введіть інтенсивність λ", font=("Helvetica", 14))
intensity_lambda_label.grid(column=0, row=1)
intensity_lambda_entry = ttk.Entry()
intensity_lambda_entry.grid(column=1, row=1)
intensity_miu_label = tk.Label(self.frame1, text="Введіть інтенсивність μ", font=("Helvetica", 14))
intensity_miu_label.grid(column=0, row=2)
intensity_miu_entry = ttk.Entry()
intensity_miu_entry.grid(column=1, row=2)
def run(self):
self.make_frame1()
self.mainloop()
if __name__ == '__main__':
window = Window()
window.run()
Because the tk.Label
s are in frame1
, when you .grid()
them in the frame, it puts them in the frame. When you put the Entry
in root, it .grid()
s them in root.
You can fix it by moving the Entry
into frame1
when you create them like so:
ttk.Entry(self.frame1)
All in all it would look like this:
intensity_lambda_label = tk.Label(self.frame1, text="Введіть інтенсивність λ", font=("Helvetica", 14))
intensity_lambda_label.grid(column=0, row=1)
intensity_lambda_entry = ttk.Entry(self.frame1)
intensity_lambda_entry.grid(column=1, row=1)
intensity_miu_label = tk.Label(self.frame1, text="Введіть інтенсивність μ", font=("Helvetica", 14))
intensity_miu_label.grid(column=0, row=2)
intensity_miu_entry = ttk.Entry(self.frame1)
intensity_miu_entry.grid(column=1, row=2)