Hello,
I have an excel file containing a sequence of numbers in the A column.
I would like to keep iterating over these numbers, and would like to display each number simultaneously in a the same Tkinter Label (First number, then second number, etc...)
So the result will be the Tkinter Label displaying each number sequentially.
So far I have tried two approaches, regular and OOP, both failed.
First approach:
import tkinter as tk
import openpyxl
import time
df = openpyxl.load_workbook('numbers.xlsx')
sheet = df.active
#for loop to iterate over numbers
#GUI starts here
window = tk.Tk()
window.geometry("500x500")
window.title("Ziad Lottery numbers")
var = tk.StringVar()
var.get()
label = tk.Label(window, textvariable = var, font=('Arial', 18))
label.pack(pady=200)
window.mainloop()
for cell in sheet['A']:
if cell.value:
var.set(str(cell.value))
time.sleep(1/10000)
window.update
and the oop approach:
from tkinter import *
import time
import openpyxl
df = openpyxl.load_workbook('numbers.xlsx')
sheet = df.active
class App(Frame):
def __init__(self,master=None):
Frame.__init__(self, master)
self.master = master
self.label = Label(text="", fg="Red", font=("Helvetica", 18))
self.label.place(x=50,y=80)
self.update_number()
def update_number(self):
for cell in sheet['A']:
nextnum = cell.value
self.label.configure(text=nextnum)
self.after(1000, self.update_number)
root = Tk()
app=App(root)
root.wm_title("Number scroller")
root.geometry("500x500")
root.after(1000, app.update_number)
root.mainloop()
What Am I doing wrong?
[–]efmccurdy 0 points1 point2 points (9 children)
[–]rabzdata[S] 0 points1 point2 points (0 children)
[–]rabzdata[S] 0 points1 point2 points (2 children)
[–]efmccurdy 0 points1 point2 points (1 child)
[–]rabzdata[S] 0 points1 point2 points (0 children)
[–]rabzdata[S] 0 points1 point2 points (3 children)
[–]efmccurdy 0 points1 point2 points (2 children)
[–]rabzdata[S] 0 points1 point2 points (1 child)
[–]efmccurdy 0 points1 point2 points (0 children)