pythontk中text设滚动条_Tkinter中的滚动条在文本widg中

本文档描述了在Tkinter GUI中,尝试在文本小部件内部添加垂直滚动条时遇到的问题。作者提供了代码示例,展示了如何创建带有滚动条的文本框,但遇到了滚动条位置不正确的问题。滚动条出现在窗口而非文本框内。同时,作者提到了使用pack方法会导致文本小部件填充整个窗口。寻求解决方案。
摘要由CSDN通过智能技术生成

我在Tkinter的文本小部件内的滚动条中设置有问题。我知道,最好使用网格来定位小部件,但我希望将小部件设置在具有指定高度和宽度的绝对位置(图形用户界面图片上的x,y-红点)。

我的代码:from Tkinter import *

from ttk import *

class NotebookDemo(Frame):

def __init__(self):

Frame.__init__(self)

self.pack(expand=1, fill=BOTH)

self.master.title('Sample')

self.master.geometry("650x550+100+50")

self._initUI()

def _initUI(self):

self._createPanel()

def _createPanel(self):

# create frame inside top level frame

panel = Frame(self)

panel.pack(side=TOP, fill=BOTH, expand=1)

# create the notebook

nb = Notebook(panel)

nb.pack(fill=BOTH, expand=1, padx=2, pady=3)

self._FirstTab(nb)

def _FirstTab(self, nb):

# frame to hold content

frame = Frame(nb)

#textbox

txtOutput = Text(frame, wrap = NONE, height = 17, width = 70)

txtOutput.place(x=10, y=75)

#button

btnStart = Button(frame, text = 'Start', underline=0)

btnStart.place(x=220, y=380)

#scrollbar

#vscroll = Scrollbar(frame, orient=VERTICAL, command=txtOutput.yview)

#txtOutput['yscroll'] = vscroll.set

#vscroll.pack(side=RIGHT, fill=Y)

#txtOutput.pack(fill=BOTH, expand=Y)

#add to notebook (underline = index for short-cut character)

nb.add(frame, text='TAB 1', underline=0, padding=2)

if __name__ == '__main__':

app = NotebookDemo()

app.mainloop()

如果我取消注释这部分代码(设置滚动条):vscroll = Scrollbar(frame, orient=VERTICAL, command=txtOutput.yview)

txtOutput['yscroll'] = vscroll.set

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

我的滚动条位于所有窗口内,而不是文本框内:

但我当然希望在文本框小部件(黑色边框)内有滚动条。

如果我对文本框使用pack函数:txtOutput.pack(fill=BOTH, expand=Y)

文本小部件填充整个窗口…:

我真的不知道怎么解决这个问题。

任何帮助都将不胜感激。

谢谢您!

编辑:

当然,我也可以使用带有滚动条的place方法,但是我不能更改它们的长度,因为它没有属性length。vscroll.place(x=573, y=75)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值