简体   繁体   中英

Using Tkinter function but unable to see any drop-down menus

I am facing an issue with Tkinter function where there is no drop-down menu displayed (Blank) after running the code. I have attached an image of the output at the bottom.

Also, I would like to convert the values of the 12 outputs into integer values for subsequent processing. I would greatly appreciate any form of help or any advice if this is a code error.

import tkinter as tk
from tkinter import *
from tkinter import ttk

[enter image description here][1]
class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry("800x400")
        self.title('ABC')
        for r in range(13):
            self.rowconfigure(r, weight=1)
        for c in range(20):
            self.columnconfigure(c, weight=1)
        self.testFrame1 = TestFrame()
        self.testFrame1.grid(row=0, column=0, rowspan=3, columnspan=3, sticky='nsew')
    

class TestFrame(tk.Frame):
    def _init_(self):
        super()._init_()
        self.dimension = ('106','108','110','112','114','126','128','130',
                          '132','132','134','136','138','140','146','148','150',
                          '152','154','360','380','400','420','440','500','520','540','560',
                          '580','600','780','800','820')
        
        self.option_var = tk.IntVar(self)
        self.option_var1 = tk.IntVar(self)
        self.option_var2 = tk.IntVar(self)
        self.option_var3 = tk.IntVar(self)
        self.option_var4 = tk.IntVar(self)
        self.option_var5 = tk.IntVar(self)
        self.option_var6 = tk.IntVar(self)
        self.option_var7 = tk.IntVar(self)
        self.option_var8 = tk.IntVar(self)
        self.option_var9 = tk.IntVar(self)
        self.option_var10 = tk.IntVar(self)
        self.option_var11 = tk.IntVar(self)
        
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for ODD_X1:').grid(column=0, row=0, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed)
        option_menu.grid(column=1, row=0, sticky=tk.W, **paddings)
        self.output_label=ttk.Label(self, foreground='red')
        self.output_label.grid(column=0, row=1, sticky=tk.W, **paddings)
        
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for ODD_Y1:').grid(column=3, row=0, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var1,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed1)
        option_menu.grid(column=4, row=0, sticky=tk.W, **paddings)
        self.output_label1=ttk.Label(self, foreground='red')
        self.output_label1.grid(column=3, row=1, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for ODD_X2:').grid(column=0, row=3, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var2,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed2)
        option_menu.grid(column=1, row=3, sticky=tk.W, **paddings)
        self.output_label2=ttk.Label(self, foreground='red')
        self.output_label2.grid(column=0, row=4, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for ODD_Y2:').grid(column=3, row=3, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var3,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed3)
        option_menu.grid(column=4, row=3, sticky=tk.W, **paddings)
        self.output_label3=ttk.Label(self, foreground='red')
        self.output_label3.grid(column=3, row=4, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for AOP_X1:').grid(column=0, row=6, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var4,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed4)
        option_menu.grid(column=1, row=6, sticky=tk.W, **paddings)
        self.output_label4=ttk.Label(self, foreground='red')
        self.output_label4.grid(column=0, row=7, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for BOP_Y1:').grid(column=3, row=6, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var5,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed5)
        option_menu.grid(column=4, row=6, sticky=tk.W, **paddings)
        self.output_label5=ttk.Label(self, foreground='red')
        self.output_label5.grid(column=3, row=7, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for COP_X2:').grid(column=0, row=9, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var6,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed6)
        option_menu.grid(column=1, row=9, sticky=tk.W, **paddings)
        self.output_label6=ttk.Label(self, foreground='red')
        self.output_label6.grid(column=0, row=10, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for DOP_Y2:').grid(column=3, row=9, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var7,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed7)
        option_menu.grid(column=4, row=9, sticky=tk.W, **paddings)
        self.output_label7=ttk.Label(self, foreground='red')
        self.output_label7.grid(column=3, row=10, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for PMR_X1:').grid(column=6, row=0, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var8,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed8)
        option_menu.grid(column=7, row=0, sticky=tk.W, **paddings)
        self.output_label8=ttk.Label(self, foreground='red')
        self.output_label8.grid(column=6, row=1, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for IMR_Y1:').grid(column=9, row=0, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var9,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed9)
        option_menu.grid(column=10, row=0, sticky=tk.W, **paddings)
        self.output_label9=ttk.Label(self, foreground='red')
        self.output_label9.grid(column=9, row=1, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for QMR_X2:').grid(column=6, row=3, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var10,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed10)
        option_menu.grid(column=7, row=3, sticky=tk.W, **paddings)
        self.output_label10=ttk.Label(self, foreground='red')
        self.output_label10.grid(column=6, row=4, sticky=tk.W, **paddings)
    
        paddings = {'padx':5, 'pady':5}
        label =ttk.Label(self, text='Select the dimension for FMR_Y2:').grid(column=9, row=3, sticky=tk.W, **paddings)
        option_menu =ttk.OptionMenu(
            self,
            self.option_var11,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed11)
        option_menu.grid(column=10, row=3, sticky=tk.W, **paddings)
        self.output_label11=ttk.Label(self, foreground='red')
        self.output_label11.grid(column=9, row=4, sticky=tk.W, **paddings)
   
    def option_changed(self, *args):
        self.output_label['text'] = f'You selected: {self.option_var.get()}'
    def option_changed1(self, *args):
        self.output_label1['text'] = f'You selected: {self.option_var1.get()}'
    def option_changed2(self, *args):
        self.output_label2['text'] = f'You selected: {self.option_var2.get()}'
    def option_changed3(self, *args):
        self.output_label3['text'] = f'You selected: {self.option_var3.get()}'
    def option_changed4(self, *args):
        self.output_label4['text'] = f'You selected: {self.option_var4.get()}'
    def option_changed5(self, *args):
        self.output_label5['text'] = f'You selected: {self.option_var5.get()}'
    def option_changed6(self, *args):
        self.output_label6['text'] = f'You selected: {self.option_var6.get()}'
    def option_changed7(self, *args):
        self.output_label7['text'] = f'You selected: {self.option_var7.get()}'
    def option_changed8(self, *args):
        self.output_label8['text'] = f'You selected: {self.option_var8.get()}'
    def option_changed9(self, *args):
        self.output_label9['text'] = f'You selected: {self.option_var9.get()}'
    def option_changed10(self, *args):
        self.output_label10['text'] = f'You selected: {self.option_var10.get()}'
    def option_changed11(self, *args):
        self.output_label11['text'] = f'You selected: {self.option_var11.get()}'

    #x=self.option_var.get()
    #odd_x1=int(x)
    #print(odd_x1)
    
    #x_1 = self.option_var1.get()
    #odd_y1 = int(x_1)
    #print(odd_y1)
    
    #x_2 = self.option_var2.get()
    #odd_x2 = int(x_2)
    #print(odd_x2)

    #x_3 = self.option_var3.get()
    #odd_y2 = int(x_3)
    #print(odd_y2)

    #x_4 = self.option_var4.get()
    #aop_x1 = int(x_4)
    #print(aop_x1)
     
    #x_5 = self.option_var5.get()
    #bop_y1 = int(x_5)
    #print(bop_y1)

    #x_6 = self.option_var6.get()
    #cop_x2 = int(x_6)
    #print(cop_x2)

    #x_7 = self.option_var7.get()
    #dop_y2 = int(x_7)
    #print(dop_y2)

    #x_8 = self.option_var8.get()
    #pmr_x1 = int(x_8)
    #print(pmr_x1)

    #x_9 = self.option_var9.get()
    #imr_y1 = int(x_9)
    #print(imr_y1)

    #x_10 = self.option_var10.get()
    #qmr_x2 = int(x_10)
    #print(qmr_x2)
    
    #x_11=self.option_var11.get()
    #fmr_y2 = int(x_11)
    #print(fmr_y2) 


App().mainloop()

Please note that there are 2 undescores __init__() for ___init__() .

There the part of the code which needs to be fixed.

class TestFrame(tk.Frame):
    def __init__(self):
        super().__init__()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM