如何制作可选的滚动条?

时间:2015-11-16 19:06:14

标签: python import tkinter scrollbar

以下代码旨在:要求使用导入文本文件,将文件行存储在列表中,然后在标签上显示该列表。我的问题是当用户尝试导入非常长的文本文件时。现在,如果文件是长文件,则不会显示所有文本。我想知道一旦文件长度达到一定长度就会出现滚动条/滚动框架。

import tkinter 
from tkinter import * 
from tkinter.filedialog import askopenfile 
from tkinter.filedialog import askopenfilename

window = tkinter.Tk()

def import_txt():
    global import_list
    file_name = askopenfilename(filetypes=[("Text files","*.txt")]) 
    import_list = []

    with open(file_name, 'r') as f:
        go.pack()
        import_list = f.readlines()
    f.close()

def display():
    global import_list
    display_txt.config(text=str(import_list))
    display_txt.pack()

start = tkinter.Button(window, text="Import", command=import_txt)
start.pack()
go = tkinter.Button(window, text="GO", command=display)
display_txt = tkinter.Label(window)

window.mainloop()
import tkinter 
from tkinter import * 
from tkinter.filedialog import askopenfile 
from tkinter.filedialog import askopenfilename

window = tkinter.Tk()

def import_txt():
    global import_list
    file_name = askopenfilename(filetypes=[("Text files","*.txt")]) 
    import_list = []

    with open(file_name, 'r') as f:
        go.pack()
        import_list = f.readlines()
    f.close()

def display():
    global import_list
    display_txt.config(text=str(import_list))
    display_txt.pack()

start = tkinter.Button(window, text="Import", command=import_txt)
start.pack()
go = tkinter.Button(window, text="GO", command=display)
display_txt = tkinter.Label(window)

window.mainloop()

2 个答案:

答案 0 :(得分:0)

只需使用scrolledtext小部件而不是标签。是否有一些特别的考虑因为这对你不起作用?您可以对其进行配置,以便用户无法修改文本(如果这是问题)。只需使用<RelativeLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"> <Button style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="&lt;&lt;" android:id="@+id/button2" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/TodayDataTextView" android:gravity="center_vertical" android:text="Today Data" android:textAlignment="center" android:textColor="#0000ff" android:background="#00000000" android:textSize="20dp" android:textStyle="bold|italic" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> <Button style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=">>" android:id="@+id/button" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" />

进行配置即可

答案 1 :(得分:0)

我喜欢PurityLakehttps://stackoverflow.com/a/15227842/709998

中的此解决方案

如果您的要求略有不同,我认为您至少可以修改它。