解决Tkinter中grid/pack布局中的listbox,scrollbar组合横置

Python 2.7
IDE Pycharm 5.0.3

其实这个不应该写,我认为网上很多关于grid和listbox的操作,但是!大家都抄来抄去!完全没有get到重点啊!一个错误的答案能传和转好多博客,我真是很无语。不知道博主们转之前有没有自己实际测试过,至少我试过。

好啦,其实我想实现的很简单,如下图;
解决Tkinter中grid/pack布局中的listbox,scrollbar组合横置_第1张图片
就是那么简单的一个listbox和scrollbar组合的玩意,当时用的是pack但是布局感觉很蛋疼,之后发现了grid,想着把工程里的pack都改过来,就拿一个listbox做了测试,结果当然是很蛋疼的,我不止一次看到这样的结论:

这里写图片描述
作为新手我当然去改啦,结果。。。。这样
解决Tkinter中grid/pack布局中的listbox,scrollbar组合横置_第2张图片
导演,这和说好的不一样啊,我要的是横过来的啊!!
虽然能通过条子进行左右拽,但是!你们的审美去哪了啊喂!
解决Tkinter中grid/pack布局中的listbox,scrollbar组合横置_第3张图片
而且,百度出来的结果几乎都是这几句话,大哥,你们能靠点谱么,至少我在python2.7,用pack,listbox,tkinter不行!
最后,终于让我找了好人!@purpentkinter-grid布局
这位大哥用的是grid布局,很受用,主要是那个orient='horizontal'才是解决我的实际问题(虽然很low)
解决Tkinter中grid/pack布局中的listbox,scrollbar组合横置_第4张图片


问题得到解决,放上测试代码!

# -*- coding: utf-8 -*-
from tkinter import *
root = Tk()

lb = Listbox(root,exportselection=False,height=3)
list_item=['1', '2', '3', '4这里很长我需要拽过来~~~~~~~~~~~~~~~','5','6','7']
for i in list_item:
    lb.insert(END,i)

scr1 = Scrollbar(root)
lb.configure(yscrollcommand = scr1.set)
scr1['command']=lb.yview
scr1.grid(row=5,column=4)

scr2 = Scrollbar(root,orient='horizontal')
lb.configure(xscrollcommand = scr2.set)
scr2['command']=lb.xview
scr2.grid(row=6,column=5)

scr3 = Scrollbar(root)
lb.configure(yscrollcommand = scr3.set)
scr3['command']=lb.yview
scr3.grid(row=5,column=6)

lb.grid(row=5,column=5)
root.mainloop()

解决Tkinter中grid/pack布局中的listbox,scrollbar组合横置_第5张图片

三个进度条都可以拖拽,满足我的需求。希望对你也有帮助!


最后说上一句,我很讨厌这样的闭塞式交流,简直呵呵,闭门造车吃枣药丸!

解决Tkinter中grid/pack布局中的listbox,scrollbar组合横置_第6张图片
如果你是新浪博客用户,并且登录状态,那么这篇文章很好


so peace out,guys!
  have a good night!

你可能感兴趣的:(Python基础)