Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TkTable插入行python_Python_User Interface_Tkinter_Scrollbar_Tk - Fatal编程技术网

TkTable插入行python

TkTable插入行python,python,user-interface,tkinter,scrollbar,tk,Python,User Interface,Tkinter,Scrollbar,Tk,您好,我正在尝试使用Tktable和我在网上找到的包装器创建一个表: 我很难理解如何添加行。我一直在修改文件中包含的示例测试方法,但没有成功 我的最终目标是在GUI中有一个表,然后每次从串行连接读取数据时都写一行。因此,我不知道需要多少行。我可以预先安排一张很大的桌子,但这似乎很慢。我期望读取大量的数据包(可能有成千上万个) 我尝试过insert_rows方法,但我认为我不完全理解它是如何工作的,文档也有点稀疏 而且,我无法让滚动条工作。虽然我可以通过在test.pack方法调用之前添加下面的行

您好,我正在尝试使用Tktable和我在网上找到的包装器创建一个表:

我很难理解如何添加行。我一直在修改文件中包含的示例测试方法,但没有成功

我的最终目标是在GUI中有一个表,然后每次从串行连接读取数据时都写一行。因此,我不知道需要多少行。我可以预先安排一张很大的桌子,但这似乎很慢。我期望读取大量的数据包(可能有成千上万个)

我尝试过insert_rows方法,但我认为我不完全理解它是如何工作的,文档也有点稀疏

而且,我无法让滚动条工作。虽然我可以通过在test.pack方法调用之前添加下面的行来轻松添加它,但它们不会用鼠标滚动。我想装订线断了:

scroll = Tkinter.Scrollbar(root)
test.configure(yscrollcommand=scroll.set)
scroll.pack(side=Tkinter.RIGHT,fill=Tkinter.Y)
任何帮助都将不胜感激。
谢谢。

目前,sample\u test使用配置选项创建一个表 state='disabled'(这就是无法添加更多行的原因)。 尝试在创建时或需要时将其设置为state='normal' 以最适合的方式进行更改

def sample_test():
    from Tkinter import Tk, Scrollbar, Button

    def test_cmd(event):
        print 'command'

    def browsecmd(event):
        print 'browsecmd'
        #print event.__dict__

    root = Tk()
    quit = Button(root, text="QUIT", command=root.destroy)
    quit.pack(side = 'bottom')    

    numrows, numcols = 10, 10

    var = ArrayVar(root)
    for y in range(numrows):
        for x in range(numcols):
            index = "%i,%i" % (y, x)
            var[index] = index

    test = Table(root,
                 rows=numrows+1,
                 cols=numcols+1,
                 state='normal',
                 width=6,
                 height=6,
                 titlerows=1,
                 titlecols=1,
                 roworigin=-1,
                 colorigin=-1,
                 selectmode='extended',
                 selecttype='row',
                 rowstretch='unset',
                 colstretch='last',
                 browsecmd=browsecmd,
                 flashmode='on',
                 variable=var,
                 usecommand=0,
                 command=test_cmd)

    # http://effbot.org/zone/tkinter-scrollbar-patterns.htm
    s = Scrollbar(root, orient='vertical', command=test.yview_scroll)
    test.config(yscrollcommand=s.set)
    s.pack(side='right', fill='y')

    test.pack(expand=1, fill='both')
    test.tag_configure('sel', background = 'yellow')
    test.tag_configure('active', background = 'blue')
    test.tag_configure('title', anchor='w', bg='red', relief='sunken')

    data = ('py','t','h','o','n','','+','','Tk','')

    def add_new_data(*args):
        #test.config(state='normal')
        test.insert_rows('end', 1)
        r = test.index('end').split(',')[0] #get row number <str>
        args = (r,) + args
        idx = r + ',-1'
        test.set('row', idx, *args)
        test.see(idx)
        #test.config(state='disabled')

    root.after(3000, add_new_data, *data)
    root.after(4000, add_new_data, *data)
    root.mainloop()
def sample_test():
从Tkinter导入Tk、滚动条、按钮
def测试命令(事件):
打印“命令”
def browsecmd(事件):
打印“browsecmd”
#打印事件__
root=Tk()
退出=按钮(root,text=“quit”,command=root.destroy)
quit.pack(side='bottom')
numrows,numcols=10,10
var=ArrayVar(根)
对于范围内的y(numrows):
对于范围内的x(numcols):
index=“%i,%i”%(y,x)
var[指数]=指数
测试=表(根,
行数=numrows+1,
cols=numcols+1,
state='normal',
宽度=6,
高度=6,
titlerows=1,
titlecols=1,
roworigin=-1,
着色剂=-1,
选择mode='extended',
选择type='row',
rowstretch='unset',
colstretch='last',
browsecmd=browsecmd,
flashmode='on',
变量=var,
usecommand=0,
命令=测试(cmd)
# http://effbot.org/zone/tkinter-scrollbar-patterns.htm
s=滚动条(根,orient='vertical',command=test.yview\u滚动)
test.config(yscrollcommand=s.set)
s、 包装(侧面为“右侧”,填充为“y”)
test.pack(expand=1,fill='both')
test.tag_configure('sel',background='yellow')
test.tag_configure('active',background='blue')
测试标签配置('title',anchor='w',bg='red',relief='sinken')
数据=(‘py’、‘t’、‘h’、‘o’、‘n’、‘’、‘、‘、‘、‘、‘Tk’、‘)
def添加新数据(*参数):
#test.config(state='normal')
测试。插入_行('end',1)
r=test.index('end')。拆分(',')[0]#获取行号
args=(r,)+args
idx=r+',-1'
test.set('row',idx,*args)
测试。请参阅(idx)
#test.config(state='disabled')
root.after(3000,添加新数据,*数据)
root.after(4000,添加新数据,*数据)
root.mainloop()