Форум сайта python.su
0
Здравствуйте, хочу сделать окошко, которое через заданный промежуток времени выводит новую строку из текстового файла. Файл это просто англо-русский словарь. Пытаюсь запрограммировать этот процесс используя цикл, но программа не работает. Дело осложняется тем, что примеры в интернете относятся к старым версиям Питона и толком не помогают. Подскажите, пожалуйста, каким образом проще всего это сделать? У меня версия Питона 3.7.4.
import tkinter as tk
import time
f= open(“Dic.txt”,“r”, encoding=“utf-16”)
content = “test”
root = tk.Tk()
label1 = tk.Label(root, text= content)
label1.pack()
i = 1
while i < 1000:
content = f.readline(i)
time.sleep(1)
i = i + 1
root.update()
root.mainloop()
f.close()
Офлайн
253
Artyom_NГораздо проще сделать без Tk. Будет у вас окошко - консоль и будут выводиться строки.
Подскажите, пожалуйста, каким образом проще всего это сделать?
Офлайн
0
Я действительно не понимаю, как устроены GUI) Но хотел бы разобраться для написания простых программ для себя. Идея с консолью хорошая, но нужно, чтобы окошко висело поверх других всегда, не скрывалось, не уверен что с консолью так получится, да и с Tк разобраться хочу. Тогда попробую спросить по другому. Какую версию Питона (выше 2-ой) легче всего будет изучить? Чтобы было много литературы и примеров? Установив самую свежую версию Питона я столкнулся с тем, что примеры программ созданные несколько лет назад просто не запускаются(( Для новичка это вызывает большие сложности. Сейчас поставил версию 3.5.1, посоветуйте книги под нее, кому не сложно.
Офлайн
4
Вы не учли того, что каждый раз считывая строку из файла нужно обязательно её присвоить тексту в Label
Вот так будет работать
import tkinter as tk import time f= open("c:\\Dic.txt","r") content = "test" root = tk.Tk() label1 = tk.Label(root, text= content) label1.pack() for ln in f: label1["text"]=ln time.sleep(1) root.update() root.mainloop() f.close()
Офлайн
294
Artyom_N гуглите root.after()
[code python][/code]
Офлайн
0
Спасибо за помощь. В итоге нашел программу секундомера и перепилил ее под словарь)) Такой код заработал для Питона 3.5.2, буду улучшать дальше:
from tkinter import *
f= open(“Dic.txt”,“r”, encoding=“utf-8”)
temp = 100
after_id = ‘'
def start_dic():
global temp, after_id
after_id = root.after(120000, start_dic)
content = f.readline(temp)
label1.configure(text = (content))
temp += 1
root = Tk()
root.geometry(’500x90')
root.lift()
root.attributes('-topmost',True)
root.after_idle(root.attributes,'-topmost',True)
label1 = Label(root, font=“Arial 14”, width = 70,
height = 3, anchor=W)
label1.pack()
btn = Button(root, text=“go”, command = start_dic)
btn.pack()
root.mainloop()
f.close()
Офлайн
44
https://ru.wikipedia.org/wiki/BBCode
и вставьте ссылку на его url Офлайн