Python Forum

Full Version: Tkinter
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello i am a recently new programmer. An A-Level student who is having problems with using tkinter. Im using Python 3.74 which already has tkinter built in . But not sure how to use it that well. Im trying to do beginner projects like making a GUI with a login and register system, yes i know im a noob. just looking for any advice or tips.
What sort of problems are you having?
Paste the code that is giving problems in code tags and any errors in error tags.
(Oct-10-2019, 08:11 PM)Yoriz Wrote: [ -> ]What sort of problems are you having?
Paste the code that is giving problems in code tags and any errors in error tags.

from tkinter import *

def main_screen():
    screen = Tk()
    screen.geometry("300x250")
    screen.title("Notes 1.0")
    Label(text = "Notes 1.0", bg = "grey", font = ("Arial", 13)).pack()
    Button(text = "Login").pack()
    Label(text = "").pack()
    Button(text = "Register").pack()

mainscreen.mainloop()


main_screen()

(Oct-10-2019, 08:11 PM)Yoriz Wrote: [ -> ]What sort of problems are you having? Paste the code that is giving problems in code tags and any errors in error tags.


The error code is;
Error:
File "/Users/masonarbon/Desktop/Mason Arbon Python/School work/GUI Login.py", line 12, in <module> mainscreen.mainloop() NameError: name 'mainscreen' is not defined
Change
def main_screen():
    screen = Tk()
    ...
    Button(text = "Register").pack()
 
mainscreen.mainloop()
to
def main_screen():
    screen = Tk()
    ...
    Button(text = "Register").pack()
 
    screen.mainloop()
(Oct-10-2019, 10:52 PM)Yoriz Wrote: [ -> ]Change
def main_screen(): screen = Tk() ... Button(text = "Register").pack() mainscreen.mainloop()
to
def main_screen(): screen = Tk() ... Button(text = "Register").pack() screen.mainloop()
It says that the name 'screen' is not defined
did you indent screen.mainloop() to be part of main_screen()?
from tkinter import *
 
def main_screen():    
    screen.geometry("300x250")
    screen.title("Notes 1.0")
    Label(text = "Notes 1.0", bg = "grey", font = ("Arial", 13)).pack()
    Button(text = "Login").pack()
    Label(text = "").pack()
    Button(text = "Register").pack()
 
if __name__ == '__main__':
    screen= Tk()
    main_screen()
    screen.mainloop()
or
from tkinter import *
 
def main_screen():
    screen= Tk()
    screen.geometry("300x250")
    screen.title("Notes 1.0")
    Label(text = "Notes 1.0", bg = "grey", font = ("Arial", 13)).pack()
    Button(text = "Login").pack()
    Label(text = "").pack()
    Button(text = "Register").pack()
    screen.mainloop()
 
if __name__ == '__main__':    
    main_screen()
are the same output also create a frame to contain the widgets
(Oct-11-2019, 03:12 PM)joe_momma Wrote: [ -> ]
 from tkinter import * def main_screen(): screen.geometry("300x250") screen.title("Notes 1.0") Label(text = "Notes 1.0", bg = "grey", font = ("Arial", 13)).pack() Button(text = "Login").pack() Label(text = "").pack() Button(text = "Register").pack() if __name__ == '__main__': screen= Tk() main_screen() screen.mainloop() 
or
 from tkinter import * def main_screen(): screen= Tk() screen.geometry("300x250") screen.title("Notes 1.0") Label(text = "Notes 1.0", bg = "grey", font = ("Arial", 13)).pack() Button(text = "Login").pack() Label(text = "").pack() Button(text = "Register").pack() screen.mainloop() if __name__ == '__main__': main_screen() 
are the same output also create a frame to contain the widgets
Thanks al, i now have it working!