我正在使用Tkinter和Python创建一个简单的GUI应用程序,但是我在向单个框架添加滚动条时遇到了问题.框架在我的20英寸上从上到下可见,但是为了在上网本或任何其他低分辨率屏幕上显示所有内容,它需要一个滚动条.这是我认为它将如何工作的片段(它与列表框一起).
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顺便说一下.
解决方法:
tkinter的框架小部件不会滚动.一种解决方案是将整个框架放在画布中(作为画布对象),并将滚动条附加到画布上.你必须告诉画布可滚动区域有多大,你可以通过在放置所有小部件后获得框架的大小来做到这一点.但是,您可能想重新考虑您的UI设计 – 无论您使用哪种GUI工具包,可滚动框架都不是很容易使用.
至于Tkinter是否过时……有人说是,有些人说不.那里有很多tkinter错误的信息,所以拿出所有的tkinter意见(即使是我的!). Tkinter继续改进,它并没有停滞不前.如果您可以使用python 2.7或更高版本,则可以访问ttk小部件,这些小部件提供特定于平台的主题和其他小部件,例如笔记本和分层树等.
对于替代方案,您可能需要查看wxPython.根据我的经验,它似乎比tkinter有更多的错误和怪癖,但有更多的小部件,似乎更受欢迎.
我觉得tkinter和wxPython之间的区别就像Home Depot(一个家居装修/腰部商店)和Ikea(你自己组装的预制家具)之间的区别 – 一个给你所有的点点滴滴任何你想要的东西(tkinter)另一个给你很多预包装的东西.每种方法都有其优点和缺点.