poojaraj's Profile

971
Points

Questions
239

Answers
246

  • Asked on April 17, 2019 in tkinter.
    import Tkinter as tk
    
    class FullScreenApp(object):
        def __init__(self, master, **kwargs):
            self.master=master
            pad=3
            self._geom='200x200+0+0'
            master.geometry("{0}x{1}+0+0".format(
                master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
            master.bind('<Escape>',self.toggle_geom)            
        def toggle_geom(self,event):
            geom=self.master.winfo_geometry()
            print(geom,self._geom)
            self.master.geometry(self._geom)
            self._geom=geom
    
    root=tk.Tk()
    app=FullScreenApp(root)
    root.mainloop()
    • 1157 views
    • 5 answers
    • 0 votes
  • Asked on April 17, 2019 in tkinter.
    >>> import Tkinter
    >>> root = Tkinter.Tk()
    >>> root.overrideredirect(True)
    >>> root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
    • 1157 views
    • 5 answers
    • 0 votes
  • Asked on April 17, 2019 in tkinter.

    When you’re creating it, it takes a variable keyword argument. Pass it an IntVar from Tkinter. Checking or unchecking the box will set that value contained by var to the corresponding boolean state. This can be accessed as var.get():

    checked => var.get()

    • 1280 views
    • 3 answers
    • 0 votes
  • from Tkinter import *
    
    class App():
      def __init__(self, master):
        frame = Frame(master)
        frame.pack()
    
        master.title("Just my example")
        self.label = Label(frame, text="Type very long text:")
    
        self.entry = Entry(frame)
    
        self.button = Button(frame,
                             text="Quit", fg="red", width=20,
                             command=frame.quit)
    
    
        self.slogan = Button(frame,
                             text="Hello", width=20,
                             command=self.write_slogan)
    
        self.label.grid(row=0, column=0)
        self.entry.grid(row=0, column=1)
        self.slogan.grid(row=1, column=0)
        self.button.grid(row=1, column=1)
    
      def write_slogan(self):
        print "Tkinter is easy to use!"
    
    root = Tk()
    app = App(root)
    root.mainloop()
    • 513 views
    • 3 answers
    • 0 votes
  • Asked on April 17, 2019 in tkinter.

    It’s simply that in Python 3 it’s “tkinter” and in Python 2 it’s “Tkinter” case in point:

    #python 2
    from Tkinter import *
    
    #python 3
    from tkinter import *

    To make program run both on Python 2 and Python 3 you can use:

    try:
        import tkinter as tk
    except:
        import Tkinter as tk
    • 655 views
    • 4 answers
    • 0 votes
  • This is exploited using a substitutionFlag and a Widget.after_idle()after_idle() executes the lambda-function at the end of the event queue:

    class ValidatedEntry(Entry):
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
    
            self.tclValidate = (self.register(self.validate), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')
            # attach the registered validation function to this spinbox
            self.config(validate = "all", validatecommand = self.tclValidate)
    
        def validate(self, type, index, result, prior, indelText, currentValidationMode, reason, widgetName):
    
            if typeOfAction == "0":
                # set a flag that can be checked by the insertion validation for being part of the substitution
                self.substitutionFlag = True
                # store desired data
                self.priorBeforeDeletion = prior
                self.indexBeforeDeletion = index
                # reset the flag after idle
                self.after_idle(lambda: setattr(self, "substitutionFlag", False))
    
                # normal deletion validation
                pass
    
            elif typeOfAction == "1":
    
                # if this is a substitution, everything is shifted left by a deletion, so undo this by using the previous prior
                if self.substitutionFlag:
                    # restore desired data to what it was during validation of the deletion
                    prior = self.priorBeforeDeletion
                    index = self.indexBeforeDeletion
    
                    # optional (often not required) additional behavior upon substitution
                    pass
    
                else:
                    # normal insertion validation
                    pass
    
            return True
    • 1512 views
    • 4 answers
    • 0 votes
  • Asked on April 17, 2019 in tkinter.
    from Tkinter import *
    
    root = Tk()
    w = Label(root, text="Hello, world!")
    w.pack()
    root.mainloop()

    The shell reports this error:

    Traceback (most recent call last):
    File "<pyshell#9>", line 1, in <module>
    from Tkinter import *
    ImportError: No module named Tkinter
    • 411 views
    • 4 answers
    • 0 votes
  • On recent Python (> 2.7) versions, you can use the ttkmodule, which provides access to the Tk themed widgetset, which has been introduced in Tk 8.5.

    Here’s how you import ttk in Python 2:

    import ttk
    
    help(ttk.Notebook)

    In Python 3, the ttk module comes with the standard distributions as a submodule of tkinter.

    Here’s a simple working example based on an example from the TkDocs website:

    from tkinter import ttk
    import tkinter as tk
    from tkinter.scrolledtext import ScrolledText
    
    
    def demo():
        root = tk.Tk()
        root.title("ttk.Notebook")
    
        nb = ttk.Notebook(root)
    
        # adding Frames as pages for the ttk.Notebook 
        # first page, which would get widgets gridded into it
        page1 = ttk.Frame(nb)
    
        # second page
        page2 = ttk.Frame(nb)
        text = ScrolledText(page2)
        text.pack(expand=1, fill="both")
    
        nb.add(page1, text='One')
        nb.add(page2, text='Two')
    
        nb.pack(expand=1, fill="both")
    
        root.mainloop()
    
    if __name__ == "__main__":
        demo()

    Another alternative is to use the NoteBook widget from the tkinter.tix library. To use tkinter.tix, you must have the Tix widgets installed, usually alongside your installation of the Tk widgets. To test your installation, try the following:

    from tkinter import tix
    root = tix.Tk()
    root.tk.eval('package require Tix')
    • 816 views
    • 6 answers
    • 0 votes
  • alternative is to use the NoteBook widget from the tkinter.tix library. To use tkinter.tix, you must have the Tix widgets installed, usually alongside your installation of the Tk widgets. To test your installation, try the following:

    from tkinter import tix
    root = tix.Tk()
    root.tk.eval('package require Tix')
    • 816 views
    • 6 answers
    • 0 votes
  • Asked on April 17, 2019 in tkinter.
    # import openpyxl and tkinter modules
    from openpyxl import *
    from tkinter import *
     
    # globally declare wb and sheet variable
     
    # opening the existing excel file
    wb = load_workbook('C:\\Users\\Admin\\Desktop\\excel.xlsx')
     
    # create the sheet object
    sheet = wb.active
     
     
    def excel():
         
        # resize the width of columns in
        # excel spreadsheet
        sheet.column_dimensions['A'].width = 30
        sheet.column_dimensions['B'].width = 10
        sheet.column_dimensions['C'].width = 10
        sheet.column_dimensions['D'].width = 20
        sheet.column_dimensions['E'].width = 20
        sheet.column_dimensions['F'].width = 40
        sheet.column_dimensions['G'].width = 50
     
        # write given data to an excel spreadsheet
        # at particular location
        sheet.cell(row=1, column=1).value = "Name"
        sheet.cell(row=1, column=2).value = "Course"
        sheet.cell(row=1, column=3).value = "Semester"
        sheet.cell(row=1, column=4).value = "Form Number"
        sheet.cell(row=1, column=5).value = "Contact Nmber"
        sheet.cell(row=1, column=6).value = "Email id"
        sheet.cell(row=1, column=7).value = "Address"
     
     
    # Function to set focus (cursor)
    def focus1(event):
        # set focus on the course_field box
        course_field.focus_set()
     
     
    # Function to set focus
    def focus2(event):
        # set focus on the sem_field box
        sem_field.focus_set()
     
     
    # Function to set focus
    def focus3(event):
        # set focus on the form_no_field box
        form_no_field.focus_set()
     
     
    # Function to set focus
    def focus4(event):
        # set focus on the contact_no_field box
        contact_no_field.focus_set()
     
     
    # Function to set focus
    def focus5(event):
        # set focus on the email_id_field box
        email_id_field.focus_set()
     
     
    # Function to set focus
    def focus6(event):
        # set focus on the address_field box
        address_field.focus_set()
     
     
    # Function for clearing the
    # contents of text entry boxes
    def clear():
         
        # clear the content of text entry box
        name_field.delete(0, END)
        course_field.delete(0, END)
        sem_field.delete(0, END)
        form_no_field.delete(0, END)
        contact_no_field.delete(0, END)
        email_id_field.delete(0, END)
        address_field.delete(0, END)
     
     
    # Function to take data from GUI 
    # window and write to an excel file
    def insert():
         
        # if user not fill any entry
        # then print "empty input"
        if (name_field.get() == "" and
            course_field.get() == "" and
            sem_field.get() == "" and
            form_no_field.get() == "" and
            contact_no_field.get() == "" and
            email_id_field.get() == "" and
            address_field.get() == ""):
                 
            print("empty input")
     
        else:
     
            # assigning the max row and max column
            # value upto which data is written
            # in an excel sheet to the variable
            current_row = sheet.max_row
            current_column = sheet.max_column
     
            # get method returns current text
            # as string which we write into
            # excel spreadsheet at particular location
            sheet.cell(row=current_row + 1, column=1).value = name_field.get()
            sheet.cell(row=current_row + 1, column=2).value = course_field.get()
            sheet.cell(row=current_row + 1, column=3).value = sem_field.get()
            sheet.cell(row=current_row + 1, column=4).value = form_no_field.get()
            sheet.cell(row=current_row + 1, column=5).value = contact_no_field.get()
            sheet.cell(row=current_row + 1, column=6).value = email_id_field.get()
            sheet.cell(row=current_row + 1, column=7).value = address_field.get()
     
            # save the file
            wb.save('C:\\Users\\Admin\\Desktop\\excel.xlsx')
     
            # set focus on the name_field box
            name_field.focus_set()
     
            # call the clear() function
            clear()
     
     
    # Driver code
    if __name__ == "__main__":
         
        # create a GUI window
        root = Tk()
     
        # set the background colour of GUI window
        root.configure(background='light green')
     
        # set the title of GUI window
        root.title("registration form")
     
        # set the configuration of GUI window
        root.geometry("500x300")
     
        excel()
     
        # create a Form label
        heading = Label(root, text="Form", bg="light green")
     
        # create a Name label
        name = Label(root, text="Name", bg="light green")
     
        # create a Course label
        course = Label(root, text="Course", bg="light green")
     
        # create a Semester label
        sem = Label(root, text="Semester", bg="light green")
     
        # create a Form No. lable
        form_no = Label(root, text="Form No.", bg="light green")
     
        # create a Contact No. label
        contact_no = Label(root, text="Contact No.", bg="light green")
     
        # create a Email id label
        email_id = Label(root, text="Email id", bg="light green")
     
        # create a address label
        address = Label(root, text="Address", bg="light green")
     
        # grid method is used for placing
        # the widgets at respective positions
        # in table like structure .
        heading.grid(row=0, column=1)
        name.grid(row=1, column=0)
        course.grid(row=2, column=0)
        sem.grid(row=3, column=0)
        form_no.grid(row=4, column=0)
        contact_no.grid(row=5, column=0)
        email_id.grid(row=6, column=0)
        address.grid(row=7, column=0)
     
        # create a text entry box
        # for typing the information
        name_field = Entry(root)
        course_field = Entry(root)
        sem_field = Entry(root)
        form_no_field = Entry(root)
        contact_no_field = Entry(root)
        email_id_field = Entry(root)
        address_field = Entry(root)
     
        # bind method of widget is used for
        # the binding the function with the events
     
        # whenever the enter key is pressed
        # then call the focus1 function
        name_field.bind("<Return>", focus1)
     
        # whenever the enter key is pressed
        # then call the focus2 function
        course_field.bind("<Return>", focus2)
     
        # whenever the enter key is pressed
        # then call the focus3 function
        sem_field.bind("<Return>", focus3)
     
        # whenever the enter key is pressed
        # then call the focus4 function
        form_no_field.bind("<Return>", focus4)
     
        # whenever the enter key is pressed
        # then call the focus5 function
        contact_no_field.bind("<Return>", focus5)
     
        # whenever the enter key is pressed
        # then call the focus6 function
        email_id_field.bind("<Return>", focus6)
     
        # grid method is used for placing
        # the widgets at respective positions
        # in table like structure .
        name_field.grid(row=1, column=1, ipadx="100")
        course_field.grid(row=2, column=1, ipadx="100")
        sem_field.grid(row=3, column=1, ipadx="100")
        form_no_field.grid(row=4, column=1, ipadx="100")
        contact_no_field.grid(row=5, column=1, ipadx="100")
        email_id_field.grid(row=6, column=1, ipadx="100")
        address_field.grid(row=7, column=1, ipadx="100")
     
        # call excel function
        excel()
     
        # create a Submit Button and place into the root window
        submit = Button(root, text="Submit", fg="Black",
                                bg="Red", command=insert)
        submit.grid(row=8, column=1)
     
        # start the GUI
        root.mainloop()

    Output :

    • 496 views
    • 3 answers
    • 0 votes