首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用类在tkinter中显示不同的屏幕

如何使用类在tkinter中显示不同的屏幕
EN

Stack Overflow用户
提问于 2020-08-07 21:17:28
回答 1查看 231关注 0票数 0

在我的tkinter项目中,我的代码中有两个类,即inputsearch。这两个类各自都很好地工作,并且在它们下面包含了一堆子页,我可以通过这些子页导航。但是,我无法在这两个类之间切换。由于我的项目相当大,所以我提供了下面的通用代码。

代码语言:javascript
运行
复制
InputOrSearch = False


class Input:   # class 1
    [...]

class Search:   # class 2
    def __init__(self, screen):
        self.screen = screen

    def CheckPage(self, page, optmenu=None):
        if page == 1:
            self.Clear()
            self.search_menu()

    def Clear(self):
        for widget in self.screen.winfo_children():
            widget.destroy()
    [...]


inputscreen = Input(gui)
searchscreen = Search(gui)


def inputorsearch():
    if not InputOrSearch:
        inputscreen.CheckPage(1)
    else:
        searchscreen.CheckPage(1)


while True:
    inputorsearch()

    gui.mainloop()

这就是我所使用的方法,虽然这正确地导致了Input,但由于某种原因,它似乎并不适用于Search

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-07 21:51:10

最简单的解决方案是使每个类都成为Frame的子类。然后,您可以轻松地在它们之间切换,方法是销毁一个实例并创建另一个实例,或者在启动时创建它们,然后隐藏其中一个,然后显示另一个实例。

代码语言:javascript
运行
复制
import tkinter as tk

class Input(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        label = tk.Label(self, text="I am Input.")
        label.pack(side="top", fill="both", expand=True)

class Search(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        label = tk.Label(self, text="I am Search.")
        label.pack(side="top", fill="both", expand=True)

def inputorsearch():
    if not InputOrSearch:
        searchscreen.pack_forget()
        inputscreen.pack(fill="both", expand=True)
    else:
        inputscreen.pack_forget()
        searchscreen.pack(fill="both", expand=True)


gui = tk.Tk()
inputscreen = Input(gui)
searchscreen = Search(gui)

InputOrSearch = True
inputorsearch()

gui.mainloop()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63309243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档