Skip to content

Instantly share code, notes, and snippets.

@ihopeudie
Created May 25, 2025 16:05
Show Gist options
  • Save ihopeudie/de595dd439604245d45e918e1b7f8668 to your computer and use it in GitHub Desktop.
Save ihopeudie/de595dd439604245d45e918e1b7f8668 to your computer and use it in GitHub Desktop.
tkinter frames
import tkinter as tk
from tkinter import ttk
def draw_text(card_frame):
product_type = 'Гостиная'
product_name = 'Диван диванный'
time = 6.0
sku = '10231233'
min_price = 124.0
main_material = 'Щит мебельный'
type_label = ttk.Label(card_frame, text=f"{product_type} | {product_name}", font=('Arial', 14))
type_label.grid(column=0, row=0, sticky='ew')
time_label = ttk.Label(card_frame, text=f"Время изготовления: {time} ч", font=('Arial', 14))
time_label.grid(column=1, row=0, sticky='nw')
sku_label = ttk.Label(card_frame, text=f"{sku}", font=('Arial', 14))
sku_label.grid(column=0, row=1, sticky='ew')
min_price_label = ttk.Label(card_frame, text=f"Минимальная цена: {min_price}", font=('Arial', 14))
min_price_label.grid(column=0, row=3, sticky='ew')
min_price_label = ttk.Label(card_frame, text=f"Основной материал: {main_material}", font=('Arial', 14))
min_price_label.grid(column=0, row=4, sticky='ew')
def draw_card_frame(table_frame, i):
fake_border_frame = tk.Frame(table_frame, bg='black')
fake_border_frame.grid(row = i, column = 0, padx = 15, pady=15, sticky="ew")
fake_border_frame.columnconfigure(0, weight=1)
card_frame = tk.Frame(fake_border_frame, height=200, borderwidth=5)
card_frame.grid(row = 0, column = 0, padx = 5, pady=5, sticky="ew")
card_frame.columnconfigure(0, weight=1)
card_frame.rowconfigure(0, weight=1)
draw_text(card_frame)
def draw_table_frame(frame):
table_frame = tk.Frame(frame, bg='#dddddd', borderwidth=3, relief='sunken')
table_frame.grid(column=0, row=0, sticky="nsew", padx=5, pady=5)
table_frame.columnconfigure(0, weight=1)
for i in range(0, 3):
draw_card_frame(table_frame, i)
def draw_main_frame(root):
frame = tk.Frame(root, bg='#ffffff')
frame.grid(row=0, column=0, sticky=tk.NSEW)
frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)
draw_table_frame(frame)
def main():
root = tk.Tk()
root.geometry("1000x1000")
root.title("Test")
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
draw_main_frame(root)
root.mainloop()
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment