【问题标题】:Python tk scroll frame?Python tk 滚动框架?
【发布时间】:2011-05-31 21:06:57
【问题描述】:

我正在使用带有 Python 的 Tkinter 创建一个简单的 GUI 应用程序,但是在将滚动条添加到单个帧时遇到问题。该框架在我的 20" 上从上到下可见,但为了在上网本或任何其他低分辨率屏幕上显示所有内容,它需要一个滚动条。这是我认为它如何工作的 sn-p(它适用于列表框) .

framelist = Tkinter.Frame(self.pmaster, relief=FLAT, borderwidth=0)
framelist.pack(fill=BOTH, padx=0, pady=0)
yscroll = Tkinter.Scrollbar(framelist, width=10, orient=VERTICAL)
yscroll.pack(fill=Y,side=RIGHT,padx=0,pady=0)

虽然这显然不适用于框架。对于你们在这个问题上的任何帮助,我们将不胜感激!

我也想知道 Tkinter 是否可能已经过时了。这是我在学校学习的唯一 GUI 界面,但那是几年前的事了,它不再真正满足我的要求了。肯定有更好的选择吗?顺便说一句,我在 Ubuntu 上。

【问题讨论】:

    标签: python scrollbar tkinter frame tk


    【解决方案1】:

    tkinter 的框架小部件不滚动。一种解决方案是将整个框架放在画布中(作为画布对象),并将滚动条附加到画布上。您必须告诉画布可滚动区域有多大,一旦您将所有小部件放入其中,您可以通过获取框架的大小来做到这一点。不过,您可能需要重新考虑您的 UI 设计——无论您使用什么 GUI 工具包,可滚动框架都不是很容易使用。

    至于 Tkinter 是否过时……有人说是,有人说不是。那里有很多 tkinter 错误信息,因此请对所有 tkinter 意见持保留态度(甚至是我的!)。 Tkinter 继续改进,并没有停滞不前。如果您有幸使用 python 2.7 或更高版本,您可以访问 ttk 小部件,这些小部件提供特定于平台的主题和其他小部件,例如笔记本和分层树等。

    对于替代方案,您可能需要查看 wxPython。根据我的经验,它似乎比 tkinter 有更多的错误和怪癖,但有更多的小部件并且似乎更受欢迎。

    我喜欢认为 tkinter 和 wxPython 之间的区别就像 Home Depot(家装/腰部庭院商店)和 Ikea(您自己组装的预制家具)之间的区别 - 一个给您所有零碎的东西制作你想要的任何东西(tkinter),另一个给你很多预先打包的东西。每种方法都有其优点和缺点。

    【讨论】:

    • 感谢您的详尽回复!我将重新考虑 UI 设计,因为在画布内摆弄一个框架似乎是一个混乱的解决方法,而不是一个“真正的”解决方案。我也会看看 wxPython,不过如果它没有提供任何新的和令人兴奋的东西,我可能会在这个项目中坚持使用 Tkinter。
    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多