tkinter输出窗口中的垂直滚动条(使用网格)

时间:2017-11-23 06:19:06

标签: python-3.x tkinter

我想使用tkinter窗口在我的数据库中显示数据,但由于我的数据库有超过400个元组,因此它不会显示在屏幕上,如output screenshot所示。

如何向窗口添加滚动条?

我已经看过一些使用Canvas和Frame的例子,但我不熟悉它们,因为这是我的第一个tk程序。 我的代码如下:

def displayPlayer(data):

            Label1 = Label(master, text="First Name", width=20)
            Label1.grid(row=0, column=0)
            Label2 = Label(master, text="Last Name", width=20)
            Label2.grid(row=0, column=1)
            Label3 = Label(master, text="Nationality", width=20)
            Label3.grid(row=0, column=2)
            Label4 = Label(master, text="Club", width=20)
            Label4.grid(row=0, column=3)
            Label5 = Label(master, text="Age", width=10)
            Label5.grid(row=0, column=4)
            Label6 = Label(master, text="Years at Club", width=10)
            Label6.grid(row=0, column=5)
            Label7 = Label(master, text="Agent", width=20)
            Label7.grid(row=0, column=6)
            Label8 = Label(master, text="Rating", width=10)
            Label8.grid(row=0, column=7)
            Label9 = Label(master, text="Position", width=10)
            Label9.grid(row=0, column=8)


            for index, dat in enumerate(data):
                    Label(master, text=dat[0]).grid(row=index+1, column=0)
                    Label(master, text=dat[1]).grid(row=index+1, column=1)
                    Label(master, text=dat[2]).grid(row=index+1, column=2)
                    Label(master, text=dat[3]).grid(row=index+1, column=3)
                    Label(master, text=dat[4]).grid(row=index+1, column=4)
                    Label(master, text=dat[5]).grid(row=index+1, column=5)
                    Label(master, text=dat[6]).grid(row=index+1, column=6)
                    Label(master, text=dat[7]).grid(row=index+1, column=7)
                    Label(master, text=dat[8]).grid(row=index+1, column=8)




        def allPlayer():
            cursor.execute("SELECT * from Players")
            data=cursor.fetchall()
            displayPlayer(data)

1 个答案:

答案 0 :(得分:0)

您必须使用var tooltip = '<div class="tooltipevent p-r-10 p-l-10 p-t-10 ' + event.className + '"> + event.description + '</div>'; var $tooltip = $(tooltip).appendTo('body'); $(this).mouseover(function (e) { $(this).css('z-index', 10000); $tooltip.fadeIn('500'); }).mousemove(function (e) { $tooltip.css('top', e.pageY + 20); $tooltip.css('left', e.pageX - 125); }); Frame进行滚动。

我有简单的类Canvas,我可以在代码中多次使用它。我还有其他问题,您可以找到其他ScrolledFrame更多选项,而且您不必创建自己的选项。

我更改了您的ScrolledFrame以缩短版本并使用不同的displayPlayer

我使用masterrandom生成一些随机数据显示在表格中。

string

Linux上的结果

enter image description here

编辑:我更改了几行,以便在更改窗口大小时正确调整大小。