Python tkinter combobox на основе выбора ввода скрывает / показывает кадр (метки и виджеты упакованы внутри кадра) - PullRequest
0 голосов
/ 17 марта 2020
from tkinter import *
from tkinter import ttk
import sqlite3
import os
import sys
import datetime

connection = sqlite3.connect("employees.db")
cursor = connection.cursor()

class Main(object):
    def __init__(self, master):
        self.master = master

        #<-----Defining Frames----->
        main_frame = Frame(self.master)
        main_frame.pack()

        top_frame = Frame(main_frame, width = 1250, height = 50, bg = '#f8f8f8', padx = 20, relief = SUNKEN, borderwidth = 1)
        top_frame.pack(side = TOP, fill = X)

        top_right_frame = Frame(top_frame, width = 100, height = 20, bg = '#f8f8f8', relief = SUNKEN, borderwidth = 0)
        top_right_frame.pack(side = RIGHT)

        center_frame = Frame(main_frame, width = 1350, height = 690, relief = RIDGE, bg = '#e6e6ff', borderwidth = 1)
        center_frame.pack(side = TOP)

        left_center_frame = Frame(center_frame, width = 180, height = 690, relief = SUNKEN, bg = '#e6e6ff', borderwidth = 1)
        left_center_frame.pack(side = LEFT, fill = BOTH)
        left_center_frame.pack_propagate(0)

        right_center_frame = Frame(center_frame, width = 1170, height = 690, relief = SUNKEN, bg = '#e6e6ff', borderwidth = 1)
        right_center_frame.pack()
        right_center_frame.pack_propagate(0)

        bottom_frame = Frame(main_frame, width = 1350, height = 10, relief = SUNKEN, bg = '#8080ff', borderwidth = 0)
        bottom_frame.pack(side = BOTTOM, fill = X)

        swap_type_frame = LabelFrame(left_center_frame, width = 250, height = 50, text = "Swap Type", bg = '#e6e6ff', padx = 5, pady = 5)
        swap_type_frame.pack(side = TOP, fill = BOTH, padx = 5, pady = 5)

        #<-----Defining Labels----->
        label_main_title = Label(top_frame, text = "Advisor Roster Swap", bg = '#f8f8f8', font = ("TIMES",20), justify = CENTER)
        label_main_title.pack()

        label_current_day = Label(top_right_frame, text = timeDetails().current_date(), bg = '#f8f8f8', font = ("Times New Roman",10), anchor = NE)
        label_current_day.pack(side = RIGHT)

        label_bottom_frame = Label(bottom_frame, text = "© Vodafone WFM | RTA", font = ("Times New Roman",10), justify = CENTER, fg= '#ffffff', bg = '#8080ff' )
        label_bottom_frame.pack(side = BOTTOM)

        swap_type = ['One Way Swap', 'Two Way Swap', 'One Way CL Swap', 'Two Way CL Swap']
        swap_type_combobox = ttk.Combobox(swap_type_frame, value = swap_type, width = 21)
        swap_type_combobox.current(0)
        swap_type_combobox.grid(row = 2, column = 1, pady = 5)


class Single_Advisor(object):
    def __init__(self, master):
        self.master = master

        single_advisor_frame = LabelFrame(right_center_frame, width = 1150, height = 200, text = "Advisor Details", bg = '#e6e6ff', padx = 5, pady = 5)
        single_advisor_frame.pack(side=TOP, fill=Y, padx = 5, pady = 5)


class Multiple_Advisors(object):
    def __init__(self, master):
        self.master = master

        multiple_advisor_frame = LabelFrame(right_center_frame, width = 1150, height = 200, text = "Advisor Details", bg = '#e6e6ff', padx = 5, pady = 5)
        multiple_advisor_frame.pack(side=TOP, fill=Y, padx = 5, pady = 5)


class timeDetails():
    def current_date(self):
        now =  datetime.datetime.now()
        return now.strftime("%A, %B %d")


def main():
    root = Tk()
    app = Main(root)
    root.title("Advisor Roster Swap")
    root.geometry("1350x750+350+200")
    root.resizable(width = FALSE, height = FALSE)
    root.mainloop()


if __name__ == '__main__':
    main()

Здравствуйте, я хочу скрыть / показать фрейм и его метки / виджеты / блоки и т. Д. c, которые будут зависеть от выбора пользователя в поле со списком. Когда выбрано, должен появиться правильный кадр, который я упомянул в классе, чтобы они могли иметь односторонний или двухсторонний обмен. Один способ будет иметь поля кодов сотрудников вместе с 7 полями (смены и выходы), а 2 способа будет иметь 2 поля кодов сотрудников вместе с полями 7X2 для смен и выходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...