使Tkinter筛选列表框更具动态性

2024-09-21 03:24:57 发布

您现在位置:Python中文网/ 问答频道 /正文

This is the Tkinter window when calling addFilterList(list) 我这样称呼这个函数:

tkWindow = TkWindow()
tkWindow.addFilterList(['A','B','C','D','E','F','G','H','I','J','K','L'])
tkwindow.runwindow()

我有这个TKinker课程。我被困在让这更具活力的方法上。首先,滚动条、按钮和列表框被硬编码到窗口中的特定位置。有没有一种方法可以得到这种格式,不管它出现在Tkinter窗口的什么地方。例如,如果上面有一堆按钮,我希望this特性以这种格式出现,而不必返回代码并更改其行或列的位置。在

第二:按照我设置它的方式,由于返回值的原因,每个TkWindow只能有一个addFilterList。有人能告诉我如何修改代码,以便在一个Tkinter窗口中返回多个Listbox的值。在

^{pr2}$

Tags: the方法代码istkinter格式windowthis
1条回答
网友
1楼 · 发布于 2024-09-21 03:24:57

我不确定我是否理解你的问题,但我会尽力提供一些建议。我认为您试图在函数addFilterList中做太多的事情。因此,您的代码很难阅读和修改。你有三件事要做:

  1. 初始化小部件
  2. 布置小部件
  3. 用值填充小部件

我通常在构造器中做1。所以你的构造器大概是:

def __init__(self):
   self.top = tk.Tk()
   self.entry = tk.Entry(...)
   self.listbox = tk.ListBox(...)

然后我在一个单独的函数中进行布局,称之为doLayout()

^{pr2}$

现在,您的函数addFilterList只需要向列表框中添加一个项目列表。您可以在不更改此功能的情况下更改布局。您可以在不更改此函数的情况下向窗口添加其他窗口小部件。在

如果您想要有多个FilterList,可以考虑将tk.列表框. 这里的函数将设置列表内容、清除列表内容、处理列表选择事件等等。然后,如果您决定要两个列表而不是一个列表,您可以实例化该类的另一个实例并将其添加到窗口中。在

相关问题 更多 >

    热门问题