[Tutor] thinter: can't figure out how to update a window instead of creating a new on

Chris Roy-Smith chris_roysmith at internode.on.net
Sat Jan 27 21:58:30 EST 2018


Hi,

system: Python 3.6, LInux

I have been playing around with the following code which I want to 
update the window, but I creates a new window (with the correct 
display), but I have not been able to find the solution. Perhaps I'm 
using the wrong key words in my searches.

Thank you for any assistance, I'm hoping to learn something from this 
experience

Regards, Chris Roy-Smith

#!/usr/bin/python3

import mysql.connector
from tkinter import *
import pickle
master = Tk()

def getCfg():
     fobj = open('members.pkl', 'rb')
     cfg = pickle.load(fobj)
     fobj.close()
     return cfg


def editmember(page=1):
     form=Toplevel(master)
     form.title('test form')
     cfg=getCfg()
     QrySelectMembers='select ident, concat_ws(" " ,`given`, `surname`) 
as `fullname` from `details` where 1 order by `surname` asc, `given` asc 
limit '+str(page)+', 10'
     db=mysql.connector.connect(user = cfg['user'], password = 
cfg['password'], database = cfg['database'])
     cursor=db.cursor()
     cursor.execute(QrySelectMembers) #,(page))
     MemberList=list(cursor)
     cursor.close()
     db.close
     ro=0
     for Member in MemberList:
         ident=Member[0]
         msg='edit '+Member[1]
         Button(form, text=msg, command= lambda tmp=ident : 
EdForm(tmp)).grid(sticky=(W, E), row=ro, column=0)
         ro+=1
     Button(form, text='exit', command=form.destroy).grid(row=ro+1, 
column=2)
     Button(form, text='next 10', command= lambda p=page+10 : 
editmember(p)).grid(row=ro, column=1)
     Button(form, text="previous 10", command= lambda p=page-10 : 
editmember(p)).grid(row=ro, column=0)


Button(master, text='click to test', command=editmember).grid(row=0, 
column=0)
Button(master, text='quit', command=master.destroy).grid(row=1, column=0)
master.mainloop()



More information about the Tutor mailing list