Using Tkinter Designer with a class
Tkinter is what most students reach for when a Python task says "and it needs an interface" — it ships with Python, so there is nothing to install and nothing for a network manager to approve. The awkward part has never been tkinter. It is that a class of thirty needs thirty accounts, and school email addresses are exactly the thing you do not want to be handing to a website.
Class codes remove that. You create a class, read out a six-character code, and your students are building within a minute. They do not create accounts, they do not give an email address, and they are not asked for their names.
Setting it up
- Create a class. You need a free account — sign in, then open Your classes from the account menu in the designer, or go straight to /classes. Give the class a name you will recognise later, like "Year 12 Tuesday".
- Give out the code. Six characters, shown large enough to read from the back of a room. It deliberately never contains I, L, O or U, so nothing gets mistaken for a 1 or a 0 — and if a student types O for zero anyway, it still works.
- Students go to visualtkinter.com/join — or click "Join a class" on the homepage — and type the code. That is the whole process.
What it collects about your students
Nothing that identifies them, and this is deliberate rather than incidental. There is no account, no email address, no password and no name field. The join form asks for a seat name, it is optional, and the example it shows is "Seat 12" — because that is a perfectly good answer and the form should say so.
A student is a seat in your class, not a user of this site. What is stored against that seat is the work they build and nothing else. If you want students identifiable to you, label the seats yourself — "Seat 12" on the machine, or a first name if your school is comfortable with that. That is your call to make, not a requirement of the tool.
Deleting your account deletes the classes, the seats and everything in them. There is no student record left behind to ask about, because there was never a student record.
What you can and cannot see
Your class page shows a roster: each seat, how many designs it has, and when it was last used. You can see that a student has built three things at any time.
You cannot open their work until they hand it in. Handing in is a button the student presses, and they can take it back, which genuinely removes your access rather than leaving a link working. Seeing that a child has work and reading that work are different things, and a tool used by minors should not treat them as the same.
If you need to see everything — for assessment, say — ask the class to hand in at the end of the lesson. That is a normal instruction and it takes them one click.
Between lessons
A seat lasts the school year and renews every time it is used, so students come back next week to the same seat and the same work. That assumes each student signs in to the machine with their own account, which is normal in schools; if your machines use a shared login, students on the same computer will share a seat.
Closing a class stops new students joining without disturbing anyone already in — useful once everyone has joined, because a code written on a whiteboard has a way of travelling. Existing students keep working and keep their designs.
What the students actually do
The same thing everyone else does: drag widgets onto a window, arrange them, and watch the
Python appear beside the canvas. They can copy it, download main.py, and run it
with python main.py on anything with Python installed. Nothing they build depends
on this site — it is ordinary tkinter code, which is the point.
If you would rather they started from something working, the templates open as editable designs: a login form, a calculator, a student registration form, a contact book with a table, and a two-window app.
Cost
None. There is no paid tier, no advertising and nothing to buy. It is free because it was built for a class and it costs almost nothing to run.