name_label = ttk.Label(window, text="Enter your name:") name_label.grid(row=0, column=0, sticky=tk.W) #STICKY - will stick the allignment to the left and tk.W , here W is west direction email_label = ttk.Label(window, text="Enter your email:") email_label.grid(row=1, column=0, sticky=tk.W) age_label = ttk.Label(window, text="Enter your age:") age_label.grid(row=2, column=0, sticky=tk.W) gender_label = ttk.Label(window, text="Enter your gender:") gender_label.grid(row=3, column=0, sticky=tk.W) #create entry box , but we have to create a variable where the user information will be stored name_var = tk.StringVar() name_entrybox = ttk.Entry(window, width=16, textvariable=name_var) name_entrybox.grid(row=0, column=1) name_entrybox.focus() email_var = tk.StringVar() email_entrybox = ttk.Entry(window, width=16, textvariable=email_var) email_entrybox.grid(row=1, column=1) age_var = tk.StringVar() age_entrybox = ttk.Entry(window, width=16, textvariable=age_var) age_entrybox.grid(row=2, column=1) #create combobox - we can create dropdown so that user can select from multiple options gender_var = tk.StringVar() gender_combobox = ttk.Combobox(window,
def __init__(self): # NOTE: I'm gonna rewrite this function because this is not a good coding style self.root = tk.Tk() self.root.title(NAME + ' ' + VERSION) self.frame1 = ttk.Frame( self.root, height=720, width=1280, relief='flat', borderwidth=5) self.controller = None self.keyPress = None self.keyboard = None # label frames self.lf = ttk.Labelframe(self.frame1, text='Command', padding=5) self.serial_lf = ttk.Labelframe(self.frame1, text='Serial Settings', padding=5) self.camera_lf = ttk.Labelframe(self.frame1, text='Camera', padding=5) self.control_lf = ttk.Labelframe(self.frame1, text='Controller', padding=5) # frames self.camera_f1 = ttk.Frame(self.camera_lf, relief='flat') self.camera_f2 = ttk.Frame(self.camera_lf, relief='flat') self.serial_f1 = ttk.Frame(self.serial_lf, relief='flat') self.serial_f2 = ttk.Frame(self.serial_lf, relief='flat') # log area self.logArea = MyScrolledText(self.frame1, width=70) self.logArea.write = self.write sys.stdout = self.logArea # load settings file self.loadSettings() # camera settings self.label1 = ttk.Label(self.camera_f1, text='Camera ID:') self.camera_entry = None if os.name == 'nt': try: self.locateCameraCmbbox() except: # Locate an entry instead whenever dll is not imported successfully self.camera_entry = ttk.Entry(self.camera_f1, width=5, textvariable=self.settings.camera_id) else: self.camera_entry = ttk.Entry(self.camera_f1, width=5, textvariable=self.settings.camera_id) # open up a camera self.camera = Camera() self.openCamera() self.cb1 = ttk.Checkbutton( self.camera_f1, padding=5, text='Show Realtime', onvalue=True, offvalue=False, variable=self.settings.is_show_realtime) self.label2 = ttk.Label(self.serial_f1, text='COM Port:') self.entry2 = ttk.Entry(self.serial_f1, width=5, textvariable=self.settings.com_port) self.preview = CaptureArea(self.camera, self.settings.fps.get(), self.settings.is_show_realtime, self.camera_lf) # activate serial communication self.ser = Sender.Sender(self.settings.is_show_serial) self.activateSerial() self.v1 = tk.StringVar(value='Python') self.rb1 = ttk.Radiobutton(self.lf, text='Mcu', value='Mcu', variable=self.v1, command=self.setCommandCmbbox) self.rb2 = ttk.Radiobutton(self.lf, text='Python', value='Python', variable=self.v1, command=self.setCommandCmbbox) self.reloadCommandButton = ttk.Button(self.lf, text='Reload', command=self.reloadCommands) self.reloadButton = ttk.Button(self.camera_f1, text='Reload Cam', command=self.openCamera) self.reloadComPort = ttk.Button(self.serial_f1, text='Reload Port', command=self.activateSerial) self.startButton = ttk.Button(self.lf, text='Start', command=self.startPlay) self.captureButton = ttk.Button(self.camera_f1, text='Capture', command=self.preview.saveCapture) self.cb_show_ser = ttk.Checkbutton( self.serial_f2, padding=5, text='Show Serial', onvalue=True, offvalue=False, variable=self.settings.is_show_serial) # simple controller self.cb_use_keyboard = ttk.Checkbutton( self.control_lf, text='Use Keyboard', onvalue=True, offvalue=False, variable=self.settings.is_use_keyboard, command=self.activateKeyboard) self.activateKeyboard() self.simpleConButton = ttk.Button(self.control_lf, text='Controller', command=self.createControllerWindow) # fps self.label3 = ttk.Label(self.camera_f2, text='FPS:') self.fps_cb = ttk.Combobox(self.camera_f2, textvariable=self.settings.fps, width=2, state="readonly") self.fps_cb['values'] = [45, 30, 15] self.fps_cb.bind('<<ComboboxSelected>>', self.applyFps) self.fps_cb.current(self.fps_cb['values'].index(self.settings.fps.get())) # commands self.mcu_name = tk.StringVar() self.mcu_cb = ttk.Combobox(self.lf, textvariable=self.mcu_name, state="readonly") self.py_name = tk.StringVar() self.py_cb = ttk.Combobox(self.lf, textvariable=self.py_name, state="readonly") self.loadCommands() self.partition1 = ttk.Label(self.camera_f1, text=' / ') self.partition2 = ttk.Label(self.camera_f1, text=' / ') self.frame1.grid(row=0,column=0,sticky='nwse') self.logArea.grid(row=0,column=7,rowspan=5, sticky='nwse') # camera self.camera_lf.grid(row=0,column=0,columnspan=3, sticky='nw') self.camera_f1.grid(row=0,column=0, sticky='nw') self.camera_f2.grid(row=2,column=0, sticky='nw', pady=(5, 0)) self.preview.grid(row=1,column=0,columnspan=7, sticky='nw') self.label1.pack(side=tk.LEFT) self.camera_entry.pack(side=tk.LEFT, padx=5) self.reloadButton.pack(side=tk.LEFT) self.partition1.pack(side=tk.LEFT, padx=10) self.cb1.pack(side=tk.LEFT) self.partition2.pack(side=tk.LEFT, padx=10) self.captureButton.pack(side=tk.LEFT) self.label3.pack(side=tk.LEFT) self.fps_cb.pack(side=tk.LEFT, padx=5) # serial self.serial_lf.grid(row=1,column=0, sticky='nw') self.serial_f1.grid(row=0,column=0, sticky='nw') self.serial_f2.grid(row=1,column=0, sticky='nw', pady=(5, 0)) self.label2.pack(side=tk.LEFT) self.entry2.pack(side=tk.LEFT, padx=5) self.reloadComPort.pack(side=tk.LEFT) self.cb_show_ser.pack(side=tk.LEFT) # controller simulator self.control_lf.grid(row=1, column=1, sticky='ne') self.cb_use_keyboard.grid(row=0, column=0) self.simpleConButton.grid(row=1, column=0, pady=(5,0)) # commands selection self.lf.grid(row=1,column=2, rowspan=3, sticky='ne') self.rb1.grid(row=0,column=0, sticky='w') self.rb2.grid(row=1,column=0, sticky='w') self.setCommandCmbbox() self.reloadCommandButton.grid(row=3,column=1, sticky='e', pady=(10, 0)) self.startButton.grid(row=3,column=2, sticky='e', pady=(10, 0)) for child in self.frame1.winfo_children(): if not type(child) is ttk.Combobox: child.grid_configure(padx=5, pady=5) self.root.protocol("WM_DELETE_WINDOW", self.exit) self.preview.startCapture()
import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x200') var = tk.StringVar() label = tk.Label( window, text=' ', bg='yellow', width=20, ) def print_selection(): #config方法更改text属性 label.config(text='you have selected' + var.get()) button = tk.Button(window, height=2) #set variable=value rb1 = tk.Radiobutton(window, text='Option A', variable=var, value='A', command=print_selection) rb2 = tk.Radiobutton(window, text='Option B', variable=var,
def __init__(self, row, controller): super().__init__() self.title("Thermal conductivity model") self.row = row self.controller = controller #self.resizable(False, False) # Adding outer container frames self.background_frame = ttk.Frame(self, style='Standard.TFrame') self.background_frame.pack(side='top', fill='both', expand=True) self.main_frame = ttk.Frame(self.background_frame, style='Standard.TFrame') self.main_frame.pack(side='top', fill='both', expand=True, padx=10, pady=10) # Adding main title frame self.main_title_frame = ttk.Frame(self.main_frame, style='DarkFrame.TFrame') self.main_title_frame.pack(side='top', fill='x') # Adding inner container frames self.top_frame = ttk.Frame(self.main_frame, style='Standard.TFrame') self.top_frame.pack(side='top', fill='x') self.center_frame = ttk.Frame(self.main_frame, style='Standard.TFrame') self.center_frame.pack(side='top', fill='x') self.bottom_frame = ttk.Frame(self.main_frame, style='Standard.TFrame') self.bottom_frame.pack(side='top', fill='x') # Adding top part container frames self.top_frame_inner_left = ttk.Frame(self.top_frame, style='Standard.TFrame') self.top_frame_inner_left.pack(side='left', fill='both', expand=True) self.top_frame_inner_right = ttk.Frame(self.top_frame, style='Standard.TFrame') self.top_frame_inner_right.pack(side='left', fill='both', expand=True) # Adding bottom part container frames self.bottom_frame_inner_left = ttk.Frame(self.bottom_frame, style='Standard.TFrame') self.bottom_frame_inner_left.pack(side='left', fill='both', expand=True) self.bottom_frame_inner_center = ttk.Frame(self.bottom_frame, style='Standard.TFrame') self.bottom_frame_inner_center.pack(side='left', fill='both', expand=True) self.bottom_frame_inner_right = ttk.Frame(self.bottom_frame, style='Standard.TFrame') self.bottom_frame_inner_right.pack(side='left', fill='both', expand=True) # Adding buttons in the button part self.ok_button = ttk.Button(self.bottom_frame_inner_left, text='Ok', width=15, takefocus=False, style='Standard.TButton', command=self.ok_button_func) self.ok_button.pack(side='left', padx=(10, 0), pady=(10, 10)) self.see_calc_button = ttk.Button(self.bottom_frame_inner_center, text='See calculation', width=15, takefocus=False, style='Standard.TButton', command=self.see_calc_button_func) self.see_calc_button.pack(side='top', padx=(0, 10), pady=(10, 10)) self.cancel_button = ttk.Button(self.bottom_frame_inner_right, text='Cancel', width=15, takefocus=False, style='Standard.TButton', command=self.cancel_button) self.cancel_button.pack(side='right', padx=(0, 10), pady=(10, 10)) # Adding main title self.main_title = ttk.Label(self.main_title_frame, text='Thermal conductivity model', style='ExtraLargeLabel.TLabel') self.main_title.pack(side='left', padx=(10, 10), pady=(10, 10)) # ku or kf selection frame widgets self.calculate_label = ttk.Label(self.top_frame_inner_left, text='Calculate:', style='LargeLabel.TLabel') self.calculate_label.grid(row=0, column=0, columnspan=2, sticky='w', padx=(10, 0), pady=(0, 0)) self.ku_checkbutton = ttk.Checkbutton(self.top_frame_inner_left, style='Standard.TCheckbutton') self.ku_checkbutton.grid(row=1, column=0, sticky='w', padx=(10, 0), pady=(5, 0)) self.ku_checkbutton_label = ttk.Label(self.top_frame_inner_left, text='Calculate unfrozen thermal conductivity', style='Standard.TLabel') self.ku_checkbutton_label.grid(row=1, column=1, sticky='w', padx=(3, 0), pady=(5, 0)) self.kf_checkbutton = ttk.Checkbutton(self.top_frame_inner_left, style='Standard.TCheckbutton') self.kf_checkbutton.grid(row=2, column=0, sticky='w', padx=(10, 0), pady=(5, 0)) self.kf_checkbutton_label = ttk.Label(self.top_frame_inner_left, text='Calculate frozen thermal conductivity', style='Standard.TLabel') self.kf_checkbutton_label.grid(row=2, column=1, sticky='w', padx=(3, 0), pady=(5, 0)) # Adding override options widgets self.override_label = ttk.Label(self.top_frame_inner_left, text='Override on output:', style='LargeLabel.TLabel') self.override_label.grid(row=3, column=0, columnspan=2, sticky='w', padx=(10, 0), pady=(20, 0)) self.sr_override_checkbutton = ttk.Checkbutton(self.top_frame_inner_left, style='Standard.TCheckbutton') self.sr_override_checkbutton.grid(row=4, column=0, sticky='w', padx=(10, 0), pady=(5, 0)) self.sr_override_label = ttk.Label(self.top_frame_inner_left, text='Sr value', style='Standard.TLabel') self.sr_override_label.grid(row=4, column=1, sticky='w', padx=(3, 0), pady=(5, 0)) # select material type frame widgets self.select_type_label = ttk.Label(self.top_frame_inner_right, text='Select material type', style='LargeLabel.TLabel') self.select_type_label.grid(row=0, column=0, columnspan=4, sticky='w', padx=(10, 0), pady=(0, 0)) self.k_label = ttk.Label(self.top_frame_inner_right, text='k', style='Standard.TLabel') self.k_label.grid(row=1, column=2, columnspan=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_label = ttk.Label(self.top_frame_inner_right, text='unfrozen', style='Standard.TLabel') self.unfrozen_label.grid(row=2, column=2, padx=(5, 0), pady=(3, 0)) self.frozen_label = ttk.Label(self.top_frame_inner_right, text='frozen', style='Standard.TLabel') self.frozen_label.grid(row=2, column=3, padx=(5, 0), pady=(3, 0)) self.type_selection = tk.StringVar() self.radiobutton_1 = ttk.Radiobutton( self.top_frame_inner_right, value='type1', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_1.grid(row=3, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.radiobutton_2 = ttk.Radiobutton( self.top_frame_inner_right, value='type2', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_2.grid(row=4, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.radiobutton_3 = ttk.Radiobutton( self.top_frame_inner_right, value='type3', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_3.grid(row=5, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.radiobutton_4 = ttk.Radiobutton( self.top_frame_inner_right, value='type4', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_4.grid(row=6, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.type_label_1 = ttk.Label( self.top_frame_inner_right, text='gravel and coarse sands:', style='Standard.TLabel' ) self.type_label_1.grid(row=3, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.type_label_2 = ttk.Label( self.top_frame_inner_right, text='medium and fine sands:', style='Standard.TLabel' ) self.type_label_2.grid(row=4, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.type_label_3 = ttk.Label( self.top_frame_inner_right, text='silty and clayey soils:', style='Standard.TLabel' ) self.type_label_3.grid(row=5, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.type_label_4 = ttk.Label( self.top_frame_inner_right, text='organic fibrous soils (peat):', style='Standard.TLabel' ) self.type_label_4.grid(row=6, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.var_unfrozen_1 = tk.StringVar(value='4.60') self.var_unfrozen_2 = tk.StringVar(value='3.55') self.var_unfrozen_3 = tk.StringVar(value='1.90') self.var_unfrozen_4 = tk.StringVar(value='0.60') self.unfrozen_val_1 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_1, style='Standard.TLabel' ) self.unfrozen_val_1.grid(row=3, column=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_val_2 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_2, style='Standard.TLabel' ) self.unfrozen_val_2.grid(row=4, column=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_val_3 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_3, style='Standard.TLabel' ) self.unfrozen_val_3.grid(row=5, column=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_val_4 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_4, style='Standard.TLabel' ) self.unfrozen_val_4.grid(row=6, column=2, padx=(0, 0), pady=(3, 0)) self.var_frozen_1 = tk.StringVar(value='1.70') self.var_frozen_2 = tk.StringVar(value='0.95') self.var_frozen_3 = tk.StringVar(value='0.85') self.var_frozen_4 = tk.StringVar(value='0.25') self.frozen_val_1 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_1, style='Standard.TLabel') self.frozen_val_1.grid(row=3, column=3, padx=(0, 0), pady=(3, 0)) self.frozen_val_2 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_2, style='Standard.TLabel') self.frozen_val_2.grid(row=4, column=3, padx=(0, 0),pady=(3, 0)) self.frozen_val_3 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_3, style='Standard.TLabel') self.frozen_val_3.grid(row=5, column=3, padx=(0, 0), pady=(3, 0)) self.frozen_val_4 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_4, style='Standard.TLabel' ) self.frozen_val_4.grid(row=6, column=3, padx=(0, 0), pady=(3, 0)) # Adding center frame widgets for mineral or rock selection calculation self.center_frame_top_selection_frame = ttk.Frame(self.center_frame, style='Standard.TFrame') self.center_frame_top_selection_frame.pack(side='top', fill='x') self.particle_th_con_label = ttk.Label( self.center_frame_top_selection_frame, text='Particle thermal conductivity', style='LargeLabel.TLabel' ) self.particle_th_con_label.grid(row=0, column=0, columnspan=4, sticky='w', padx=(10, 0), pady=(15, 0)) self.calculation_selection = tk.StringVar() self.rock_selection_radiobutton = ttk.Radiobutton( self.center_frame_top_selection_frame, value='rock', variable=self.calculation_selection, style='Standard.TRadiobutton', takefocus=False, command=self.switch_frames ) self.rock_selection_radiobutton.grid(row=1, column=0, padx=(10, 0), pady=(5, 5)) self.rock_selection_label = ttk.Label( self.center_frame_top_selection_frame, text='by rock type', style='Standard.TLabel' ) self.rock_selection_label.grid(row=1, column=1, padx=(3, 0), pady=(5, 5)) self.mineral_selection_radiobutton = ttk.Radiobutton( self.center_frame_top_selection_frame, value='mineral', variable=self.calculation_selection, style='Standard.TRadiobutton', takefocus=False, command=self.switch_frames ) self.mineral_selection_radiobutton.grid(row=1, column=2, padx=(10, 0), pady=(5, 5)) self.mineral_selection_label = ttk.Label( self.center_frame_top_selection_frame, text='by mineral', style='Standard.TLabel') self.mineral_selection_label.grid(row=1, column=3, padx=(3, 0), pady=(5, 5)) self.switch_frame_container = ttk.Frame(self.center_frame, style='Standard.TFrame') self.switch_frame_container.pack(side='bottom', fill='both', expand=True) self.switch_frame_container.columnconfigure(0, weight=1) self.switch_frame_container.rowconfigure(0, weight=1) # Frame switching self.frame_pages = dict() for frame_class in [SelectByRock, SelectByMineral]: selection_frame = frame_class(self.switch_frame_container) self.frame_pages[frame_class] = selection_frame selection_frame.grid(row=0, column=0, sticky='nsew') self.empty_start_frame = ttk.Frame(self.switch_frame_container, style='Standard.TFrame') self.empty_start_frame.grid(row=0, column=0, sticky='nsew')
chaves_rec.pop() if msg == "{quit}": client_socket.close() top.quit() def on_closing(event=None): """Esta função deve ser chamada quando a janela é fechada.""" my_msg.set("{quit}") send() top = tkinter.Tk() top.title("Chat Toppezzera") messages_frame = tkinter.Frame(top) my_msg = tkinter.StringVar() # Para que as mensagens sejam enviadas. my_msg.set("Escreva seu nome.") # Para navegar pelas mensagens anteriores. scrollbar = tkinter.Scrollbar(messages_frame) # A seguir conterá as mensagens. msg_list = tkinter.Listbox(messages_frame, height=15, width=80, yscrollcommand=scrollbar.set) scrollbar.pack(side=tkinter.RIGHT, fill=tkinter.Y) msg_list.pack(side=tkinter.LEFT, fill=tkinter.BOTH) msg_list.pack() messages_frame.pack() entry_field = tkinter.Entry(top, textvariable=my_msg) entry_field.bind("<Return>", send)
"file_finder_byWord_main.py", 1 ] pydict["Sentence complexity by sentence index"] = [ "sentence_analysis_util.sentence_complexity", 0, 3, 'txt' ] pydict["Sentence/text readability by sentence index (via textstat)"] = [ "sentence_analysis_util.sentence_text_readability", 0, 3, 'txt' ] pydict["Sentiment analysis by sentence index"] = [ "sentiment_concreteness_analysis_main.py", 1 ] pydict["Words/collocations by sentence index"] = ["", 0] pydict["WordNet categories by sentence index"] = ["WordNet_main.py", 1] visualize_bySentenceIndex_var = tk.IntVar() visualize_bySentenceIndex_options_var = tk.StringVar() visualize_sentence_structure_var = tk.IntVar() sentence_complexity_var = tk.IntVar() text_readability_var = tk.IntVar() extract_sentences_var = tk.IntVar() search_words_var = tk.StringVar() def clear(e): visualize_bySentenceIndex_var.set(0) visualize_sentence_structure_var.set(0) extract_sentences_var.set(0) visualize_bySentenceIndex_options_var.set('') search_words_var.set('') GUI_util.clear("Escape")
import tkinter as tk from tkinter import ttk window = tk.Tk() window.title("My Personal Title") window.geometry("300x300") window.resizable(0, 0) window.wm_iconbitmap("images/ok.ico") #Label to guide user: label1 = ttk.Label(window, text="Which OS have you used?") label1.pack(pady=10, anchor='w') #Checkbuttons option1_var = tk.StringVar() check = ttk.Checkbutton(window, text="Windows", variable=option1_var) check.pack(anchor='w') option2_var = tk.StringVar() check2 = ttk.Checkbutton(window, text="iOS", variable=option2_var) check2.pack(anchor='w') option3_var = tk.StringVar() check3 = ttk.Checkbutton(window, text="Linux", variable=option3_var) check3.pack(anchor='w') option4_var = tk.StringVar() check4 = ttk.Checkbutton(window, text="Android", variable=option4_var) check4.pack(anchor='w')
open(save_path, 'wb').write(pic_res.content) def Downlod_Path(self): path = askdirectory() downlod_path.set(path) def test(self): print('xiazai:{}'.format(type(downlod_path.get()))) if __name__ == '__main__': dl_pic = DownlodMM() window = tk.Tk() window.title('美女图片下载') window.geometry('370x160') downlod_path = tk.StringVar() tuwandllist = tk.StringVar() taobao_list = tk.StringVar() dl_path_name = tk.Label(text='下载路径:').place(x=10, y=10) dl_path_in = tk.Entry(window, textvariable=downlod_path).place(x=80, y=10) dl_path_bt = tk.Button(text='路径选择', command=dl_pic.Downlod_Path).place(x=280, y=10) tuwan_text_list = tk.ttk.Combobox(window, textvariable=tuwandllist, width=13) tuwan_text_list.place(x=80, y=40) tuwan_text_list["value"] = dl_pic.list tuwan_text_list.current(1) tuwan_text_list_bt = tk.Button(text='兔玩图片下载',
picture = [] reply = 0 correct = 0 no = 0 num = 0 record = [] for i in range(11): record.append(0) tk.Label(window, text='選擇類別\n1:民俗文化 2:美食 3:景點 4:名人名言 5:文學 6:藝術', font=("標楷體"), width=60).pack() num = tk.StringVar() tk.Entry(window, textvariable=num, width=30).pack() #Entry:文字輸入欄 tk.Button(window, text="確定", command=ok).pack() tk.Button(window, text="取消", command=cancel).pack() win2_timer = None score = 0 def button_countdown(i, label, window2, correct): global reply, win2_timer, score if (reply == 1 or reply == 2 or reply == 3): if (reply == int(correct)): print('2222') if (i > 5): score = score + 5
else: pass win = tk.Tk() win.title("Calculate Money") #第一行 ttk.Label(win, text='Input').grid(column=0, row=0) ttk.Label(win, text='From').grid(column=1, row=0) ttk.Label(win, text='To').grid(column=2, row=0) ttk.Label(win, text='result').grid(column=3, row=0) #第二行第一列 #ttk.Entry是输入框 one = tk.StringVar() inputNumber = ttk.Entry(win, width=12, textvariable=one) inputNumber.grid(column=0, row=1) inputNumber.focus() #第二行第二列 #ttk.Combobox是下拉框 two = tk.StringVar() choice = ttk.Combobox(win, width=12, textvariable=two) choice['values'] = ('renminbi', 'dollar') choice.grid(column=1, row=1) #第二行第三列 three = tk.StringVar() convertTo = ttk.Combobox(win, width=20, textvariable=three) convertTo['values'] = ('Vietnamese_Shield', 'renminbi', 'bitcoin', 'dollar')
import tkinter as tk import sqlite3 window = tk.Tk() window.geometry('650x650') full_name = tk.StringVar() full_address = tk.StringVar() full_email = tk.StringVar() full_number = tk.StringVar() var_gender = tk.StringVar() var_politic = tk.StringVar() var_edu = tk.StringVar() var_check1 = tk.IntVar() var_check2 = tk.IntVar() var_check3 = tk.IntVar() var_check4 = tk.IntVar() var_check5 = tk.IntVar() def info(): _name = full_name.get() _address = full_address.get() _email = full_email.get() _number = full_number.get() _gender = var_gender.get() _political = var_politic.get() _edu = var_edu.get() _check_1 = var_check1.get() _check_2 = var_check2.get() _check_3 = var_check3.get() _check_4 = var_check4.get()
root.update_idletasks() time.sleep(1) paginas_processadas_entry.insert(0, "1762") paginas_erro_entry.insert(0, "300") salvardados() #--------------------------------------------------------------------------------------------- # Parametros de Aplicação frame_aplicacao = tk.LabelFrame(root, text="Parâmetros de Aplicação", padx=5, pady=5) frame_aplicacao.grid(row=0, column=1, padx=5, pady=5, ipadx=5, ipady=5, sticky=tk.E+tk.N+tk.W+tk.S) # CheckBoxes saveasfile = tk.StringVar() sobrescrever = tk.StringVar() savedatabase = tk.StringVar() # FIRST FRAME - PARÂMETRO DE APLICAÇÃO check1 = tk.Checkbutton(frame_aplicacao, text="Salvar em Arquivo", variable=saveasfile, command=switch_button_state) check1.deselect() check1.grid(row=0, sticky=tk.W) check2 = tk.Checkbutton(frame_aplicacao, text="Sobrescrever conteúdo\n anterior do arquivo", variable=sobrescrever, state=tk.DISABLED) check2.deselect() check2.grid(row=1, padx=(10,0)) namefile_label = tk.Label(frame_aplicacao, text="Nome arquivo: ") namefile_label.grid(row=1, column=1, sticky=tk.E) saveasfile_Entry = tk.Entry(frame_aplicacao, width=30, state=tk.DISABLED)
str(numWinners) + " winners successfully selected!") #labels winnerLabel = ttk.Label(win, text="No. Winners") winnerLabel.grid(column=0, row=0) csvLabel = ttk.Label(win, text="Upload File") csvLabel.grid(column=0, row=1) #textboxes winner = tk.IntVar() winnerBox = ttk.Entry(win, width=12, textvariable=winner) winnerBox.grid(column=1, row=0) csv = tk.StringVar() csvBox = ttk.Entry(win, width=50, textvariable=csv) csvBox.grid(column=0, row=1) #checkbox chVarHeader = tk.IntVar() headerCh = tk.Checkbutton(win, text="Has Header?", variable=chVarHeader) headerCh.select() headerCh.grid(column=0, row=2, sticky=tk.W) #buttons uploadButton = ttk.Button(win, text="Browse", command=browse) uploadButton.grid(column=1, row=1) submitButton = ttk.Button(win, text="Submit", command=submit) submitButton.grid(column=0, row=3)
### Colour Theme : # icons lightDefaultIcon = tk.PhotoImage(file='icons2/light_default.png') lightPlusIcon = tk.PhotoImage(file='icons2/light_plus.png') darkIcon = tk.PhotoImage(file='icons2/dark.png') redIcon = tk.PhotoImage(file='icons2/red.png') monokaiIcon = tk.PhotoImage(file='icons2/monokai.png') nightBlueIcon = tk.PhotoImage(file='icons2/night_blue.png') mainMenu.add_cascade(label="Colour Theme",menu=ColourTheme) themeChosen = tk.StringVar() colourIcons = (lightDefaultIcon,lightPlusIcon,darkIcon,redIcon,monokaiIcon,nightBlueIcon) colourDict = { 'Light Default' : ('#000000','#ffffff'), # background and font 'Light Plus' : ('#474747','#e0e0e0'), 'Dark' : ('#c4c4c4','#2d2d2d'), 'Red' : ('#2d2d2d','#ffe8e8'), 'Monokai' : ('#d3b774','#474747'), 'Night Blue' : ('#ededed','#6b9dc2') }
def __init__(self, window, mmc): self.window = window self.window.title("Live Camera") self.window.protocol('WM_DELETE_WINDOW', self.delete) self.last_channel = '' self.mmc = mmc row_col_config(self.window, 4, 4) self.Options = tk.Frame(self.window) self.Options.grid(row=0, column=0, rowspan=4, columnspan=1, sticky=tk.W + tk.E + tk.N + tk.S) # Base the number of items in the Options frame on how many # LED configurations exist self.led_intensities = read_yaml(LED_YAML_PATH) row_col_config(self.Options, len(self.led_intensities.keys()) + 10, 2) tk.Label(self.Options, text="Settings").grid(row=0, column=0, columnspan=2) self.channel = tk.StringVar() self.channels = {} self.exposures = {} for i, (key, val) in enumerate(self.led_intensities.items()): self.channels[key] = tk.Radiobutton(self.Options, text=key, variable=self.channel, value=key) self.channels[key].grid(row=i + 3, column=0) if key == 'BFF': self.channels[key].select() for i, (k, v) in enumerate(self.channels.items()): self.exposures[k] = tk.StringVar(self.Options, value=get_default(k)) tk.Entry(self.Options, textvariable=self.exposures[k]).grid(row=i + 3, column=1, sticky='EW') self.Image = tk.Frame(self.window) self.Image.grid(row=0, column=1, rowspan=4, columnspan=3, sticky=tk.W + tk.E + tk.N + tk.S) # row_col_config(self.Image, 9, 2) # Camera Scale self.scale = 3 self.dim = tuple( (np.asarray(sc_utils.get_frame_size()) / self.scale).astype(int)) # self.dim = (int(self.width / self.scale), int(self.height / self.scale)) self.vid = VideoCapture(mmc) self.canvas = tk.Canvas(self.Image, width=self.dim[0], height=self.dim[1]) self.canvas.grid() # Button that lets the user take a snapshot self.btn_snapshot = tk.Button(self.Options, text="Snapshot", width=50, command=self.snapshot) self.btn_snapshot.grid(row=len(self.led_intensities.keys()) + 9, column=0, columnspan=2) # self.exp_entry = tk.Entry( # window, textvariable=tk.StringVar(window, value="1")) # self.exp_entry.grid() # After it is called once, the update method will be automatically called every delay milliseconds self.delay = 15 self.update()
def init_window(self): self.master.title("T79 Configuration App") self.grid() # Set up the Entry widgets for each network parameter: for ind, (key, param) in enumerate(self.params.items()): self.param_labels[param[0]] = tk.Label(self, text=param[1]) self.param_labels[param[0]].grid(row=ind, column=0) self.param_var[param[0]] = tk.StringVar(self) self.param_var[param[0]].set(param[2][param[2].index(param[3])]) self.param_entry[param[0]] = tk.OptionMenu( self, self.param_var[param[0]], *param[2]) self.param_entry[param[0]].grid(row=ind, column=1, columnspan=ENTRY_COLSPAN) self.param_entry[param[0]].config(state=tk.DISABLED) # Set the Radar CAN Interface entry widget to ENABLED and give it focus: self.param_entry["can_interface"].config(state=tk.NORMAL, fg="black") self.param_entry["can_interface"].focus_set() # Connect Button: self.connect_button = tk.Button(self, text="CONNECT", command=self.connect_to_radar) self.connect_button.grid(row=4, column=0) # Send Configuration Button: self.send_config_button = tk.Button(self, text="CONFIGURE", command=self.send_config_to_radar) self.send_config_button.grid(row=4, column=1) self.send_config_button.config(state=tk.DISABLED) # Start Radar Button: self.start_radar_button = tk.Button(self, text="START", command=self.start_radar) self.start_radar_button.grid(row=4, column=2) self.start_radar_button.config(state=tk.DISABLED) # Run Radar Button: self.stop_radar_button = tk.Button(self, text="STOP", command=self.stop_radar) self.stop_radar_button.grid(row=4, column=3) self.stop_radar_button.config(state=tk.DISABLED) # Display for output: self.text_display = tk.Text(self, width=65, height=10) self.text_display.grid(row=0, column=4, rowspan=5) self.update_text_display_newline( "Please enter the radar socketCAN interface name (for example, can0) and press CONNECT." ) # Scrollbar for display text: self.scrollbar_display = tk.Scrollbar(self, command=self.text_display.yview) self.scrollbar_display.grid(row=0, column=5, rowspan=5) self.text_display['yscrollcommand'] = self.scrollbar_display.set
def __init__(self, master): self.master = master tk.Frame.__init__(self, self.master) self.master.title("Smart Scope") self.live_class = None ###################################################### # Layout the frames and notebooks ###################################################### row_col_config(self.master, 4, 4) self.Sidebar = tk.Frame(self.master) self.Sidebar.grid(row=0, column=3, rowspan=4, columnspan=1, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.Sidebar, 8, 1) self.BarcodeFrame = tk.Frame(self.Sidebar, highlightbackground="black", highlightcolor="black", highlightthickness=1) self.BarcodeFrame.grid(row=0, column=0, rowspan=4, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.BarcodeFrame, 4, 1) self.Mainframe = tk.Frame(master) self.Mainframe.grid(row=0, column=0, rowspan=4, columnspan=3, sticky=tk.W + tk.E + tk.N + tk.S) self.nb = ttk.Notebook(self.Mainframe) self.imaging_parameters = ttk.Frame(self.nb) self.nb.add(self.imaging_parameters, text='Imaging Parameters') row_col_config(self.imaging_parameters, 14, 4) self.system = ttk.Frame(self.nb) self.nb.add(self.system, text='System Parameters') self.nb.pack(expand=1, fill='both') row_col_config(self.system, 14, 4) ###################################################### # Layout the buttons, labels, and entries ###################################################### # Sidebar tk.Button(self.Sidebar, text="Live Image", command=self.camera).grid(row=7, column=0, ipadx=10, ipady=3, padx=3, pady=3) tk.Label(self.BarcodeFrame, text="Barcode").grid(row=0, column=0) self.barcode_number = tk.StringVar(self.BarcodeFrame, value='') self.barcode_val = tk.Entry(self.BarcodeFrame, textvariable=self.barcode_number) self.barcode_val.grid(row=1, column=0) tk.Button(self.BarcodeFrame, text="Scan Barcode", command=self.scan_barcode).grid(row=3, column=0, ipadx=10, ipady=3, padx=3, pady=3) tk.Button(self.BarcodeFrame, text="Save", command=self.save_barcode).grid(row=4, column=0, ipadx=18, ipady=3, padx=3, pady=3) tk.Button(self.BarcodeFrame, text="Load", command=self.load_barcode).grid(row=5, column=0, ipadx=18, ipady=3, padx=3, pady=3) start = tk.Button(self.Sidebar, text="Start", font=('Sans', '10', 'bold'), command=self.image) start.grid(row=8, column=0, ipadx=23, ipady=3, padx=3, pady=3) # Imaging # Experiment self.config_yaml_data = read_yaml(CONFIG_YAML_PATH) self.experiment_params = { 'Chip': 1, 'Cycle Number': 2, 'Drug': 3, 'Cell': 4, 'Origin': 5, 'Start Date': 6, 'Concentration': 7, 'Chip Index': 8 } self.ExperimentFrame = tk.Frame(self.imaging_parameters, highlightbackground="black", highlightcolor="black", highlightthickness=1) self.ExperimentFrame.grid(row=0, column=0, rowspan=9, columnspan=2, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.ExperimentFrame, 9, 2) tk.Label(self.ExperimentFrame, text="Experiment").grid(row=0, column=0, columnspan=2) for k, v in self.experiment_params.items(): if k == 'Chip': self.experiment_params[k] = DropDown( self.ExperimentFrame, k, get_default(k), ([val['name'] for val in self.config_yaml_data['chips']]), v) elif k == 'Drug': self.experiment_params[k] = DropDown( self.ExperimentFrame, k, get_default(k), ([val for val in self.config_yaml_data['drugs']]), v) elif k == 'Cell': self.experiment_params[k] = DropDown( self.ExperimentFrame, k, get_default(k), ([val for val in self.config_yaml_data['cells']]), v) elif k == 'Origin': self.experiment_params[k] = DropDown( self.ExperimentFrame, k, get_default(k), ([val for val in self.config_yaml_data['origins']]), v) else: self.experiment_params[k] = Entry(self.ExperimentFrame, k, get_default(k), v) # Exposure self.led_intensities = read_yaml(LED_YAML_PATH) # print(self.led_intensities) self.exposure_params = {} self.exposure_checkboxes = {} for i, (key, val) in enumerate(self.led_intensities.items()): self.exposure_params[key] = i + 1 self.exposure_checkboxes[key] = tk.BooleanVar() if key == 'BFF': self.exposure_checkboxes[key].set(True) self.ExposureFrame = tk.Frame(self.imaging_parameters) self.ExposureFrame.grid(row=9, column=0, rowspan=4, columnspan=2, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.ExposureFrame, 8, 3) tk.Label(self.ExposureFrame, text="Exposure").grid(row=0, column=0, columnspan=2) for i, (k, v) in enumerate(self.exposure_checkboxes.items()): tk.Checkbutton(self.ExposureFrame, text=k, variable=v, onvalue=True, offvalue=False).grid(row=i + 1, column=2) for k, v in self.exposure_params.items(): self.exposure_params[k] = Entry(self.ExposureFrame, k, get_default(k), v) # Focus self.focus_params = { 'Step Size (um)': 1, 'Initial Focus Range (um)': 2, 'Focus Range (um)': 3, 'Focus Points X': 4, 'Focus Points Y': 5, 'Focus Exposure': 6 } self.FocusFrame = tk.Frame(self.imaging_parameters) self.FocusFrame.grid(row=0, column=2, rowspan=9, columnspan=2, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.FocusFrame, 7, 2) tk.Label(self.FocusFrame, text="Focus").grid(row=0, column=0, columnspan=4) for k, v in self.focus_params.items(): self.focus_params[k] = Entry(self.FocusFrame, k, get_default(k), v) # Saving self.saving_params = { 'Folder': 1, 'Output Image Pixel Width': 2, 'Output Image Pixel Height': 3 } self.SaveFrame = tk.Frame(self.imaging_parameters, highlightbackground="black", highlightcolor="black", highlightthickness=1) self.SaveFrame.grid(row=9, column=2, rowspan=6, columnspan=2, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.SaveFrame, 4, 3) tk.Label(self.SaveFrame, text="Saving").grid(row=0, column=0, columnspan=4) for k, v in self.saving_params.items(): self.saving_params[k] = Entry(self.SaveFrame, k, get_default(k), v) tk.Button(self.SaveFrame, text='...', command=lambda: self.get_directory(self.saving_params[ 'Folder'])).grid(row=1, column=2) # System Tab Layout # General self.system_params = { 'Alignment Model': 1, 'Focus Model': 2, 'Objective': 3, 'Apartments in Image X': 4, 'Apartments in Image Y': 5, 'Image Rotation (degrees)': 6, } self.SystemFrame = tk.Frame(self.system, highlightbackground="black", highlightcolor="black", highlightthickness=1) self.SystemFrame.grid(row=0, column=0, rowspan=14, columnspan=2, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.SystemFrame, 7, 3) tk.Label(self.SystemFrame, text="General").grid(row=0, column=0, columnspan=4) for k, v in self.system_params.items(): if k == 'Image Rotation (degrees)': self.system_params[k] = DropDown(self.SystemFrame, k, get_default(k), ['0', '90', '180', '270'], v) else: self.system_params[k] = Entry(self.SystemFrame, k, get_default(k), v) tk.Button(self.SystemFrame, text='...', command=lambda: self.get_filename(self.system_params[ 'Alignment Model'])).grid(row=1, column=2) tk.Button(self.SystemFrame, text='...', command=lambda: self.get_filename(self.system_params[ 'Focus Model'])).grid(row=2, column=2) # Calibration self.calibration_params = { 'Frame to Pixel Ratio': 2, 'First Position X': 5, 'First Position Y': 6, } self.CalibrationFrame = tk.Frame(self.system) self.CalibrationFrame.grid(row=0, column=2, rowspan=14, columnspan=2, sticky=tk.W + tk.E + tk.N + tk.S) row_col_config(self.CalibrationFrame, 6, 3) tk.Label(self.CalibrationFrame, text="Calibration").grid(row=0, column=0, columnspan=4) tk.Button(self.CalibrationFrame, text='Calibrate Stage/Pixel Ratio', command=self.ratio_calibrate).grid() self.calibration_params['Frame to Pixel Ratio'] = Entry( self.CalibrationFrame, 'Calibrated Stage to Pixel Ratio:', get_default('Frame to Pixel Ratio'), 2) tk.Label(self.CalibrationFrame, textvariable=self.calibration_params['Frame to Pixel Ratio'] ).grid() tk.Button(self.CalibrationFrame, text='Calibrate First Postion', command=self.first_point_calibration).grid() self.calibration_params['First Position X'] = Entry( self.CalibrationFrame, 'Calibrated First Postion X:', get_default('First Position X'), 5) self.calibration_params['First Position Y'] = Entry( self.CalibrationFrame, 'Calibrated First Postion Y:', get_default('First Position Y'), 6) tk.Label( self.CalibrationFrame, textvariable=self.calibration_params['First Position X']).grid() tk.Label( self.CalibrationFrame, textvariable=self.calibration_params['First Position Y']).grid() self.x_stage_dir = tk.BooleanVar() self.y_stage_dir = tk.BooleanVar() tk.Checkbutton(self.CalibrationFrame, text='Flip X Stage Direction', variable=self.x_stage_dir, onvalue=True, offvalue=False, command=self.toggle_stage_direction).grid() tk.Checkbutton(self.CalibrationFrame, text='Flip X Stage Direction', variable=self.y_stage_dir, onvalue=True, offvalue=False, command=self.toggle_stage_direction).grid() ###################################################### # Get Stage Controller ###################################################### self.mmc = sc_utils.get_stage_controller("COM7")
import sys import os import json import requests import urllib import tkinter as tk from tkinter import ttk from ttkHyperlinkLabel import HyperlinkLabel from tkinter import messagebox import myNotebook as nb import time import re this = sys.modules[__name__] # For holding module globals this.status = tk.StringVar() this.edsm_setting = None this.app_name = 'ATEL-EDMC' this.installed_version = 1.32 this.github_latest_version = "https://raw.githubusercontent.com/Elite-IGAU/ATEL-EDMC/latest/ATEL/version.txt" this.plugin_source = "https://raw.githubusercontent.com/Elite-IGAU/ATEL-EDMC/latest/ATEL/load.py" this.api = "https://ddss70885k.execute-api.us-west-1.amazonaws.com/Prod" this.atel = "https://01ixzg9ifh.execute-api.us-west-1.amazonaws.com/Prod" PADX = 10 # formatting def plugin_start3(plugin_dir): check_version() return 'ATEL' def plugin_prefs(parent, cmdr, is_beta): frame = nb.Frame(parent)
client_socket.send(bytes(msg, "utf8")) if msg == "{quit}": client_socket.close() top.quit() def on_closing(event=None): my_msg.set("{quit}") send() top = tkinter.Tk() top.title("Chatter") messages_frame = tkinter.Frame(top) my_msg = tkinter.StringVar() my_msg.set("") scrollbar = tkinter.Scrollbar(messages_frame) msg_list = tkinter.Listbox(messages_frame, height=30, width=100, yscrollcommand=scrollbar.set) scrollbar.pack(side=tkinter.RIGHT, fill=tkinter.Y) msg_list.pack(side=tkinter.LEFT, fill=tkinter.BOTH) msg_list.pack() messages_frame.pack() entry_field = tkinter.Entry(top, textvariable=my_msg) entry_field.bind("<Return>", send) entry_field.pack() send_button = tkinter.Button(top, text="Send", command=send) send_button.pack() top.protocol("WM_DELETE_WINDOW", on_closing)
except EOFError: messagebox.showerror("Error", "EOF Error") except: messagebox.showerror("Error", "Error Occured") ############################################################################################################## ############################################################################################################## ############################################################################################################## ############################################################################################################## ############################################################################################################## # Changing our Label ttk.Label(win, text="Enter a keyword to search:").grid(column=2, row=2) # Adding a Textbox Entry widget name = tk.StringVar() nameEntered = ttk.Entry(win, width=40, textvariable=name) nameEntered.grid(column=2, row=4) ############################################################################################################## ############################################################################################################## ############################################################################################################## ############################################################################################################## ############################################################################################################## def toggle(*_): if name.get(): action1['state'] = 'normal' else: action1['state'] = 'disabled'
# LabelFrame using tab1 as the parent mighty = ttk.LabelFrame(tab1, text=' Mighty Python ') mighty.grid(column=0, row=0, padx=8, pady=4) # Modify adding a Label using mighty as the parent instead of win a_label = ttk.Label(mighty, text="Enter a name:") a_label.grid(column=0, row=0, sticky='W') # Modified Button Click Function def click_me(): action.configure(text='Hello ' + name.get() + ' ' + number_chosen.get()) # Adding a Textbox Entry widget name = tk.StringVar() name_entered = ttk.Entry(mighty, width=12, textvariable=name) name_entered.grid(column=0, row=1, sticky='W') # align left/West # Adding a Button action = ttk.Button(mighty, text="Click Me!", command=click_me) action.grid(column=2, row=1) ttk.Label(mighty, text="Choose a number:").grid(column=1, row=0) number = tk.StringVar() number_chosen = ttk.Combobox(mighty, width=12, textvariable=number, state='readonly') number_chosen['values'] = (1, 2, 4, 42, 100) number_chosen.grid(column=1, row=1)
def __init__(self, parent, root): super().__init__(parent) topic = tk.Label(self, text='輸入收支', font=LARGE_FONT) topic.pack(pady=20) # 上下留空間 # 日期 date_topic = tk.Label(self, text='*選擇日期(年月日):', font=SMALL_FONT).pack() year_box = ttk.Combobox(self) year_box['values'] = tuple(year_list) year_box.pack() month_box = ttk.Combobox(self) month_box['values'] = tuple(month_list) month_box.pack() day_box = ttk.Combobox(self) day_box['values'] = tuple(day_list) day_box.pack() # 收或支多少、取得類別(有互動) space1 = tk.Label(self, text='').pack() money_topic = tk.Label(self, text='*金額:', font=SMALL_FONT).pack() radioValue = tk.IntVar() income_box = tk.Radiobutton(self, text='收入', font=SMALLER_FONT, variable=radioValue, value=0).pack() expense_box = tk.Radiobutton(self, text='支出', font=SMALLER_FONT, variable=radioValue, value=1).pack() amount_var = tk.StringVar() amount_box = tk.Entry(self, textvariable=amount_var, bd=1).pack() # bd = 邊框 # 類別 space2 = tk.Label(self, text='').pack() sort_topic = tk.Label(self, text='*主分類:', font=SMALL_FONT).pack() sort_box = ttk.Combobox(self) sort_box['values'] = tuple(sort) sort_box.pack() #子類別 space13 = tk.Label(self, text='').pack() small_sort_topic = tk.Label(self, text='*子分類:', font = SMALL_FONT).pack() small_sort_box = ttk.Combobox(self) small_sort_box['values'] = tuple(small_sort) small_sort_box.pack() # 飲食類別 space12 = tk.Label(self, text='').pack() food_topic = tk.Label(self, text='飲食類別:', font=SMALL_FONT).pack() food_box = ttk.Combobox(self) food_box['values'] = tuple(food_list) food_box.pack() # 金融方式 space3 = tk.Label(self, text='').pack() way_topic = tk.Label(self, text='*方式:', font=SMALL_FONT).pack() way_box = ttk.Combobox(self) way_box['values'] = tuple(way_list) way_box.pack() # 備註 space4 = tk.Label(self, text='').pack() btw_topic = tk.Label(self, text='備註:', font=SMALL_FONT).pack() btw_var = tk.StringVar() btw = tk.Entry(self, textvariable=btw_var, bd=1).pack() def confirm_everything_func(): # =0:正確、=-1:錯誤 def confirm_date_func(): test_temp = 0 if (year_box.get()== '') or (month_box.get()=='') or (day_box.get()==''): test_temp = -1 if month_box.get() in the_thirties: if day_box.get() == '31': test_temp = -1 elif month_box.get() == 'Feb': if (int(year_box.get()) == 2100) or (int(year_box.get())%4 != 0): if int(day_box.get()) > 28: test_temp = -1 elif int(year_box.get())%4 == 0: if int(day_box.get()) > 29: test_temp = -1 return test_temp def confirm_amount_func(): test_temp = 0 if (amount_var.get()).isdigit() == False: test_temp = -1 elif int(amount_var.get()) <= 0: test_temp = -1 return test_temp def confirm_sort_func(): test_temp = 0 if sort_box.get() == '': test_temp = -1 if sort_box.get() == '-----------收入-----------': test_temp = -1 if sort_box.get() == '-----------支出-----------': test_temp = -1 return test_temp def confirm_small_sort_func(): test_temp = 0 if radioValue.get() == 0 and small_sort_box.get() != '收入': test_temp = -1 if small_sort_box.get() == '--------------------------': test_temp = -1 if (sort_box.get() in out_sort) and (small_sort_box.get() not in sort_dict_simple[sort_box.get()]): test_temp = -1 return test_temp def confirm_food_func(): test_temp = 0 if (sort_box.get() == '食品酒水') and (food_box.get() == ''): test_temp = -1 elif (sort_box.get() != '食品酒水') and (food_box.get() != '無 / 不適用'): test_temp = -1 return test_temp def confirm_inex_sort_match_func(): test_temp = 0 if radioValue.get() == 0: if sort_box.get() not in in_sort: test_temp = -1 if radioValue.get() == 1: if sort_box.get() not in out_sort: test_temp = -1 return test_temp def confirm_way_func(): test_temp = 0 if way_box.get() == '': test_temp = -1 return test_temp error = 0 # 檢測各項是否有效。若無效,按確認輸入不會收取值 error += confirm_date_func() error += confirm_amount_func() error += confirm_sort_func() error += confirm_small_sort_func() error += confirm_food_func() error += confirm_inex_sort_match_func() error += confirm_way_func() if error != 0: tkinter.messagebox.showinfo('錯誤','有什麼沒寫或寫錯囉!') elif error ==0: tkinter.messagebox.showinfo('已輸入','已輸入') in_ex = '' if radioValue.get() == 0: in_ex = 'Income' elif radioValue.get() == 1: in_ex = 'Expense' if food_box.get() == '無 / 不適用': food_number = 16 else: food_number = pure_food_number_list[pure_food_list.index(food_box.get())] if month_list.index(month_box.get())+1<10 and int(day_box.get())<10: date_str = year_box.get()+'-0'+str(month_list.index(month_box.get())+1)+'-0'+day_box.get() elif month_list.index(month_box.get())+1<10 and int(day_box.get())>=10: date_str = year_box.get()+'-0'+str(month_list.index(month_box.get())+1)+'-'+day_box.get() elif month_list.index(month_box.get())+1>=10 and int(day_box.get())<10: date_str = year_box.get()+'-'+str(month_list.index(month_box.get())+1)+'-0'+day_box.get() elif month_list.index(month_box.get())+1>=10 and int(day_box.get())>=10: date_str = year_box.get()+'-'+str(month_list.index(month_box.get())+1)+'-'+day_box.get() way_number = way_number_list[way_list.index(way_box.get())] if small_sort_box.get() == '收入': small_or_in_sort_number = in_sort_number_list[in_sort.index(sort_box.get())] else: small_or_in_sort_number = pure_small_sort_number[pure_small_sort.index(small_sort_box.get())] r = [in_ex, btw_var.get(), food_number, date_str, int(amount_var.get()),way_number, small_or_in_sort_number] store = db.Entry() timenow = dt.strptime(dt.now().isoformat(), '%Y-%m-%dT%H:%M:%S.%f') # YYYY-MM-DD HH:MM:SS.SSS in_ex, description, cui_id, ymd, price, method, id = r[0], r[1], r[2], r[3], r[4], r[5], r[6] store.add_entry(in_ex, description, cui_id, ymd, price, method, timenow, id) # 完成 space5 = tk.Label(self, text='').pack() confirm_everything_button = tk.Button(self, text='確認輸入', font=SMALL_FONT, fg='red', command=confirm_everything_func).pack() back = tk.Button(self, text='返回', font=SMALL_FONT, command=lambda: root.show_frame(StartPage)).place(x=40,y=590)
import tkinter as tk import tkinter.messagebox window = tk.Tk() window.title("注册登陆页面") window.geometry("500x400") canvas = tk.Canvas(window, height=300, width=500) #image_file = tk.PhotoImage(file="welcome.gif") #image = canvas.create_image(0, 0, anchor='nw', image=image_file) canvas.pack(side='top') tk.Label(window, text='User name:').place(x=50, y=200) tk.Label(window, text='Password:'******'请输入用户名') var_usr_pwd = tk.StringVar() #var_usr_pwd.set('请输入密码') entry_usr_name = tk.Entry(window, textvariable=var_usr_name) entry_usr_name.place(x=160, y=200) entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*') entry_usr_pwd.place(x=160, y=250) def usr_login(): usr_name = var_usr_name.get() usr_pwd = var_usr_pwd.get()
def __init__(self, arg): self.Email = arg self.up_data = tk.Toplevel() self.up_data.title('Atualizar Dados') self.up_data.iconbitmap("book.ico") self.up_data.geometry('380x350+450+50') self.up_data['bg'] = 'white' tk.Label(self.up_data, text='Atualizar seus dados', font='Ariel 15 bold', fg='#66ff66', bg='white').grid(row=0, column=0, columnspan=2, sticky=tk.W + tk.E, pady=20, padx=80) tk.Label(self.up_data, text='Nome', font='Ariel 12 bold', fg='#66ff66', bg='white').grid(row=1, column=0, padx=5, pady=5) tk.Label(self.up_data, text='CPF', font='Ariel 12 bold', fg='#66ff66', bg='white').grid(row=2, column=0, padx=5, pady=5) tk.Label(self.up_data, text='RG', font='Ariel 12 bold', fg='#66ff66', bg='white').grid(row=3, column=0, padx=5, pady=5) tk.Label(self.up_data, text='Endereço', font='Ariel 12 bold', fg='#66ff66', bg='white').grid(row=4, column=0, padx=5, pady=5) self.name_var = tk.StringVar(self.up_data, value="") self.name_entry = ttk.Entry(self.up_data, width=30, textvariable=self.name_var) self.name_entry.grid(row=1, column=1) self.cpf_var = tk.StringVar(self.up_data, value="") self.cpf_entry = ttk.Entry(self.up_data, width=30, textvariable=self.cpf_var) self.cpf_entry.grid(row=2, column=1) self.rg_var = tk.StringVar(self.up_data, value="") self.rg_entry = ttk.Entry(self.up_data, width=30, textvariable=self.rg_var) self.rg_entry.grid(row=3, column=1) self.address_var = tk.StringVar(self.up_data, value="") self.address_entry = ttk.Entry(self.up_data, width=30, textvariable=self.address_var) self.address_entry.grid(row=4, column=1) res = self.search_db() self.name_var.set(res[0]['Nome']) self.cpf_var.set(res[0]['CPF']) self.rg_var.set(res[0]['RG']) self.address_var.set(res[0]['Endereco']) tk.Button(self.up_data, width=10, text='Editar', bg='#66ff66', fg='white', font='Avalon 13', bd=2, relief='ridge', activeforeground='#66ff66', activebackground='white', cursor="hand2", command=self.update).grid(row=5, column=0, columnspan=2, pady=30) self.up_data.mainloop()
shuffle_json = params['shuffle'] int_plus = params['int_plus'] int_subtract = params['int_subtract'] int_multiply = params['int_multiply'] int_divide = params['int_divide'] #initializing windows win = tk.Tk() win.title('小学生算术题生成器 - Yme') win.geometry('800x800+200+50') tk.Label(win, text='算术题生成器', font=('黑体', 32)).pack() #save file settings frame_fn = tk.Frame(win) frame_fn.pack(side=tk.TOP) filename = tk.StringVar() ansname = tk.StringVar() timesave = tk.BooleanVar() timesave.set(False) filename_label = tk.Label(frame_fn, text='将问题集保存到:') ansname_label = tk.Label(frame_fn, text='将答案保存到:') filename_entry = tk.Entry(frame_fn, textvariable=filename, width=40) ansname_entry = tk.Entry(frame_fn, textvariable=ansname, width=40) timesave_check = tk.Checkbutton(frame_fn, text='按时间保存', variable=timesave) timesave_label = tk.Label(frame_fn, text='勾选此项后,命名格式为默认名+时间') filename_entry.insert(tk.INSERT, filename_json) ansname_entry.insert(tk.INSERT, ansname_json) filename_label.grid(row=0, column=0) filename_entry.grid(row=0, column=1) timesave_check.grid(row=0, column=2) timesave_label.grid(row=1, column=2)
def __init__(self, root): self.root = root self.root.geometry("1050x600") self.mainframe = tk.Frame(self.root, padx=20, pady=20) self.mainframe.pack(fill=tk.BOTH, expand=True) self.entry_frame = tk.Frame(master=self.mainframe, padx=5, pady=5) self.entry_frame.pack(anchor="nw") data_dictionary_label = tk.Label(master=self.entry_frame, text="Data Dictionary: ", width=12) data_dictionary_label.grid(row=0, column=0) self.data_dictionary_path = tk.StringVar() data_dictionary_path_entry = tk.Entry( master=self.entry_frame, width=77, textvariable=self.data_dictionary_path, disabledbackground="white") data_dictionary_path_entry.grid(row=0, column=1) data_dictionary_path_entry.configure(state="disabled") load_btn = ttk.Button(master=self.entry_frame, text="Load", command=self.load_dd) load_btn.grid(row=0, column=2) empty_label = tk.Label(master=self.entry_frame, text="") empty_label.grid(row=1, column=0) text_box_label = tk.Label(master=self.entry_frame, text="Fix Strings: ") text_box_label.grid(row=2, column=0, sticky="n") load_strings_btn = ttk.Button(master=self.entry_frame, text="Import", command=self.load_fix_file) load_strings_btn.grid(row=2, column=2, sticky="n") self.text_box = ScrolledText(master=self.entry_frame, width=100, height=10, wrap="none") self.text_box.grid(row=2, column=1) button_pane = tk.Frame(master=self.entry_frame) button_pane.grid(row=3, column=1) clear_btn = ttk.Button(master=button_pane, text="Clear", command=self.clear) clear_btn.pack(side=tk.LEFT) parse_btn = ttk.Button(master=button_pane, text="Parse", command=self.parse) parse_btn.pack(side=tk.LEFT) search_pane = tk.Frame(master=self.mainframe) search_pane.pack() self.search_str = tk.StringVar() search_entry = tk.Entry(master=search_pane, width=50, textvariable=self.search_str) search_entry.pack(side=tk.LEFT) search_btn = ttk.Button(master=search_pane, text="Search", command=self.search) search_btn.pack(side=tk.LEFT) reset_btn = ttk.Button(master=search_pane, text="Reset", command=self.reset_search) reset_btn.pack(side=tk.LEFT) self.output_notebook = ttk.Notebook(master=self.mainframe) self.output_notebook.pack(fill=tk.BOTH, expand=True) self.text_widget_list = []
return next_card def deal_dealer(): deal_card(dealer_card_frame) def deal_player(): deal_card(player_card_frame) # Set up the screen and frames for the dealer and player mainWindow.title("Black Jack") mainWindow.geometry("640x480") result_text = tkinter.StringVar() result = tkinter.Label(mainWindow, textvariable=result_text) result.grid(row=0, column=0, columnspan=3) card_frame = tkinter.Frame(mainWindow, relief="sunken", borderwidth=1, background="green") card_frame.grid(row=1, column=0, sticky="ew", columnspan=3, rowspan=2) dealer_score_label = tkinter.IntVar() tkinter.Label(card_frame, text="Dealer", background="green", fg='white').grid(row=0, column=0) tkinter.Label(card_frame, textvariable=dealer_score_label, background="green", fg="white").grid(row=1, column=0) # embeded frame to hold the card images. dealer_card_frame = tkinter.Frame(card_frame, background="green") dealer_card_frame.grid(row=0, column=1, stick="ew", rowspan=2) player_score_label = tkinter.IntVar() tkinter.Label(card_frame, text="Player", background="green", fg="white").grid(row=2, column=0)
def _setup_widgets(self, frame, field_size, px_per_ft): top = tk.Frame(frame) top.grid(column=0, row=0) bottom = tk.Frame(frame) bottom.grid(column=0, row=1) self.field = RobotField(frame, self.manager, field_size, px_per_ft) self.field.grid(column=1, row=0, rowspan=2) # status bar self.status = tk.Label(frame, bd=1, relief=tk.SUNKEN, anchor=tk.E) self.status.grid(column=0, row=2, columnspan=2, sticky=tk.W + tk.E) # analog slot = tk.LabelFrame(top, text='Analog') self.analog = [] for i in range(1, 9): label = tk.Label(slot, text=str(i - 1)) label.grid(column=0, row=i) vw = ValueWidget(slot, clickable=True, minval=-10.0, maxval=10.0) vw.grid(column=1, row=i) self.analog.append(vw) slot.pack(side=tk.LEFT, fill=tk.Y, padx=5) # digital slot = tk.LabelFrame(top, text='Digital') label = tk.Label(slot, text='PWM') label.grid(column=0, columnspan=4, row=0) self.pwm = [] for i in range(len(hal_data['pwm'])): c = i // 10 label = tk.Label(slot, text=str(i)) label.grid(column=0 + 2 * c, row=1 + i % 10) vw = ValueWidget(slot) vw.grid(column=1 + 2 * c, row=1 + i % 10) self.pwm.append(vw) label = tk.Label(slot, text='Digital I/O') label.grid(column=4, columnspan=6, row=0) self.dio = [] for i in range(len(hal_data['dio'])): c = i // 9 label = tk.Label(slot, text=str(i)) label.grid(column=4 + c * 2, row=1 + i % 9) pi = PanelIndicator(slot, clickable=True) pi.grid(column=5 + c * 2, row=1 + i % 9) self.dio.append(pi) label = tk.Label(slot, text='Relay') label.grid(column=10, columnspan=2, row=0, padx=5) self.relays = [] for i in range(len(hal_data['relay'])): label = tk.Label(slot, text=str(i)) label.grid(column=10, row=1 + i, sticky=tk.E) pi = PanelIndicator(slot) pi.grid(column=11, row=1 + i) self.relays.append(pi) slot.pack(side=tk.LEFT, fill=tk.Y, padx=5) csfm = tk.Frame(top) # solenoid slot = tk.LabelFrame(csfm, text='Solenoid') self.solenoids = [] for i in range(len(hal_data['solenoid'])): label = tk.Label(slot, text=str(i)) c = int(i / 2) * 2 r = i % 2 label.grid(column=0 + c, row=r) pi = PanelIndicator(slot) pi.grid(column=1 + c, row=r) self.solenoids.append(pi) slot.pack(side=tk.TOP, fill=tk.BOTH, padx=5) # CAN self.can_slot = tk.LabelFrame(csfm, text='CAN') self.can_slot.pack(side=tk.LEFT, fill=tk.BOTH, expand=1, padx=5) self.can = {} csfm.pack(side=tk.LEFT, fill=tk.Y) # joysticks slot = tk.LabelFrame(bottom, text='Joysticks') self.joysticks = [] for i in range(4): axes = [] buttons = [] col = 1 + i * 3 label = tk.Label(slot, text='Stick %s' % i) label.grid(column=col, columnspan=3, row=0) for j, t in enumerate(['X', 'Y', 'Z', 'T']): label = tk.Label(slot, text=t) label.grid(column=col, row=j + 1) vw = ValueWidget(slot, clickable=True, default=0.0) vw.grid(column=col + 1, row=j + 1, columnspan=2) axes.append(vw) for j in range(1, 11): var = tk.IntVar() ck = tk.Checkbutton(slot, text=str(j), variable=var) ck.grid(column=col + 1 + (1 - j % 2), row=5 + int((j - 1) / 2)) buttons.append((ck, var)) if j == 1: Tooltip.create(ck, 'Trigger') elif j == 2: Tooltip.create(ck, 'Top') self.joysticks.append((axes, buttons)) slot.pack(side=tk.LEFT, fill=tk.Y, padx=5) ctrl_frame = tk.Frame(bottom) # timing control timing_control = tk.LabelFrame(ctrl_frame, text='Time') #self. def _set_realtime(): if realtime_mode.get() == 0: step_button.pack_forget() step_entry.pack_forget() self.on_pause(False) else: step_button.pack(fill=tk.X) step_entry.pack() self.on_pause(True) realtime_mode = tk.IntVar() button = tk.Radiobutton(timing_control, text='Run', variable=realtime_mode, value=0, command=_set_realtime) button.pack(fill=tk.X) button = tk.Radiobutton(timing_control, text='Pause', variable=realtime_mode, value=1, command=_set_realtime) button.pack(fill=tk.X) step_button = tk.Button(timing_control, text='Step', command=self.on_step_time) self.step_entry = tk.StringVar() self.step_entry.set("0.025") step_entry = tk.Entry(timing_control, width=6, textvariable=self.step_entry) Tooltip.create(step_button, 'Click this to increment time by the step value') Tooltip.create(step_entry, 'Time to step (in seconds)') realtime_mode.set(0) timing_control.pack(side=tk.TOP, fill=tk.BOTH, expand=1) # simulation control sim = tk.LabelFrame(ctrl_frame, text='Robot') self.state_buttons = [] self.mode = tk.IntVar() def _set_mode(): self.manager.set_mode(self.mode.get()) button = tk.Radiobutton(sim, text='Disabled', variable=self.mode, \ value=self.manager.MODE_DISABLED, command=_set_mode) button.pack(fill=tk.X) self.state_buttons.append(button) button = tk.Radiobutton(sim, text='Autonomous', variable=self.mode, \ value=self.manager.MODE_AUTONOMOUS, command=_set_mode) button.pack(fill=tk.X) self.state_buttons.append(button) button = tk.Radiobutton(sim, text='Teleoperated', variable=self.mode, \ value=self.manager.MODE_OPERATOR_CONTROL, command=_set_mode) button.pack(fill=tk.X) self.state_buttons.append(button) button = tk.Radiobutton(sim, text='Test', variable=self.mode, \ value=self.manager.MODE_TEST, command=_set_mode) button.pack(fill=tk.X) self.state_buttons.append(button) self.robot_dead = tk.Label(sim, text='Robot died!', fg='red') sim.pack(side=tk.TOP, fill=tk.BOTH, expand=1) ctrl_frame.pack(side=tk.LEFT, fill=tk.Y)
def update_display(self): try: if self._update_key == True: for i in self.players: if i.active == False: self.background.itemconfig(i.player_active, fill='#888888') else: self.background.itemconfig(i.player_active, fill='white') if i.money == 0 and i.all_in == False: self.background.itemconfig(i.player_active, fill='#555555') self.background.itemconfig(i.player_hand, text=f"{i.hand}") self.background.itemconfig(i.player_money, text=f"{i.money} $") self.background.itemconfig(i.player_bet, text=f"{i.current_bet}") if i.all_in == True: self.background.itemconfig(i.player_action, text='All-in') else: self.background.itemconfig(i.player_action, text=f'{i.last_move}') if i.dealer == False and i.small_blind == False and i.big_blind == False: self.background.itemconfig(i.player_button, fill='', width=0) self.background.itemconfig(i.player_button_name, text=f"") else: if i.dealer == True: self.background.itemconfig(i.player_button, fill='white', width=1) self.background.itemconfig(i.player_button_name, text=f"DE", font=(None, 10, 'bold'), fill='red') if i.small_blind == True: self.background.itemconfig(i.player_button, fill='white', width=1) self.background.itemconfig(i.player_button_name, text=f"SB", font=(None, 10, 'bold'), fill='black') if i.big_blind == True: self.background.itemconfig(i.player_button, fill='white', width=1) self.background.itemconfig(i.player_button_name, text=f"BB", font=(None, 10, 'bold'), fill='black') try: for i in self.pot_table: i.grid_forget() except: self._log_message('Impossible de pot_table.grid_forget()', False) self.pot_table = list() if len(self.board.pots) > 0: for i in range(len(self.board.pots)): slot = tk.Entry( self.pots, textvariable=tk.StringVar(value=[ x.id for x in self.board.pots[i]['player_list'] ])) slot.grid(row=0, column=i) slot2 = tk.Entry( self.pots, textvariable=tk.StringVar( value=self.board.pots[i]['value'])) slot2.grid(row=1, column=i) self.pot_table.append(slot) self.pot_table.append(slot2) self.background.itemconfig( self.community_cards, text=f"{self.board.community_cards}") self.background.itemconfig( self.pot, text= f"Current bid : {self.board.current_bid}\n{[x.id for x in self.board.active_pot['player_list']]}\n{self.board.active_pot['value']}" ) self.root.after(500, self.update_display) except: print("Fenêtre introuvable")
def __init__(self, master): # Graphical User Interface ---------------------------------------------- self.s = ttk.Style() self.s.configure('TLabel', foreground='Black', background='white') self.s.configure('TButton', foreground='black', background='white') self.s.configure('about.TLabel', forground='black', background='#f2d211') self.s.configure('TEntry', foreground='Blue') self.s.configure('TCheckbutton', foreground='black', background='white') self.s.configure('TMenubutton', background='white', foreground='black', width=25) self.s.configure('TLabelframe', foreground='black', background='white') self.s.configure('TFrame', background='white') # Window properties ----------------------------------------------------- self.master = master master.wm_title("LSFR for Python") master.resizable(0, 0) # ----------------------------------------------------------------------- # Variables ------------------------------------------------------------- self.option = tk.StringVar(master) # default fit type self.option.set(fitsTypes[0]) # default fit type self.gridLineCheckCmd = tk.IntVar() # Gridline check command self.gridLineCheckCmd.set(1) self.residualsCheckCmd = tk.IntVar() # resiuduals check command self.residualsCheckCmd.set(1) self.parametersCheckCmd = tk.IntVar() # parametres check command self.parametersCheckCmd.set(1) self.xMinAutoCheckCmd = tk.IntVar() # X min check command self.xMinAutoCheckCmd.set(1) self.xMaxAutoCheckCmd = tk.IntVar() # X max check command self.xMaxAutoCheckCmd.set(1) self.yMinAutoCheckCmd = tk.IntVar() # Y min check command self.yMinAutoCheckCmd.set(1) self.yMaxAutoCheckCmd = tk.IntVar() # Y max check command self.yMaxAutoCheckCmd.set(1) self.ignoreFirstLineCmd = tk.IntVar() # Ignore first line command self.ignoreFirstLineCmd.set(0) self.marker_option = tk.StringVar(master) # default marker option self.marker_option.set('x') # default marker option self.line_option = tk.StringVar(master) # default linestyle self.line_option.set('-') # default linestyle # ----------------------------------------------------------------------- # Frames ---------------------------------------------------------------- self.frame0 = tk.Frame(master, bd=2, bg='white') self.frame1 = tk.LabelFrame(master, text=" Plot Options ", background='white') self.xAxisLimits = tk.LabelFrame(self.frame1, text=" X-Axis Limits ", bg='white') self.yAxisLimits = tk.LabelFrame(self.frame1, text=" Y-Axis Limits ", background='white') self.frame2 = tk.LabelFrame(master, text=" Data Options ", background='white') self.frame3 = tk.LabelFrame(master, text=" File Preview ", background='white') self.frame4 = ttk.Frame(master) # ----------------------------------------------------------------------- # Frame grid positions -------------------------------------------------- self.frame0.grid(row=0, columnspan=2, sticky='NSEW') self.frame1.grid(row=1, columnspan=2, sticky='NSEW', padx=5, pady=5, ipadx=5, ipady=15) self.xAxisLimits.grid(row=0, column=3, padx=5, pady=5, ipadx=5, ipady=5, sticky='E') self.yAxisLimits.grid(row=1, rowspan=3, column=3, padx=5, pady=5, ipadx=5, ipady=5) self.frame2.grid(row=2, rowspan=3, column=0, sticky='NESW', padx=5, pady=5, ipadx=1, ipady=5) self.frame3.grid(row=2, rowspan=5, column=1, sticky='NESW', padx=5, pady=5, ipadx=0, ipady=5) self.frame4.grid(row=6, column=0, sticky='NESW', padx=5, pady=5, ipadx=0, ipady=5) # ----------------------------------------------------------------------- # Frame 0 widgets ------------------------------------------------------ self.about = ttk.Button(self.frame0, text=" About LSFR ") self.about.bind("<Button-1>", self.aboutLSFR) # ----------------------------------------------------------------------- # Frame 0 widgets positions -------------------------------------------- self.about.grid(row=0, padx=7) # ----------------------------------------------------------------------- # Frame 1 widgets ------------------------------------------------------ self.fitType = ttk.Label(self.frame1, text="Fit type: ") self.plotTitle = ttk.Label(self.frame1, text="Plot title: ") self.xLabel = ttk.Label(self.frame1, text="X-axis label: ") self.yLabel = ttk.Label(self.frame1, text="Y-axis label: ") self.fitTypeChoice = ttk.OptionMenu(self.frame1, self.option, '', fitsTypes[0], fitsTypes[1], fitsTypes[2]) self.fitTypeChoice.configure(width=24) self.plotTitleEntry = ttk.Entry(self.frame1) self.xLabelEntry = ttk.Entry(self.frame1) self.yLabelEntry = ttk.Entry(self.frame1) self.plotTitleEntry.insert(0, string='Plot of my Data') self.xLabelEntry.insert(0, string='Abscissa') self.yLabelEntry.insert(0, string='Ordinate') self.markerLabel = ttk.Label(self.frame1, text="Marker style: ") self.markerOption = ttk.OptionMenu(self.frame1, self.marker_option, '', 'None', '.', 'o', 'x', 'o', '*', '+') self.markerOption.configure(width=5) self.lineStyleLabel = ttk.Label(self.frame1, text="Line style: ") self.lineOption = ttk.OptionMenu(self.frame1, self.line_option, '', '-', '--', '-.', ':', 'None') self.lineOption.configure(width=5) self.gridLinesCheck = ttk.Checkbutton(self.frame1, text='Grid lines', variable=self.gridLineCheckCmd, onvalue=1, offvalue=0) self.residualsCheck = ttk.Checkbutton(self.frame1, text='Show residual plot', variable=self.residualsCheckCmd, onvalue=1, offvalue=0) self.showParametersCheck = ttk.Checkbutton( self.frame1, text='Show fitted Parameters', variable=self.parametersCheckCmd, onvalue=1, offvalue=0) self.frame1Spacer = ttk.Label(self.frame1, text=" ") # ----------------------------------------------------------------------- # Frame 1 widgets positions -------------------------------------------- self.fitType.grid(row=0, column=0, sticky='E', padx=23) self.fitTypeChoice.grid(row=0, column=1, sticky='EW') self.markerLabel.grid(row=1, column=0, sticky='E') self.markerOption.grid(row=1, column=1, sticky='W') self.lineStyleLabel.grid(row=2, column=0, sticky='E') self.lineOption.grid(row=2, column=1, sticky='W') self.plotTitle.grid(row=3, column=0, sticky='E', pady=3) self.plotTitleEntry.grid(row=3, column=1, sticky='W') self.xLabel.grid(row=4, column=0, sticky='E', pady=3) self.xLabelEntry.grid(row=4, column=1, sticky='W') self.yLabel.grid(row=5, column=0, sticky='E', pady=3) self.yLabelEntry.grid(row=5, column=1, sticky='W') self.gridLinesCheck.grid(row=6, column=1, sticky='W') self.residualsCheck.grid(row=7, column=1, sticky='W') self.showParametersCheck.grid(row=8, column=1, sticky='W') self.frame1Spacer.grid(row=0, column=2) # ----------------------------------------------------------------------- # X-Axis Limit widgets ------------------------------------------------- self.xMin = ttk.Label(self.xAxisLimits, text='Min') self.xMinEntry = ttk.Entry(self.xAxisLimits, width=7, state='disabled') self.xMinAutoCheck = ttk.Checkbutton(self.xAxisLimits, variable=self.xMinAutoCheckCmd, onvalue=1, offvalue=0, command=self.disablexMinEntry, text='Auto') self.xMax = ttk.Label(self.xAxisLimits, text='Max') self.xMaxEntry = ttk.Entry(self.xAxisLimits, width=7, state='disabled') self.xMaxAutoCheck = ttk.Checkbutton(self.xAxisLimits, variable=self.xMaxAutoCheckCmd, onvalue=1, offvalue=0, command=self.disablexMaxEntry, text='Auto') # ----------------------------------------------------------------------- # X-Axis Limit widgets positions ---------------------------------------- self.xMin.grid(row=0, column=0, sticky='E', pady=5) self.xMinEntry.grid(row=0, column=1, sticky='W', pady=5) self.xMinAutoCheck.grid(row=0, column=2, padx=1, ipadx=1, pady=5) self.xMax.grid(row=1, column=0, sticky='E', pady=5) self.xMaxEntry.grid(row=1, column=1, sticky='W', pady=5) self.xMaxAutoCheck.grid(row=1, column=2, padx=1, ipadx=1, pady=5) # ----------------------------------------------------------------------- # Y-Axis Limit widgets ------------------------------------------------- self.yMin = ttk.Label(self.yAxisLimits, text='Min') self.yMinEntry = ttk.Entry(self.yAxisLimits, width=7, state='disable') self.yMinAutoCheck = ttk.Checkbutton(self.yAxisLimits, variable=self.yMinAutoCheckCmd, onvalue=1, offvalue=0, command=self.disableyMinEntry, text="Auto") self.yMax = ttk.Label(self.yAxisLimits, text='Max') self.yMaxEntry = ttk.Entry(self.yAxisLimits, width=7, state='disable') self.yMaxAutoCheck = ttk.Checkbutton(self.yAxisLimits, variable=self.yMaxAutoCheckCmd, onvalue=1, offvalue=0, command=self.disableyMaxEntry, text="Auto") # ----------------------------------------------------------------------- # Y-Axis Limit widgets positions ---------------------------------------- self.yMin.grid(row=0, column=0, pady=5) self.yMinEntry.grid(row=0, column=1, pady=5) self.yMinAutoCheck.grid(row=0, column=2, padx=1, ipadx=1, pady=5) self.yMax.grid(row=1, column=0, pady=5) self.yMaxEntry.grid(row=1, column=1, pady=5) self.yMaxAutoCheck.grid(row=1, column=2, padx=1, ipadx=1, pady=5) # ----------------------------------------------------------------------- # Frame 2 widgets ------------------------------------------------------ self.loadData = ttk.Button(self.frame2, text=" Load new data... ", command=self.openfile) self.directory = ttk.Label(self.frame2, text="Working directory: ") self.directoryDisplay = ttk.Entry(self.frame2, width=27) self.directoryDisplay.insert(0, string='(no directory selected)') self.directoryDisplay.configure(state='readonly') self.numberOfPoints = ttk.Label(self.frame2, text="Number of data points: ") self.numberOfPointsDisplay = ttk.Label(self.frame2, text="0") self.ignoreFirstLineCheck = ttk.Checkbutton( self.frame2, variable=self.ignoreFirstLineCmd, onvalue=1, offvalue=0, text='Ignore first line') # ----------------------------------------------------------------------- # Frame 2 widgets positions -------------------------------------------- self.directory.grid(row=0, column=0, sticky='E', padx=5, pady=1) self.directoryDisplay.grid(row=0, column=1, sticky='WE', padx=1, pady=1) self.numberOfPoints.grid(row=1, column=0, sticky='E', padx=5, pady=1) self.numberOfPointsDisplay.grid(row=1, column=1, sticky='W', padx=5, pady=1) self.ignoreFirstLineCheck.grid(row=2, column=1, sticky='W', padx=1, pady=1) self.loadData.grid(row=3, column=0, sticky='NESW', padx=5, pady=1, columnspan=2) # ----------------------------------------------------------------------- # Frame 3 widgets ------------------------------------------------------ self.filePreview = tk.Listbox(self.frame3, borderwidth=0, width=40) self.filePreview.insert(1, '(no file loaded)') self.filePreview.configure(state='disable', width='30') # ----------------------------------------------------------------------- # Frame 3 widgets positions -------------------------------------------- self.filePreview.pack(fill='both') # ----------------------------------------------------------------------- # Frame 4 widgets ------------------------------------------------------ self.exit = ttk.Button(self.frame4, text=' Exit ', command=self.destroy, width=4) self.plot = ttk.Button(self.frame4, text=" Plot ", command=self.plot, width=6) self.help = ttk.Button(self.frame4, text=" Help ", command=self.helpwindow, width=4) # ----------------------------------------------------------------------- # Frame 4 widgets positions -------------------------------------------- self.exit.grid(row=0, column=0, sticky='EW', padx=30, pady=5, ipadx=5, ipady=5) self.plot.grid(row=0, column=1, sticky='EW', padx=30, pady=5, ipadx=5, ipady=5) self.help.grid(row=0, column=2, sticky='EW', padx=30, pady=5, ipadx=5, ipady=5)