#python #tkinter
#питон #tkinter
Вопрос:
Я пишу программное обеспечение, общая работа была выполнена полностью, но весь код был выполнен в одном классе, изначально определение метода было нормальным, поскольку они увеличивают, что имена сбивают с толку . так что нужна была помощь
первоначальный импорт
from tkinter import * from ttkthemes import themed_tk as tk
определенный класс
class Main_page: """Main Window this is configuration that exist when opens""" def __init__(self, window): self.window = window self.window.geometry("1366x768 0 0") self.window.title("Admin Page") self.window.config(bg="gray") """Creating window in full screen""" self.window.attributes("-fullscreen", True) self.window.bind('lt;Escapegt;', lambda event: self.window.attributes("-fullscreen", False)) self.window.bind('lt;F11gt;', lambda event: self.window.attributes("-fullscreen", True)) self.top_fra() self.lef_fra() self.body_fra() def top_fra(self): """This is top Frame in exist on all pages""" top_frame = Frame(self.window, height=70, width=1340) top_frame.place(x=10, y=10) def lef_fra(self): """This is side frame where the main handling buttons are placed as billing, transaction details , settings""" lef_frame = Frame(self.window, height=610, width=125, borderwidth=0) lef_frame.place(x=10, y=85) # Billing Button for left side billing = Button(lef_frame, text="Billing", width=10, height=5, bg="gray", command=self.billing_page) billing.place(x=25, y=20) # manage Button for left side manage = Button(lef_frame, text="Bill n Manage", width=10, height=5, bg="gray", command=self.bill_manage) manage.place(x=25, y=140) def body_fra(self): """This is body frame where the initial info handles""" self.body_frame = Frame(self.window, width=1210, height=610, bg="white") self.body_frame.place(x=140, y=85)
теперь два обязательных класса определены следующим образом методы и каждый раз, когда метод destroy должен вызываться для бесперебойного запуска программы
def billing_page(self): """when billing button is selected , the initial view of the page is opened""" self.body_frame.destroy() self.body_frame = Frame(self.window, width=1210, height=610, bg="White") self.body_frame.place(x=140, y=85) def bill_manage(self): """this is bills managing page where we get all the bills details hear""" """this is placed because when repeatedly called the billing page or bill manager page the frames become more and we see some lags in execution""" self.body_frame.destroy() self.body_frame = Frame(self.window, width=1210, height=610, bg="blue") self.body_frame.place(x=140, y=85) def win(): """initial initialization the page to view""" window = tk.ThemedTk() window.get_themes() window.set_theme("black") Main_page(window) window.mainloop() if __name__ == "__main__": win()
можем ли мы преобразовать метод billing_page и метод bill_manage в отдельные классы и можем ли мы работать над ними дальше
Комментарии:
1. может быть, вам следует скрыть (
place_forget()
) и отобразить (сноваplace()
) объект вместоdestroy
того, чтобы снова иcreate
снова.2. но когда мы снова нажмем «Выставление счетов», кажется, что это снова создаст новое окно.
3. ему нужно сначала создать все кадры — один для
billing_page
и один дляbill_manage
— а позже использовать толькоplace_forget()
для скрытия одного кадра иplace
отображения другого. Этот метод очень полезен, потому что, если вы помещаете какое-то значение в один кадр, вы можете получить его после скрытия (вы можете получить его после уничтожения), и когда вы снова показываете кадр, вы снова видите те же значения.
Ответ №1:
Да, вы можете наследовать класс Main_page в новом классе, например
Class NewOne(Main_page): def __init__(self): pass def billing_page(self): # your code
Комментарии:
1.
billing_page() missing 1 required positional argument: 'self'
получение этой ошибки