Python Tkinter как сделать прокрутку текстового поля - PullRequest
0 голосов
/ 21 марта 2019

Я написал следующий код для быстрого получения и отображения информации из Википедии.Это прекрасно работает, если в вики-сводке содержится больше информации, чем может отображать окно.Я думал, что добавление sticky = N + S + E + W исправит это, но, похоже, ничего не делает.Как я могу обновить этот код, чтобы он прокручивался, если в текстовом поле слишком много информации для одновременного отображения?

введите код здесь

import sys
from tkinter import *
import wikipedia

def search_wiki():
    txt = text.get()           # Get what the user entered into the box
    txt = wikipedia.page(txt)  # Search Wikipedia for results
    txt = txt.summary          # Store the returned information
    lblText = Label(main, text=txt,justify=LEFT,wraplength=600, fg='black',
                    bg='white', font='times 12 bold').grid(row = 50,
                    column = 1, sticky=N+S+E+W)

main = Tk()
main.title("Search Wikipedia")
main.geometry('750x750')
main.configure(background='ivory3')
text = StringVar()

lblSearch = Label(main, text = 'Search String:').grid(row = 0, column = 0,
                                                      padx = 0, pady = 10)
entSearch = Entry(main, textvariable = text, width = 50).grid(row = 0,
                                                              column = 1)

btn = Button(main, text = 'Search', bg='ivory2', width = 10,
             command = search_wiki).grid(row = 0, column = 10)


main.mainloop()

Ответы [ 3 ]

2 голосов
/ 21 марта 2019

Замените ваш ярлык более подходящим виджетом, таким как

lblText = ScrolledText(main,
                      bg='white',
                      relief=GROOVE,
                      height=600,
                      #width=400,
                      font='TkFixedFont',).grid(row = 50,
                      column = 1, sticky=N+S+E+W)
0 голосов
/ 23 марта 2019

Спасибо за вашу помощь.Я наконец все понял.Вот мой новый код на случай, если кто-нибудь еще столкнется с этим или чем-то подобным.

import sys
from tkinter import *
from tkinter import scrolledtext
from wikipedia import *

def search_wiki():
    txt = text.get()           # Get what the user eneterd into the box
    txt = wikipedia.page(txt)  # Search Wikipedia for results
    txt = txt.summary          # Store the returned information
    global texw
    textw = scrolledtext.ScrolledText(main,width=70,height=30)
    textw.grid(column=1, row=2,sticky=N+S+E+W)
    textw.config(background="light grey", foreground="black",
                 font='times 12 bold', wrap='word')
    textw.insert(END, txt)

main = Tk()
main.title("Search Wikipedia")
main.geometry('750x750')
main.configure(background='ivory3')

text = StringVar()

lblSearch = Label(main, text = 'Search String:').grid(row = 0, column = 0)
entSearch = Entry(main, textvariable = text, width = 50).grid(row = 0,
                                                          column = 1)

btn = Button(main, text = 'Search', bg='ivory2', width = 10,
             command = search_wiki).grid(row = 0, column = 10)

main.mainloop()
0 голосов
/ 22 марта 2019

Если вы хотите отобразить текст с возможностью прокрутки, вы должны использовать виджет Text.Вы не можете прокрутить Label, а прокрутить группу Labels относительно сложно.Виджет Text - лучший выбор для прокручиваемого текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...