python tkinter滚动条不起作用_python – 水平滚动条在Tkinter中不起作用

我想基于tkinter创建一个GUI程序.其中一个小部件是Text.我想在其中添加一个水平滚动条,但它不起作用.

我在哪里弄错了?

from Tkinter import *

import tkFont

class DpWin(object):

def run(self):

root=Tk()

root.geometry('768x612')

title='dp'

root.title(title)

xscrollbar = Scrollbar(root, orient=HORIZONTAL)

xscrollbar.pack(side=BOTTOM, fill=X)

yscrollbar = Scrollbar(root)

yscrollbar.pack(side=RIGHT, fill=Y)

text = Text(root,xscrollcommand=xscrollbar.set,yscrollcommand=yscrollbar.set)

text.pack()

xscrollbar.config(command=text.xview)

yscrollbar.config(command=text.yview)

text.insert(END,'a'*999)

mainloop()

def start(self):

self.b_start.config(state=DISABLED)

self.b_stop.config(state=ACTIVE)

def stop(self):

self.b_stop.config(state=DISABLED)

self.b_start.config(state=ACTIVE)

if __name__=='__main__':

win=DpWin()

win.run()

最佳答案 我已根据

here修改了您的代码.主要有两个不同之处.

>我做了它所以文本框不包装.如果您换行文本,则水平滚动条无法滚动到任何内容.

>我在框架上使用了网格几何管理器来将滚动条和文本小部件保持在一起.使用.grid的好处是你实际上得到的滚动条是正确的宽度/高度(这是你无法用pack实现的).

from Tkinter import *

import tkFont

class DpWin(object):

def run(self):

root=Tk()

root.geometry('768x612')

title='dp'

root.title(title)

f = Frame(root)

f.pack()

xscrollbar = Scrollbar(f, orient=HORIZONTAL)

xscrollbar.grid(row=1, column=0, sticky=N+S+E+W)

yscrollbar = Scrollbar(f)

yscrollbar.grid(row=0, column=1, sticky=N+S+E+W)

text = Text(f, wrap=NONE,

xscrollcommand=xscrollbar.set,

yscrollcommand=yscrollbar.set)

text.grid(row=0, column=0)

xscrollbar.config(command=text.xview)

yscrollbar.config(command=text.yview)

text.insert(END, 'a'*999)

mainloop()

def start(self):

self.b_start.config(state=DISABLED)

self.b_stop.config(state=ACTIVE)

def stop(self):

self.b_stop.config(state=DISABLED)

self.b_start.config(state=ACTIVE)

if __name__=='__main__':

win=DpWin()

win.run()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值