def create_other_buttons(self): '''Return (frame, others) for testing. Others is a list of value, label pairs. A gridded frame from make_frame is filled with radio buttons. ''' frame = self.make_frame("Direction")[0] var = self.engine.backvar others = [(1, 'Up'), (0, 'Down')] for val, label in others: btn = Radiobutton(frame, anchor="w", variable=var, value=val, text=label) btn.pack(side="left", fill="both") if var.get() == val: btn.select() return frame, others
def __init__(self, parent): Frame.__init__(self, parent) self.observers = [] self.CLASS_NAME = ['Class {0}'.format(i+1) for i in range(MAX_NUMBER_OF_CLASSES)] self.selected_class = IntVar() self.class_buttons = {} for i in range(MAX_NUMBER_OF_CLASSES): class_button = Radiobutton( self, text = self.CLASS_NAME[i], fg = CLASS_COLOR[i], state = 'disabled', variable = self.selected_class, value = i, command = self._on_sample_class_selection) class_button.pack(anchor = 'w', padx=5) self.class_buttons[i] = class_button self.label = Label(self) self.label.pack() self.class_number = DEFAULT_NUMBER_OF_CLASS self.samples = [[]] * MAX_NUMBER_OF_CLASSES self.samples_coordinates = [[]] * MAX_NUMBER_OF_CLASSES self.select_default_class()
class Interface(Frame): """界面操作""" def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.create_widgets() def create_widgets(self): """构建界面""" self.radio_value = IntVar() Label(self, text="网络安全").grid(row=0, column=2, pady=10) # 生成label Label(self, text="用户名").grid(row=3, column=1, pady=10) Label(self, text="密码").grid(row=4, column=1) # 生成用户名和密码输入框 self.name_input = Entry(self) self.name_input.grid(row=3, column=2) self.password = Entry(self) self.password['show'] = '*' self.password.grid(row=4, column=2) self.radio = Radiobutton(self, text="rsa", variable=self.radio_value, padx=20, value=1) self.radio.grid(row=5, column=1) self.radio1 = Radiobutton(self, text="des", variable=self.radio_value, padx=20, value=2) self.radio1.grid(row=6, column=1) self.alert_button = Button(self, text='提交', command=self.submit) self.alert_button.grid(row=7, column=1) def submit(self): """提交处理""" name = self.name_input.get() or 'username' password = self.password.get() or "password" cryption = self.radio_value.get() or "1" # 构造传输的数据 data = name + ',' + password cryption = Crypt() my_socket = Mysocket() # 判断使用des还是rsa if cryption == 2: data = "des" + data need = 8 - (len(data) % 8) while need > 0: data += " " need -= 1 result = cryption.des_encrypt(data) result = "des" + result else: result = cryption.rsa_encrypt(data) result = "rsa" + result result = my_socket.make_connect(result) if result >= 0: tkMessageBox.showinfo('Message', '%s' % '合法用户') else: tkMessageBox.showinfo('Message', '%s' % '非法用户')
def startwindow(self): self.var1 = IntVar() self.textvar = StringVar() self.Label1=Label(self.master, text="Search distance (meters)") self.Label1.grid(row=0, column=0) self.Label2=Label(self.master, textvariable=self.textvar) self.Label2.grid(row=2, column=0) self.rb1 = Radiobutton(self.master, text="5000", variable=self.var1, value=5000, command=self.cb1select) self.rb1.grid(row=1, column=0, sticky=W) self.rb2 = Radiobutton(self.master, text="625", variable=self.var1, value=625, command=self.cb1select) self.rb2.grid(row=1, column=1, sticky=W) self.rb3 = Radiobutton(self.master, text="160", variable=self.var1, value=160, command=self.cb1select) self.rb3.grid(row=1, column=2, sticky=W) self.Button1=Button(self.master, text="ok", command=self.ButtonClick) self.Button1.grid(row=2, column=2)
def addRadioButton(frame, label, value, variable, position, bindEvent=1): button = Radiobutton(frame, text=label, variable=variable, value=value) button.grid(row=0, column=position) if bindEvent: variable.trace("w", calculate) return button
def build_devices_arch(self): #8bits name_checked = self.main.configIDE.config("Board", "board_8", "Pinguino 2550") arch_8 = filter(lambda board:board.arch==8, self.main.pinguinoAPI._boards_) arch_8.sort() frame_left = Frame(self.frame_8b) frame_left.pack(expand=True, fill=BOTH, side=LEFT) frame_right = Frame(self.frame_8b) frame_right.pack(expand=True, fill=BOTH, side=RIGHT) parent = frame_left #left for board in arch_8: if arch_8.index(board) == (len(arch_8) / 2) + 1: parent = frame_right #rigth radio = Radiobutton(parent, text=board.name, anchor="w", width=10, value=board.name, variable=self.dev8_var, command=lambda :self.set_board_name(board.name, "8")) radio.pack(expand=True, fill=X, side=TOP) #radio = QtGui.QRadioButton(self.board_config.groupBox_devices_8) #self.board_config.gridLayout_device_8.addWidget(radio, count, side, 1, 1) #radio.setText(board.name) #radio.setToolTip(board.proc) if name_checked == board.name: radio.select() #self.connect(radio, QtCore.SIGNAL("clicked()"), self.set_board_name(board.name, "8")) #32bits name_checked = self.main.configIDE.config("Board", "board_32", "PIC32 Pinguino OTG") arch_32 = filter(lambda board:board.arch==32, self.main.pinguinoAPI._boards_) arch_32.sort() frame_left0 = Frame(self.frame_32b) frame_left0.pack(expand=True, fill=BOTH, side=LEFT) frame_right0 = Frame(self.frame_32b) frame_right0.pack(expand=True, fill=BOTH, side=RIGHT) parent = frame_left0 #left for board in arch_32: if arch_32.index(board) == (len(arch_32) / 2) + 1: parent = frame_right0 #rigth radio = Radiobutton(parent, text=board.name, anchor="w", width=10, value=board.name, variable=self.dev32_var, command=lambda :self.set_board_name(board.name, "32")) radio.pack(expand=True, fill=X, side=TOP) #radio = QtGui.QRadioButton(self.board_config.groupBox_devices_32) #self.board_config.gridLayout_device_32.addWidget(radio, count, side, 1, 1) #radio.setText(board.name) #radio.setToolTip(board.proc) if name_checked == board.name: radio.select()
def create_radio_buttons(self): # Scale related entries = ['DIATONIC', 'HARMONIC', 'MELODIC', 'PENTATONIC', 'PENTA_MINOR'] self.scale = StringVar() self.scale.set('DIATONIC') self.rb_frame = Frame(self) for e in entries: rb = Radiobutton(self.rb_frame, value=e, text=e, anchor=W, command=self.send_scale, variable=self.scale) rb.grid(row=len(self.rb_frame.winfo_children()), sticky=W) self.rb_frame.grid(column=1, row=len(self.grid_slaves(column=1)), rowspan=3)
def __init__(self, master, size=22, **kw): image = Metro_Radiobutton.image[size] if isinstance(image, basestring): Metro_Radiobutton.image[size] = image = BitmapImage(data=base64.b64decode(image)) selectimage = Metro_Radiobutton.selectimage[size] if isinstance(selectimage, basestring): Metro_Radiobutton.selectimage[size] = selectimage = BitmapImage(data=base64.b64decode(selectimage)) Radiobutton.__init__(self, master, indicatoron=0, selectimage=selectimage, image=image, highlightthickness=0, borderwidth=0, **kw)
def __init__(self,parent,view,lissajou,subjectSig,subjects): self.cursorFrame = Frame(parent) self.selectionFrame = Frame(self.cursorFrame) self.view = view self.lissajou = lissajou self.subjects = subjects self.subjectSig=subjectSig self.amp=IntVar() self.scale_amp=Scale(self.cursorFrame,variable=self.amp, label="Amplitude", orient="horizontal",length=250,from_=0,to=10, sliderlength=50,tickinterval=1,showvalue=0, command=self.update) self.freq=IntVar() self.scale_freq=Scale(self.cursorFrame,variable=self.freq, label="Frequence", orient="horizontal",length=250,from_=0,to=10, sliderlength=50,tickinterval=0,showvalue=0, command=self.update) self.offset=DoubleVar() self.scale_offset=Scale(self.cursorFrame,variable=self.offset, label="Offset", orient="horizontal",length=250,from_=-10.0,to=10.0, sliderlength=50,tickinterval=5,showvalue=0, command=self.update) self.phase=IntVar() self.scale_phase=Scale(self.cursorFrame,variable=self.phase, label="Phase", orient="horizontal",length=250,from_=-90,to=90, sliderlength=10,tickinterval=45,showvalue=0, command=self.update) self.voltVar = DoubleVar() self.voltVar.set(1) self.button1 = Radiobutton(self.selectionFrame, text="1V", variable=self.voltVar, value=1.0*5.0,command =lambda:self.update(None)) self.button1.select() self.button2 = Radiobutton(self.selectionFrame, text="2V", variable=self.voltVar, value=2.0*5.0, command =lambda:self.update(None)) self.button5 = Radiobutton(self.selectionFrame, text="5V", variable=self.voltVar, value=5.0*5.0, command =lambda:self.update(None)) self.isOffsetVar= IntVar() self.isOffset = Checkbutton(self.selectionFrame,text = "Offset",variable = self.isOffsetVar, command =lambda:self.update(None))
def create_other_buttons(self): "Fill frame with buttons tied to other options." f = self.make_frame("Direction") btn = Radiobutton(f, anchor="w", variable=self.engine.backvar, value=1, text="Up") btn.pack(side="left", fill="both") if self.engine.isback(): btn.select() btn = Radiobutton(f, anchor="w", variable=self.engine.backvar, value=0, text="Down") btn.pack(side="left", fill="both") if not self.engine.isback(): btn.select()
def initial(self): iniheader = headersmall(self.frame, text="Initial points sampler:") latin = Radiobutton(self.frame, text="Latin", variable=self.params["initializer"], value="latin", bg=Styles.colours["grey"]) sobol = Radiobutton(self.frame, text="Sobol", variable=self.params["initializer"], value="sobol", bg=Styles.colours["grey"]) uniform = Radiobutton(self.frame, text="Uniform", variable=self.params["initializer"], value="uniform", bg=Styles.colours["grey"]) iniheader.grid(row=4, column=1, sticky=W, columnspan=1) latin.grid(row=5, column=1, pady=0, sticky=W, padx=10) sobol.grid(row=6, column=1, pady=0, sticky=W, padx=10) uniform.grid(row=7, column=1, pady=0, sticky=W, padx=10)
def rec(self): recheader = headersmall(self.frame, text="Recommender:") incumbent = Radiobutton(self.frame, text="Incumbent", variable=self.params["recommender"], value="incumbent", bg=Styles.colours["grey"]) latent = Radiobutton(self.frame, text="Latent", variable=self.params["recommender"], value="latent", bg=Styles.colours["grey"]) observed = Radiobutton(self.frame, text="Observed", variable=self.params["recommender"], value="observed", bg=Styles.colours["grey"]) recheader.grid(row=4, column=0, sticky=W, columnspan=1) incumbent.grid(row=5, column=0, pady=0, sticky=W, padx=10) latent.grid(row=6, column=0, pady=0, sticky=W, padx=10) observed.grid(row=7, column=0, pady=0, sticky=W, padx=10)
def add_screen( self, fr, title ): b = Radiobutton( self.rb_fr, text=title, indicatoron=0, \ variable=self.choice, value=self.count, \ command=lambda: self.display( fr ), padx=10, pady=5 ) b.pack( fill=BOTH, side=self.side ) # ensures the first frame will be # the first selected/enabled if not self.active_fr: fr.pack( fill=BOTH, expand=1 ) self.active_fr = fr self.count += 1 # returns a reference to the newly created # radiobutton (allowing its configuration/destruction) return b
def __init__(self, wname='guippy', master=None): Tkinter.Frame.__init__(self, master) self.master.title(wname) self.radio_value = IntVar() self.radio_values = {'test1': 0, 'test2': 1, 'test3': 2, } self.check_values = {'test1': BooleanVar(), 'test2': BooleanVar(), 'test3': BooleanVar(), } self.option_value = StringVar() self.entry_value = StringVar() self.result_value = StringVar() self.radio_entry = StringVar() self.check_entry = StringVar() # widgets kwds = {'padx':3, 'pady': 3, 'side': Tkinter.LEFT} ff = Frame(self) ff.pack(side=Tkinter.TOP, anchor='w') Button(ff, text='apply ', command=self.apply).pack(**kwds) Button(ff, text='reapply').pack(**kwds) ff = Frame(self) ff.pack(side=Tkinter.TOP, anchor='w') for key, val in sorted(self.radio_values.items()): _r = Radiobutton(ff, text=key, variable=self.radio_value, value=val) _r.pack(**kwds) Entry(ff, textvariable=self.radio_entry).pack(**kwds) ff = Frame(self) ff.pack(side=Tkinter.TOP, anchor='c') for key, val in sorted(self.check_values.items()): _w = Checkbutton(ff, text=key, variable=val) _w.pack(**kwds) Entry(ff, textvariable=self.check_entry).pack(**kwds)
def init(): """初始化页面""" global user, offset, photo, url, buy_house, buy_car, age, height, salary, \ education, company, industry, school, position, satisfy, appearance get_user(offset) image_url = u'{}&quality=85&thumbnail=410y410'.format(user['avatar']) place_image(image_url) photo = Label(master, image=tk_image) photo.place(anchor=u'nw', x=10, y=40) url = Label(master, text=user['url'], font=Font(size=20, weight='bold')) url.place(anchor=u'nw', x=10, y=5) buy_house = Label(master, text=BUY_HOUSE.get(user['house']) or user['house']) buy_house.place(anchor=u'nw', x=490, y=50) buy_car = Label(master, text=BUY_CAR.get(user['car']) or user['car']) buy_car.place(anchor=u'nw', x=490, y=75) age = Label(master, text=user['age']) age.place(anchor=u'nw', x=490, y=100) height = Label(master, text=user['height']) height.place(anchor=u'nw', x=490, y=125) salary = Label(master, text=SALARY.get(user['salary']) or user['salary']) salary.place(anchor=u'nw', x=490, y=150) education = Label(master, text=EDUCATION.get(user['education']) or user['education']) education.place(anchor=u'nw', x=490, y=175) company = Label(master, text=user['company'] if user['company'] else u'--') company.place(anchor=u'nw', x=490, y=200) industry = Label(master, text=INDUSTRY.get(user['industry']) or user['industry']) industry.place(anchor=u'nw', x=490, y=225) school = Label(master, text=user['school'] if user['school'] else u'--') school.place(anchor=u'nw', x=490, y=250) position = Label(master, text=POSITION.get(user['position']) or user['position']) position.place(anchor=u'nw', x=490, y=275) satisfy = IntVar() satisfy.set(int(user.get(u'satisfy', -1))) satisfied = Radiobutton(master, text=u"满意", variable=satisfy, value=1, command=set_satisfy) not_satisfied = Radiobutton(master, text=u"不满意", variable=satisfy, value=0, command=set_satisfy) satisfied.place(anchor=u'nw', x=450, y=10) not_satisfied.place(anchor=u'nw', x=510, y=10) appearance = IntVar() appearance.set(int(user.get(u'appearance', -1))) for i in range(1, 11): score_i = Radiobutton(master, text=str(i), variable=appearance, value=i, command=set_appearance) score_i.place(anchor=u'nw', x=i * 40 - 30, y=460)
def __init__(self,parent,graphics): Frame.__init__(self) self.parent = parent self.graphics = graphics self.config(bg=self.graphics.mainColor) self.selected = "" self.font = tkFont.Font(family="Courier", size=12) #self.color = '#FFFFFF' #Title Label self.outputLabel = Label(self, text="", bg=self.graphics.mainColor) self.outputLabel.grid(row=0,column=0,sticky='ns',padx=6,pady=5) v = IntVar() self.b1 = Radiobutton(self, text="Cash", variable=v, value=1, bg=self.graphics.mainColor, command=lambda: self.cash()) self.b1.grid(row=1,column=0) self.b2 = Radiobutton(self, text="Credit", variable=v, value=2, bg=self.graphics.mainColor, command=lambda: self.credit()) self.b2.grid(row=1,column=1) #Title Label self.creditCardNumberLabel = Label(self, text="Credit Card Number", bg=self.graphics.mainColor) self.creditCardNumberLabel.grid(row=2,column=0,sticky='ns',padx=6,pady=5) #Manual Enter Output self.creditCardNumber = Entry(self,width=20) self.creditCardNumber.grid(row=2,column=1,sticky='ns',padx=6) #Title Label self.nameLabel = Label(self, text="Enter Name", bg=self.graphics.mainColor) self.nameLabel.grid(row=3,column=0,sticky='ns',padx=6,pady=5) #Manual Enter Output self.name = Entry(self,width=20) self.name.grid(row=3,column=1,sticky='ns',padx=6) self.submitButton = Button(self, text="Submit", width=15, command=lambda: self.submit()) self.submitButton.grid(row=4,column=0) self.cancelButton = Button(self, text="Cancel", width=15, command=lambda: self.cancel()) self.cancelButton.grid(row=4,column=1)
def __init__(self,master): root_frame = Frame(master) root_frame.pack() menubar = Menu(master) menufile = Menu(menubar,tearoff=0) menufile.add_command(label="Open") menufile.add_command(label="Save") menubar.add_cascade(label="File",menu=menufile) master.config(menu=menubar) right_frame = Frame(root_frame,bg="white") right_frame.pack(side=RIGHT) self.button = Button(right_frame, text="quit", fg="red", command=root_frame.quit) self.button.pack(side=TOP) MODES = [("3D","rectangle"),("2D","line")] self.mode = StringVar() self.mode.set("line") for text,mode in MODES: b = Radiobutton(right_frame,text=text, variable=self.mode,value=mode) b.pack(anchor=W) self.camera_canvas = Canvas(right_frame,bg="red") self.camera_canvas.bind("<ButtonPress-1>", self.pressed) self.camera_canvas.bind("<B1-Motion>", self.moved) self.camera_canvas.bind("<ButtonRelease-1>", self.released) self.camera_canvas.pack(side=BOTTOM) self.plot_canvas = Canvas(root_frame,width=100,bg="blue") self.plot_canvas.pack(side=LEFT) self.tomogram_canvas = Canvas(root_frame,bg="black") self.tomogram_canvas.pack(side=LEFT)
def create_widgets(self): """构建界面""" self.radio_value = IntVar() Label(self, text="网络安全").grid(row=0, column=2, pady=10) # 生成label Label(self, text="用户名").grid(row=3, column=1, pady=10) Label(self, text="密码").grid(row=4, column=1) # 生成用户名和密码输入框 self.name_input = Entry(self) self.name_input.grid(row=3, column=2) self.password = Entry(self) self.password['show'] = '*' self.password.grid(row=4, column=2) self.radio = Radiobutton(self, text="rsa", variable=self.radio_value, padx=20, value=1) self.radio.grid(row=5, column=1) self.radio1 = Radiobutton(self, text="des", variable=self.radio_value, padx=20, value=2) self.radio1.grid(row=6, column=1) self.alert_button = Button(self, text='提交', command=self.submit) self.alert_button.grid(row=7, column=1)
def crear_widgets(self): self.var = IntVar() self.background_label = Label(self.container, image=self.imagen_fondo) txt = "Selecciona una choza en la que entrar. Ganarás si:\n" txt += "La choza está vacia o si su ocupante es tu aliado, de lo contrario morirás" self.info_label = Label(self.container, text=txt, bg='white') # Creamos un dicionario con las opciones para las imagenes de las chozas r_btn_config = { 'variable': self.var, 'bg': '#8AA54C', 'activebackground': 'green', 'image': self.imagen_choza, 'height': self.alto_choza, 'width': self.ancho_choza, 'command': self.radio_btn_pressed } self.r1 = Radiobutton(self.container, r_btn_config, value=1) self.r2 = Radiobutton(self.container, r_btn_config, value=2) self.r3 = Radiobutton(self.container, r_btn_config, value=3) self.r4 = Radiobutton(self.container, r_btn_config, value=4) self.r5 = Radiobutton(self.container, r_btn_config, value=5)
def options_output(self): """ Output is selected by the user from options provided via radiobuttons. Options are provided for selecting current through any element or voltage across any element. """ self.v = StringVar() Label(self.root, text="Options for output").grid(row=0, column=0, sticky='news') for ind in range(len(self.element_list)): Radiobutton(self.root, text="Voltage across " + self.element_list[ind], variable=self.v, value="V:" + self.element_list[ind]).grid(row=ind+1, column=0, sticky=tk.W, pady=4) Radiobutton(self.root, text="Current through " + self.element_list[ind], variable=self.v, value="I:" + self.element_list[ind]).grid(row=ind+1, column=1, sticky=tk.W, pady=4) Button(self.root, text="Confirm selection of output", command=self.output_selected).grid(row=len(self.element_list)+2, column=0, sticky=tk.W, pady=4)
def create_widgets(self): """Create various widgets in the tkinter main window.""" self.var = IntVar() self.background_label = Label(self.container, image=self.village_image) txt = "Select a hut to enter. You win if:\n" txt += "The hut is unoccupied or the occupant is a friend!" self.info_label = Label(self.container, text=txt, bg='yellow') # Create a dictionary for radio button config options. r_btn_config = { 'variable': self.var, 'bg': '#A8884C', 'activebackground': 'yellow', 'image': self.hut_image, 'height': self.hut_height, 'width': self.hut_width, 'command': self.radio_btn_pressed } self.r1 = Radiobutton(self.container, r_btn_config, value=1) self.r2 = Radiobutton(self.container, r_btn_config, value=2) self.r3 = Radiobutton(self.container, r_btn_config, value=3) self.r4 = Radiobutton(self.container, r_btn_config, value=4) self.r5 = Radiobutton(self.container, r_btn_config, value=5)
def minormax(self): objheader = headersmall(self.frame, text="Objective:") rmim = Radiobutton(self.frame, text="Minimize", variable=self.params["objective"], value="min", bg=Styles.colours["grey"]) rmax = Radiobutton(self.frame, text="Maximize", variable=self.params["objective"], value="max", bg=Styles.colours["grey"]) objheader.grid(row=7, column=1, sticky=W, columnspan=2) rmim.grid(row=8, column=1, pady=0, sticky=W, padx=10) rmax.grid(row=9, column=1, pady=0, sticky=W, padx=10)
def add_screen(self, fr, title): b = Radiobutton(self.rb_fr, bd=1, text=title, indicatoron=0, \ variable=self.choice, value=self.count, \ command=lambda: self.display(fr)) b.grid(column=self.count, row=0, sticky=N + E + W) self.rb_fr.columnconfigure(self.count, weight=1) fr.grid(sticky=N + W + E) self.screen_fr.columnconfigure(0, weight=1) fr.grid_remove() # ensures the first frame will be # the first selected/enabled if not self.active_fr: fr.grid() self.active_fr = fr self.count += 1 # returns a reference to the newly created # radiobutton (allowing its configuration/destruction) return b
def __init__(self, wname="guippy", master=None): Tkinter.Frame.__init__(self, master) self.master.title(wname) self.radio_value = IntVar() self.radio_values = {"test1": 0, "test2": 1, "test3": 2} self.check_values = {"test1": BooleanVar(), "test2": BooleanVar(), "test3": BooleanVar()} self.option_value = StringVar() self.entry_value = StringVar() self.result_value = StringVar() self.radio_entry = StringVar() self.check_entry = StringVar() # widgets kwds = {"padx": 3, "pady": 3, "side": Tkinter.LEFT} ff = Frame(self) ff.pack(side=Tkinter.TOP, anchor="w") Button(ff, text="apply ", command=self.apply).pack(**kwds) Button(ff, text="reapply").pack(**kwds) ff = Frame(self) ff.pack(side=Tkinter.TOP, anchor="w") for key, val in sorted(self.radio_values.items()): _r = Radiobutton(ff, text=key, variable=self.radio_value, value=val) _r.pack(**kwds) Entry(ff, textvariable=self.radio_entry).pack(**kwds) ff = Frame(self) ff.pack(side=Tkinter.TOP, anchor="c") for key, val in sorted(self.check_values.items()): _w = Checkbutton(ff, text=key, variable=val) _w.pack(**kwds) Entry(ff, textvariable=self.check_entry).pack(**kwds)
def __init__(self, name, select_command, tab_row, tab_set): """Constructor arguments: name -- The tab's name, which will appear in its button. select_command -- The command to be called upon selection of the tab. It is called with the tab's name as an argument. """ Frame.__init__(self, tab_row, borderwidth=self.bw, relief=RAISED) self.name = name self.select_command = select_command self.tab_set = tab_set self.is_last_in_row = False self.button = Radiobutton( self, text=name, command=self._select_event, padx=5, pady=1, takefocus=False, indicatoron=False, highlightthickness=0, selectcolor='', borderwidth=0) self.button.pack(side=LEFT, fill=X, expand=True) self._init_masks() self.set_normal()
def time(self): from Tkinter import LabelFrame time_frame = LabelFrame(self.root, height = 100, width = 150, text = "Time settings") time_frame.grid(column = 1, row = 0, columnspan = 1, rowspan = 1) from Tkinter import Radiobutton time_now = Radiobutton(time_frame, text = "Now", variable = time, value = 1) time_now.grid(column = 0, row = 0, columnspan = 1, rowspan = 1) time_selection = Radiobutton(time_frame, text = "Select", variable = time, value = 2) time_selection.grid(column = 0, row = 1, columnspan = 1, rowspan = 1)
def options_input(self): """ Input is selected by the user from options provided via radiobuttons. If there are *n* voltage sources in the circuit, *n* radiobuttons are given as optons to the user. The user can select any one and then clicks on Confirm selection of input. """ self.v = IntVar() Label(self.root, text="Options for input").grid(row=0, column=0, sticky='news') for ind in range(self.num_volt_sources): Radiobutton(self.root, text="V"+str(ind+1), variable=self.v, value=ind+1).grid(row=ind+1, column=0, sticky=tk.W, pady=4) Button(self.root, text="Confirm selection of input", command=self.compute_val).grid(row=ind+4, column=0, sticky=tk.W, pady=4)
def app(): root = Tk() root.geometry("500x500+100+200") lb1 = Label(root, text="I have many head...Choose one:") heads = Radiobutton(root, ) music_cb = Checkbutton(root, text="music") fullscreen_cb = Checkbutton(root, text="fullscreen") #全屏勾选,音乐勾选。 bt1 = Button(root, text="START", command=play_head) bt2 = Button(root, text="MoreHead", command=add_head) music_cb.pack() fullscreen_cb.pack() lb1.pack() bt1.pack() bt2.pack() root.mainloop()
class getDist(): def __init__(self, master): self.master = master self.startwindow() #self.b=0 # no need for this, directly store in the global variable def startwindow(self): self.var1 = IntVar() self.textvar = StringVar() self.Label1 = Label(self.master, text="Search distance (meters)") self.Label1.grid(row=0, column=0) self.Label2 = Label(self.master, textvariable=self.textvar) self.Label2.grid(row=2, column=0) self.rb1 = Radiobutton(self.master, text="5000", variable=self.var1, value=5000, command=self.cb1select) self.rb1.grid(row=1, column=0, sticky=W) self.rb2 = Radiobutton(self.master, text="625", variable=self.var1, value=625, command=self.cb1select) self.rb2.grid(row=1, column=1, sticky=W) self.rb3 = Radiobutton(self.master, text="160", variable=self.var1, value=160, command=self.cb1select) self.rb3.grid(row=1, column=2, sticky=W) self.Button1 = Button(self.master, text="ok", command=self.ButtonClick) self.Button1.grid(row=2, column=2) def ButtonClick(self): global dist dist = self.var1.get() self.master.quit() def cb1select(self): return self.var1.get()
def create_other_buttons(self): '''Return (frame, others) for testing. Others is a list of value, label pairs. A gridded frame from make_frame is filled with radio buttons. ''' frame = self.make_frame("Direction")[0] var = self.engine.backvar others = [(1, 'Up'), (0, 'Down')] for val, label in others: btn = Radiobutton(frame, anchor="w", variable=var, value=val, text=label) btn.pack(side="left", fill="both") if var.get() == val: btn.select() return frame, others
def solver(self): solverheader = headersmall(self.frame, text="Solvers:") direct = Radiobutton(self.frame, text="Direct", variable=self.params["solver"], value="direct", bg=Styles.colours["grey"]) lbfgs = Radiobutton(self.frame, text="LBFGS", variable=self.params["solver"], value="lbfgs", bg=Styles.colours["grey"]) message = Message(self.frame, text="Enable normalization if you use lbfgs", width=200) try: import nlopt except: self.params["solver"].set("lbfgs") self.params["normalize"].set(1) direct.config(state=DISABLED) message.config(text="You do not have nlopt library installed to use the Direct Solver", bg=Styles.colours["lightRed"]) normalize = Checkbutton(self.frame, text="Normalize Input", variable=self.params["normalize"], bg=Styles.colours["grey"]) solverheader.grid(row=1, column=0, sticky=W, columnspan=2) direct.grid(row=2, column=0, pady=0, sticky=W, padx=10) lbfgs.grid(row=3, column=0, pady=0, sticky=W, padx=10) message.grid(row=2, column=1, rowspan=1) normalize.grid(row=3, column=1)
def __init__(self, root, radioName, radioOptions, startSelect=0, background=None, foreground=None, callback=None, width=40): self.frame = Frame(root, borderwidth=2, relief=GROOVE, background=background) Label(self.frame, text=radioName, width=width, background=background, foreground=foreground).grid(row=0) self.selection = IntVar(self.frame) self.buttons = list() for i, opt in enumerate(radioOptions): self.buttons.append( Radiobutton(self.frame, text=opt, variable=self.selection, value=i, command=callback, background=background, activebackground=background, foreground=foreground, activeforeground=foreground)) self.buttons[i].grid(row=i + 1, sticky=W) self.buttons[startSelect].select()
def __init__(self, name, select_command, tab_row, tab_set): """Constructor arguments: name -- The tab's name, which will appear in its button. select_command -- The command to be called upon selection of the tab. It is called with the tab's name as an argument. """ Frame.__init__(self, tab_row, borderwidth=self.bw, relief=RAISED) self.name = name self.select_command = select_command self.tab_set = tab_set self.is_last_in_row = False self.button = Radiobutton( self, text=name, command=self._select_event, padx=5, pady=1, takefocus=FALSE, indicatoron=FALSE, highlightthickness=0, selectcolor='', borderwidth=0) self.button.pack(side=LEFT, fill=X, expand=True) self._init_masks() self.set_normal()
def Show(): Gui.configuration.ReadConfiguration() Gui.top = Tkinter.Tk() Gui.top.title("SGS performance test") label = Label(Gui.top, text="Select options and execute tasks", height=2) label.grid(row=0, sticky=W) # ######################################################## Gui.var = IntVar() Gui.var.set(1 if Gui.configuration.IsBuildTypeDebug() else 2) R1 = Radiobutton(Gui.top, text="Debug Build", variable=Gui.var, value=1, height=2,command=Gui.BuildType) R1.grid(row=1, sticky=W) R2 = Radiobutton(Gui.top, text="Release Build", variable=Gui.var, value=2, height=2, command=Gui.BuildType) R2.grid(row=2, sticky=W) # ######################################################## Gui.dirLabel = Label(Gui.top, text='Dir: ', bd=4) Gui.dirLabel.grid(row=3, sticky=W) Gui.UpdateDirLabel() dirButton = Tkinter.Button(Gui.top, text='Select dir containing cpp/external', bd=4, command=Gui.AskDirectory) dirButton.grid(row=4, sticky=W) # ######################################################## def SetupCallBack(): print "Setup" setup = Tkinter.Button(Gui.top, text ="Setup", bd=4, command = Gui.SetupCallBack) setup.grid(row=5, sticky=W) def ExecuteCallBack(): print "Execute" execute = Tkinter.Button(Gui.top, text ="Execute", bd=4, command = Gui.ExecuteCallBack) execute.grid(row=6, sticky=W) # new line print '' Gui.top.mainloop()
class getDist(): def __init__(self, master): self.master=master self.startwindow() #self.b=0 # no need for this, directly store in the global variable def startwindow(self): self.var1 = IntVar() self.textvar = StringVar() self.Label1=Label(self.master, text="Search distance (meters)") self.Label1.grid(row=0, column=0) self.Label2=Label(self.master, textvariable=self.textvar) self.Label2.grid(row=2, column=0) self.rb1 = Radiobutton(self.master, text="5000", variable=self.var1, value=5000, command=self.cb1select) self.rb1.grid(row=1, column=0, sticky=W) self.rb2 = Radiobutton(self.master, text="625", variable=self.var1, value=625, command=self.cb1select) self.rb2.grid(row=1, column=1, sticky=W) self.rb3 = Radiobutton(self.master, text="160", variable=self.var1, value=160, command=self.cb1select) self.rb3.grid(row=1, column=2, sticky=W) self.Button1=Button(self.master, text="ok", command=self.ButtonClick) self.Button1.grid(row=2, column=2) def ButtonClick(self): global dist dist = self.var1.get() self.master.quit() def cb1select(self): return self.var1.get()
def gui(): from Tkinter import Tk, Label, Entry, Button, Scale, Checkbutton, W, HORIZONTAL, Frame, StringVar, IntVar, DoubleVar, Radiobutton, BooleanVar, E global root root = Tk() root.wm_title("Compute R_complete") line = 0 global insFile, hklFile, nHKL, nParams, nHKLLabel, fracFree, status, nParamsLabel, nCPU, rCompleteLabel, cycles, lsType, cleanup, nFree, nRunsLabel, mergeCheck, compileMap insFile = StringVar() hklFile = StringVar() nHKL = IntVar() nParams = IntVar() nFree = IntVar() fracFree = DoubleVar() fracFree.set(5.0) nCPU = IntVar() nCPU.set(maxCPU) cycles = IntVar() cycles.set(10) lsType = IntVar() lsType.set(1) cleanup = BooleanVar() cleanup.set(True) mergeCheck = BooleanVar() mergeCheck.set(True) compileMap = BooleanVar() compileMap.set(True) Label(root, text='Instruction File:').grid(row=line, column=0, sticky=E) Entry(root, textvariable=insFile).grid(row=line, column=1) Button(root, text='Browse', command=browseINS).grid(row=line, column=2) line += 1 Label(root, text='Reflection File:').grid(row=line, column=0, sticky=E) Entry(root, textvariable=hklFile).grid(row=line, column=1) Button(root, text='Browse', command=browseHKL).grid(row=line, column=2) line += 1 Checkbutton(root, var=mergeCheck, text='Merge Reflections').grid(row=line, column=1, sticky=W) line += 1 Button(root, text='Load', command=load).grid(row=line, columnspan=3) line += 1 Frame(root, height=20).grid(row=line) line += 1 Label(root, text='# of reflections:').grid(row=line, sticky=E) nHKLLabel = Label(root, text='???') nHKLLabel.grid(row=line, column=1, sticky=W) line += 1 Label(root, text='# of atoms:').grid(row=line, sticky=E) nParamsLabel = Label(root, text='???') nParamsLabel.grid(row=line, column=1, sticky=W) line += 1 Frame(root, height=20).grid(row=line) line += 1 Label(root, text='Select Parameters').grid(row=line, column=1) line += 1 Frame(root, height=20).grid(row=line) line += 1 Label(root, text='# of free reflections:').grid(row=line, sticky=E) nFreeEntry = Entry(root, width=5, textvariable=nFree) nFreeEntry.grid(row=line, column=1, sticky=W) nFreeEntry.bind('<Return>', setScale) nRunsLabel = Label(root, text='# runs') nRunsLabel.grid(row=line, column=2) line += 1 Label(root, text='% of free reflections:').grid(row=line, column=0, sticky=E) w = Scale(root, from_=0.1, to=10.0, resolution=0.1, orient=HORIZONTAL, length=200, var=fracFree, command=percentScale) w.grid(row=line, column=1, columnspan=2, sticky=W) line += 1 Label(root, text='stable <-------------------------------> fast').grid( row=line, column=1, columnspan=2, sticky=W) line += 1 Frame(root, height=10).grid(row=line) line += 1 Label(root, text='Refinement cycles:').grid(row=line, column=0, sticky=E) ls = Scale(root, from_=0, to=50, resolution=1, orient=HORIZONTAL, length=200, var=cycles) ls.grid(row=line, column=1, columnspan=2, sticky=W) line += 1 Label(root, text='fast <--------------------> less model bias').grid( row=line, column=1, columnspan=2, sticky=W) line += 1 Frame(root, height=10).grid(row=line) line += 1 Label(root, text='# of CPUs:').grid(row=line, column=0, sticky=E) ww = Scale(root, from_=1, to=maxCPU, orient=HORIZONTAL, length=200, var=nCPU) ww.grid(row=line, column=1, columnspan=2, sticky=W) line += 1 Label(root, text='Refinement Type:').grid(row=line, column=0, sticky=E) Radiobutton(root, text='CGLS', var=lsType, value=1).grid(row=line, column=1, sticky=W) Radiobutton(root, text='L.S.', var=lsType, value=2).grid(row=line, column=2, sticky=W) line += 1 Frame(root, height=10).grid(row=line) line += 1 Label(root, text='Compile map:').grid(row=line, column=0, sticky=E) Checkbutton(root, var=compileMap).grid(row=line, column=1, sticky=W) line += 1 Label(root, text='Cleanup:').grid(row=line, column=0, sticky=E) Checkbutton(root, var=cleanup).grid(row=line, column=1, sticky=W) line += 1 Button(root, text='RUN', command=run, width=25).grid(row=line, columnspan=3) line += 1 Frame(root, height=20).grid(row=line) line += 1 Label(root, text='R_complete:').grid(row=line, column=0, sticky=E) rCompleteLabel = Label(root, text='???') rCompleteLabel.grid(row=line, column=1, sticky=W) line += 1 Frame(root, height=20).grid(row=line) line += 1 Label(root, text='Status:').grid(row=line, column=0, sticky=E) status = Label(root, text='Idle... Please load files.') status.grid(row=line, column=1, columnspan=2, sticky=W) global IDLE IDLE = True root.mainloop()
img = Image.fromarray(cv2image) imgtk = ImageTk.PhotoImage(image=img) lmain.imgtk = imgtk lmain.configure(image=imgtk) while counter != 100: counter += 1 lmain.after(10, show_frame) show_frame() # cap.release() R00 = Radiobutton(top, text="Single Image", variable=var00, value=1, command=var00Sel) R00.invoke() R00.place(x = 180, y = 15) R01 = Radiobutton(top, text="Webcam", variable=var00, value=2, command=var00Sel) R01.place(x = 350, y = 15) label1 = tkinter.Label(top, text = "Low-Resolution Image", relief=RAISED) label1.config(width = 50) label1.place(x = 180, y = 50) def click1():
TwoLepcharge_val = IntVar() TwoLepcharge_val.set(1) #2 Leptons: same/diferent charge st_lepflavourcb = IntVar() st_InvMasscb = IntVar() TwoLepflavour_val = IntVar() TwoLepflavour_val.set(1) #2 Leptons: same/diferent flavour InvariantM_val = IntVar() InvariantM_val.set(0) #Invariant mass InvariantM2_val = IntVar() InvariantM2_val.set(0) #Invariant mass Range_val = IntVar() Range_val.set(0) #Range of invariant mass #Checkboxes for same/opposite charge b1_LepCharge = Radiobutton(OptionsLep, text="Same charge", variable=TwoLepcharge_val, value=1) b2_LepCharge = Radiobutton(OptionsLep, text="Opposite charge", variable=TwoLepcharge_val, value=-1) def chooseLepcharge(): """Displays options if user checks the box to select leptons' charges""" TwoLepcharge_val = IntVar() TwoLepcharge_val.set(1) if st_lepchargecb.get() == 1: b1_LepCharge.grid(row=1, sticky=W) b2_LepCharge.grid(row=2, sticky=W) else:
def init(): """初始化页面""" global user, offset, photo, url, buy_house, buy_car, age, height, salary, \ education, company, industry, school, position, satisfy, appearance get_user(offset) image_url = u'{}&quality=85&thumbnail=410y410'.format(user['avatar']) place_image(image_url) photo = Label(master, image=tk_image) photo.place(anchor=u'nw', x=10, y=40) url = Label(master, text=user['url'], font=Font(size=20, weight='bold')) url.place(anchor=u'nw', x=10, y=5) buy_house = Label(master, text=BUY_HOUSE.get(user['house']) or user['house']) buy_house.place(anchor=u'nw', x=490, y=50) buy_car = Label(master, text=BUY_CAR.get(user['car']) or user['car']) buy_car.place(anchor=u'nw', x=490, y=75) age = Label(master, text=user['age']) age.place(anchor=u'nw', x=490, y=100) height = Label(master, text=user['height']) height.place(anchor=u'nw', x=490, y=125) salary = Label(master, text=SALARY.get(user['salary']) or user['salary']) salary.place(anchor=u'nw', x=490, y=150) education = Label(master, text=EDUCATION.get(user['education']) or user['education']) education.place(anchor=u'nw', x=490, y=175) company = Label(master, text=user['company'] if user['company'] else u'--') company.place(anchor=u'nw', x=490, y=200) industry = Label(master, text=INDUSTRY.get(user['industry']) or user['industry']) industry.place(anchor=u'nw', x=490, y=225) school = Label(master, text=user['school'] if user['school'] else u'--') school.place(anchor=u'nw', x=490, y=250) position = Label(master, text=POSITION.get(user['position']) or user['position']) position.place(anchor=u'nw', x=490, y=275) satisfy = IntVar() satisfy.set(int(user.get(u'satisfy', -1))) satisfied = Radiobutton(master, text=u"满意", variable=satisfy, value=1, command=set_satisfy) not_satisfied = Radiobutton(master, text=u"不满意", variable=satisfy, value=0, command=set_satisfy) satisfied.place(anchor=u'nw', x=450, y=10) not_satisfied.place(anchor=u'nw', x=510, y=10) appearance = IntVar() appearance.set(int(user.get(u'appearance', -1))) for i in range(1, 11): score_i = Radiobutton(master, text=str(i), variable=appearance, value=i, command=set_appearance) score_i.place(anchor=u'nw', x=i * 40 - 30, y=460)
def initUI(self): """ Initializes the user interface Setting up the entry widgets for: - Experiment_ID - Participant Name - Session Day - Pupil Size - Practice - Stereo """ # Set the title self.parent.title(EXP_NAME) # Create the label for Experiment_ID and set location label_id = Label(text='Participant ID:') label_id.place(x=20, y=20) # Check the DATA_DIR directory for previous participants # and choose the next Experiment_ID in line self.folders = listdir(DATA_DIR) # Initiate Tkinter's StringVar self.value_id = StringVar() # Set the default value self.value_id.set('001') # Going in reverse order of the participants' directories in # DATA_DIR, find the last participant's Experiment_ID and opt # for the next one in line for folder in reversed(self.folders): try: # Check if the value of the first 3 digits of the # directory name is greater than the default value if int(folder[:3]) >= int(self.value_id.get()): # Get the next Experiment_ID in integer form and # convert to string format num = str(int(folder[:3]) + 1) # Actions to perform in case scenarios for each # of the possibilites of num_length num_length = {3: num, 2: '0%s' % num, 1: '00%s' % num} # Set the value accordingly to the StringVar, # replacing the default self.value_id.set(num_length[len(num)]) # In case there are other folders in DATA_DIR, for which # the first 3 characters are not digits, we must cater # for when an exception is thrown up except ValueError: pass # Create the entry widget for Experiment_ID with the preset # value and state disabled self.input_id = Entry(self.parent, width=5, state=DISABLED, textvariable=self.value_id) self.input_id.place(x=150, y=20) # Create the label for Participant Name and set location label_name = Label(text='Participant Name:') label_name.place(x=20, y=50) # Initiate Tkinter's StringVar self.value_name = StringVar() # Set the default value self.value_name.set('') # Create the entry for Participant Name and set location self.input_name = Entry(self.parent, width=35, textvariable=self.value_name) self.input_name.place(x=150, y=50) self.input_name.focus() # Create the label for Session Day and set location label_day = Label(text='Session Day:') label_day.place(x=20, y=80) # Create value holder for Session Day as IntVar and set default # value to 1 self.value_day = IntVar() self.value_day.set(1) # Create the radiobuttons as required for day in range(1, TOTAL_SESSIONS + 1): input_day = Radiobutton(self.parent, text=str(day), variable=self.value_day, value=day) # Anchor them to the West (W) input_day.pack(anchor=W) # Choose location for the radiobuttons input_day.place(x=150, y=(50 + (day * 25))) # Create the label for Pupil Size and set location label_pupilsize = Label(text='Pupil Size:') label_pupilsize.place(x=20, y=140) self.value_pupilsize = StringVar() self.value_pupilsize.set('') # Create the MaxLengthEntry for Pupil Size and set location # The maximum length is set to 3 characters and a float must be # provided self.input_pupilsize = MaxLengthEntry(self.parent, width=5, maxlength=3, required_type=float) self.input_pupilsize.config(textvariable=self.value_pupilsize) self.input_pupilsize.place(x=150, y=140) # Create value folder for Practice as IntVar self.value_practice = IntVar() # Create the checkbutton for Practice and set location input_practice = Checkbutton(self.parent, text='Practice', variable=self.value_practice, onvalue=1, offvalue=0) input_practice.place(x=150, y=170) # Create value holder for Stereo as IntVar self.value_stereo = IntVar() # Create the checkbutton for Stereo and set location input_stereo = Checkbutton(self.parent, text='Stereo', variable=self.value_stereo, onvalue=1, offvalue=0) input_stereo.place(x=150, y=200) # Create the label for Previous Subjects and set location label_previous = Label(text='Previous Subjects:') label_previous.place(x=20, y=250) # Create the Listboc containing all the previous participants self.input_previous = Listbox(self.parent, width=35, height=10) for identifier in self.folders: self.input_previous.insert(END, identifier) self.input_previous.place(x=150, y=250) self.input_previous.bind('<<ListboxSelect>>', self.__select_previous) # Create the submit button, give command upon pressing and set # location submit = Button(text='Submit', width=47, command=self.gather_input) submit.pack(padx=8, pady=8) submit.place(x=20, y=425)
def __init__(self, parent, options): if options == None: options = {} DefaultOptions = {'colorspace':'RGB', 'K':6, 'km_init':'first', 'verbose':False, 'single_thr':0.6, 'metric':'basic'} for op in DefaultOptions: if not op in options: options[op] = DefaultOptions[op] self.options = options self.K_ant = 0 self.num_im=-1 Frame.__init__(self, parent) self.parent = parent self.parent.title("TAGGING") self.F1 = Frame(parent, width=150,borderwidth=2,relief=GROOVE) self.F2 = Frame(parent, width=150,borderwidth=2,relief=GROOVE) self.F3 = Frame(parent) self.F4 = Frame(parent,borderwidth=2,relief=GROOVE) self.F5 = Frame(parent,borderwidth=2,relief=GROOVE) self.F1.pack(side=LEFT, fill=Y, pady = 4, padx=4) self.F2.pack(side=LEFT, fill=Y, pady = 4) self.F3.pack(side=TOP, expand=True, fill=BOTH, pady = 4, padx = 4) self.F4.pack(side=TOP, fill=BOTH, expand=0, padx = 4) self.F5.pack(side=BOTTOM, fill=BOTH, expand=0, pady = 4, padx = 4) self.F1.pack_propagate(0) self.F2.pack_propagate(0) self.F3.pack_propagate(0) lbl = Label(self.F1, text="Groundtruth") lbl.grid(row=0,sticky=W) Frame(self.F1,borderwidth=1,relief=GROOVE,height=2).grid(row=1,sticky=W) lbl = Label(self.F2, text="Detected") lbl.grid(row=0,sticky=W, columnspan=2) Frame(self.F2,borderwidth=1,relief=GROOVE,height=2).grid(row=1,sticky=W, columnspan=2) self.filename = Button(self.F3,text="filename",command=self.ChooseFile) self.filename.pack(side=TOP,expand=0) # #matplotlib setup # plt.ion() self.figure=plt.figure(figsize=(2,2), frameon=False) self.axes=self.figure.add_subplot(111) self.Canvas=FigureCanvasTkAgg(self.figure, master=self.F3) # self.Canvas.show() self.Canvas.get_tk_widget().pack(side=TOP,fill=BOTH,expand=1 ) plt.axis('off') b = Button(self.F4,text=" <<<10 ",command=self.PreviousFast) b.pack(side=LEFT, padx=(20,2), pady=3) b = Button(self.F4,text=" <<1 ",command=self.Previous) b.pack(side=LEFT, pady=3) self.im_name = Button(self.F4,text="image",bd=0, command=self.Results) self.im_name.pack(side=LEFT, expand=True) b = Button(self.F4,text=" 1>> ",command=self.Next) b.pack(side=LEFT) b = Button(self.F4,text=" 10>>> ",command=self.NextFast) b.pack(side=LEFT, padx=(2,20)) F51 = Frame(self.F5) F52 = Frame(self.F5) F53 = Frame(self.F5) F51.pack(fill=BOTH, expand=1, side=LEFT) Frame(self.F5,borderwidth=1,relief=GROOVE,width=2).pack(side=LEFT, fill=Y) F52.pack(fill=BOTH, expand=1, side=LEFT) Frame(self.F5,borderwidth=1,relief=GROOVE,width=2).pack(side=LEFT, fill=Y) F53.pack(fill=BOTH, expand=1, side=LEFT) Label(F51, text="Color space").pack() Frame(F51,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) Label(F52, text="K-Means").pack() Frame(F52,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) Label(F53, text="Labelling").pack() Frame(F53,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) self.ColorMode = StringVar() self.ColorMode.set(self.options[COLORSSPACE['key']]) for text, mode in COLORSSPACE['options_gui']: b = Radiobutton(F51, text=text, variable=self.ColorMode, value=mode, command=self.Results) b.pack(anchor=W) Frame(F51,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) Label(F51, text="Grouping", padx=20).pack() Frame(F51,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) self.Group = BooleanVar() self.Group.set(True) b = Checkbutton(F51, text='Group same label colors', variable=self.Group, command=self.Results) b.pack(anchor=W) F521 = Frame(F52) F522 = Frame(F52) F521.pack(fill=BOTH) F522.pack(fill=BOTH) # F523 = Frame(F52) # F523.pack(fill=BOTH) self.K = StringVar() self.K.set(self.options['K']) # f = Frame(F52) # f.pack(side=TOP, fill=BOTH, expand=0) Label(F521, text="K : ").pack(side=LEFT) Entry(F521, textvariable=self.K, width=3, justify=CENTER).pack(side=LEFT, padx=4) # Label(F52, text="Init", padx=20).pack(anchor=W) # Frame(F521,borderwidth=1,relief=GROOVE,width=2).pack(side=RIGHT, fill=Y, padx=2) self.Fitting = StringVar() self.Fitting.set(self.options[FITTING['key']]) # f = Frame(F52) # f.pack(side=RIGHT, fill=BOTH, expand=0) for text, mode in FITTING['options_gui']: b = Radiobutton(F521, text=text, variable=self.Fitting, value=mode, command=self.Results) b.pack(anchor=W,padx=4) Frame(F522,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) Label(F522, text="Centroid Init", padx=20).pack() Frame(F522,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) # IM = [('First points','first'),('Randomize', 'random'),('Distribtued','distributed'),('Other','Other')] self.KMInit = StringVar() self.KMInit.set(self.options[CENTROIDSINIT['key']]) for text, mode in CENTROIDSINIT['options_gui']: b = Radiobutton(F522, text=text, variable=self.KMInit, value=mode, command=self.Results) b.pack(anchor=W) self.Thr = StringVar() self.Thr.set(self.options['single_thr']) f = Frame(F53) f.pack(side=TOP, fill=BOTH, expand=0) Label(f, text="single\nbasic >\ncolor", justify=LEFT).pack(side=LEFT) Entry(f, textvariable=self.Thr, width=4, justify=CENTER).pack(side=LEFT) # self.Synonymous = BooleanVar() # self.Synonymous.set(self.options['synonyms']) # b = Checkbutton(F53, text='Synonymous', variable=self.Synonymous, command=self.Results) # b.pack(anchor=W) Frame(F53,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) Label(F53, text="Similarity Metric", padx=2).pack() Frame(F53,borderwidth=1,relief=GROOVE,height=2).pack(fill=X) self.Metric = StringVar() self.Metric.set(self.options[SIMILARITY['key']]) for text, mode in SIMILARITY['options_gui']: b = Radiobutton(F53, text=text, variable=self.Metric, value=mode, command=self.Results) b.pack(anchor=W)
my_msg.set("") scrollbar = tkinter.Scrollbar(messages_frame) msg_list = tkinter.Listbox(messages_frame, height=28, width=85, bg="#99FFFF", 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() var = tkinter.IntVar() tapy = 170 var.set(0) Radiobutton(text='Tekst', value=0, variable=var).place(x=840, y=180) Radiobutton(text='Dekodowanie', value=1, variable=var).place(x=840, y=205) Radiobutton(text='Kodowanie', value=2, variable=var).place(x=840, y=230) Radiobutton(text='Sygnaly dzwiekowe', value=3, variable=var).place(x=840, y=255) Radiobutton(text='Sygnaly graficzne', value=4, variable=var).place(x=840, y=280) imageLabel = Label(top, text="Wiadomosc graficzna", bg="#33CC00", fg="black", font="Helvetica") imageLabel.place(x=10, y=230, height=30, width=200) optionsLabel = Label(top, text="Wybierz opcje",
def init_gui(self): """init helper""" #setting up frames top_frame = Frame(self.root) mid_frame = Frame(self.root) radio_frame = Frame(self.root) res_frame = Frame(self.root) msg_frame = Frame(self.root) check_frame = Frame(self.root) history_frame = Frame(self.root) btn_frame = Frame(self.root) rating_frame = Frame(self.root) top_frame.pack(side=TOP, fill=X) mid_frame.pack(side=TOP, fill=X) history_frame.pack(side=TOP, fill=BOTH, expand=True) radio_frame.pack(side=TOP, fill=BOTH, expand=True) rating_frame.pack(side=TOP, fill=BOTH, expand=True) res_frame.pack(side=TOP, fill=BOTH, expand=True) check_frame.pack(side=TOP, fill=BOTH, expand=True) msg_frame.pack(side=TOP, fill=BOTH, expand=True) btn_frame.pack(side=TOP, fill=X) # Binding F5 application-wide to run lint self.root.bind('<F5>', self.run_lint) #Message ListBox rightscrollbar = Scrollbar(msg_frame) rightscrollbar.pack(side=RIGHT, fill=Y) bottomscrollbar = Scrollbar(msg_frame, orient=HORIZONTAL) bottomscrollbar.pack(side=BOTTOM, fill=X) self.lbMessages = Listbox(msg_frame, yscrollcommand=rightscrollbar.set, xscrollcommand=bottomscrollbar.set, bg="white") self.lbMessages.bind("<Double-Button-1>", self.show_sourcefile) self.lbMessages.pack(expand=True, fill=BOTH) rightscrollbar.config(command=self.lbMessages.yview) bottomscrollbar.config(command=self.lbMessages.xview) #Message context menu self.mnMessages = Menu(self.lbMessages, tearoff=0) self.mnMessages.add_command(label="View in sourcefile", command=self.show_sourcefile) self.mnMessages.add_command(label="Add to ignore patchfile", command=self.add_to_ignore_patchfile) self.lbMessages.bind("<Button-3>", self.show_messages_context) #History ListBoxes rightscrollbar2 = Scrollbar(history_frame) rightscrollbar2.pack(side=RIGHT, fill=Y) bottomscrollbar2 = Scrollbar(history_frame, orient=HORIZONTAL) bottomscrollbar2.pack(side=BOTTOM, fill=X) self.showhistory = Listbox(history_frame, yscrollcommand=rightscrollbar2.set, xscrollcommand=bottomscrollbar2.set, bg="white") self.showhistory.pack(expand=True, fill=BOTH) rightscrollbar2.config(command=self.showhistory.yview) bottomscrollbar2.config(command=self.showhistory.xview) self.showhistory.bind('<Double-Button-1>', self.select_recent_file) self.set_history_window() #status bar self.status = Label(self.root, text="", bd=1, relief=SUNKEN, anchor=W) self.status.pack(side=BOTTOM, fill=X) #labels self.lblRatingLabel = Label(rating_frame, text='Rating:') self.lblRatingLabel.pack(side=LEFT) self.lblRating = Label(rating_frame, textvariable=self.rating) self.lblRating.pack(side=LEFT) Label(mid_frame, text='Recently Used:').pack(side=LEFT) Label(top_frame, text='Module or package').pack(side=LEFT) #file textbox self.txtModule = Entry(top_frame, background='white') self.txtModule.bind('<Return>', self.run_lint) self.txtModule.pack(side=LEFT, expand=True, fill=X) #results box rightscrollbar = Scrollbar(res_frame) rightscrollbar.pack(side=RIGHT, fill=Y) bottomscrollbar = Scrollbar(res_frame, orient=HORIZONTAL) bottomscrollbar.pack(side=BOTTOM, fill=X) self.results = Listbox(res_frame, yscrollcommand=rightscrollbar.set, xscrollcommand=bottomscrollbar.set, bg="white", font="Courier") self.results.pack(expand=True, fill=BOTH, side=BOTTOM) rightscrollbar.config(command=self.results.yview) bottomscrollbar.config(command=self.results.xview) #buttons Button(top_frame, text='Open', command=self.file_open).pack(side=LEFT) Button(top_frame, text='Open Package', command=(lambda: self.file_open(package=True))).pack(side=LEFT) self.btnRun = Button(top_frame, text='Run', command=self.run_lint) self.btnRun.pack(side=LEFT) Button(btn_frame, text='Quit', command=self.quit).pack(side=BOTTOM) #radio buttons self.information_box = IntVar() self.convention_box = IntVar() self.refactor_box = IntVar() self.warning_box = IntVar() self.error_box = IntVar() self.fatal_box = IntVar() i = Checkbutton(check_frame, text="Information", fg=COLORS['(I)'], variable=self.information_box, command=self.refresh_msg_window) c = Checkbutton(check_frame, text="Convention", fg=COLORS['(C)'], variable=self.convention_box, command=self.refresh_msg_window) r = Checkbutton(check_frame, text="Refactor", fg=COLORS['(R)'], variable=self.refactor_box, command=self.refresh_msg_window) w = Checkbutton(check_frame, text="Warning", fg=COLORS['(W)'], variable=self.warning_box, command=self.refresh_msg_window) e = Checkbutton(check_frame, text="Error", fg=COLORS['(E)'], variable=self.error_box, command=self.refresh_msg_window) f = Checkbutton(check_frame, text="Fatal", fg=COLORS['(F)'], variable=self.fatal_box, command=self.refresh_msg_window) i.select() c.select() r.select() w.select() e.select() f.select() i.pack(side=LEFT) c.pack(side=LEFT) r.pack(side=LEFT) w.pack(side=LEFT) e.pack(side=LEFT) f.pack(side=LEFT) #check boxes self.box = StringVar() # XXX should be generated report = Radiobutton(radio_frame, text="Report", variable=self.box, value="Report", command=self.refresh_results_window) rawMet = Radiobutton(radio_frame, text="Raw metrics", variable=self.box, value="Raw metrics", command=self.refresh_results_window) dup = Radiobutton(radio_frame, text="Duplication", variable=self.box, value="Duplication", command=self.refresh_results_window) ext = Radiobutton(radio_frame, text="External dependencies", variable=self.box, value="External dependencies", command=self.refresh_results_window) stat = Radiobutton(radio_frame, text="Statistics by type", variable=self.box, value="Statistics by type", command=self.refresh_results_window) msgCat = Radiobutton(radio_frame, text="Messages by category", variable=self.box, value="Messages by category", command=self.refresh_results_window) msg = Radiobutton(radio_frame, text="Messages", variable=self.box, value="Messages", command=self.refresh_results_window) sourceFile = Radiobutton(radio_frame, text="Source File", variable=self.box, value="Source File", command=self.refresh_results_window) report.select() report.grid(column=0, row=0, sticky=W) rawMet.grid(column=1, row=0, sticky=W) dup.grid(column=2, row=0, sticky=W) msg.grid(column=3, row=0, sticky=W) stat.grid(column=0, row=1, sticky=W) msgCat.grid(column=1, row=1, sticky=W) ext.grid(column=2, row=1, sticky=W) sourceFile.grid(column=3, row=1, sticky=W) #dictionary for check boxes and associated error term self.msg_type_dict = { 'I': lambda: self.information_box.get() == 1, 'C': lambda: self.convention_box.get() == 1, 'R': lambda: self.refactor_box.get() == 1, 'E': lambda: self.error_box.get() == 1, 'W': lambda: self.warning_box.get() == 1, 'F': lambda: self.fatal_box.get() == 1 } self.txtModule.focus_set()
def create_other_buttons(self): "Fill frame with buttons tied to other options." f = self.make_frame("Direction") btn = Radiobutton(f, anchor="w", variable=self.engine.backvar, value=1, text="Up") btn.pack(side="left", fill="both") if self.engine.isback(): btn.select() btn = Radiobutton(f, anchor="w", variable=self.engine.backvar, value=0, text="Down") btn.pack(side="left", fill="both") if not self.engine.isback(): btn.select()
def __init__(self, maestro): # Atributo de conteo''' self.botonClics = 0 self.bandDATA = 3 self.operacion="" self.cliente = '' self.Producto = '' self.alturaDATA = 0 self.anchoDATA = 0 self.largoDATA = 0 self.Datos = [] for i in range (7): self.Datos.append('') self.consoleSQL = PSQLmerma1() #gg = Tkk.Notebook(maestro) self.top = Toplevel(maestro) self.top.title('Introduce medidas de la caja') self.top.update_idletasks() # w = self.top.winfo_screenwidth() # h = self.top.winfo_screenheight() # size = tuple(int(_) for _ in self.top.geometry().split('+')[0].split('x')) # x = w/2 - size[0]/2 # y = h/2 - size[1]/2 # print size + (x, y) # self.top.geometry("+150+60") #self.top.iconbitmap('/home/pi/Desktop/ProgGUI/GUI/resources/ICO/IconoBCT.ico') #MARCO3 ESEL LINEZO DONDE SE DIBUJAN LAS PESTAÑAS self.marco3 = TTK.Notebook(self.top) # CREAMOS EL MARCO PARA CADA UNA DE LAS PESTAÑAS self.page1 = TTK.Frame(self.marco3) self.page2 = TTK.Frame(self.marco3) self.page3 = TTK.Frame(self.marco3) self.page4 = TTK.Frame(self.marco3) self.page5 = TTK.Frame(self.marco3) # AGREGAMOS EL MARCO A LAS PESTAÑAS Y SU NOMBRE self.marco3.add(self.page1, text='Dimensiones de la caja') self.marco3.add(self.page2, text='Descripción de la caja') self.marco3.add(self.page3, text='Descripción de la prueba') self.marco3.add(self.page4, text='Datos del cliente') self.marco3.add(self.page5, text='Resumen de datos') self.marco3.grid() # AGREGAGOS CONTENIDO A PESTAÑA 1 self.IMGcaja = PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/caja.png') self.IMGancho= PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/anchoSelect.png') self.IMGlargo= PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/largoSelect.png') self.IMGalto = PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/altoSelect.png') self.cajaLB = Label(self.page1, image = self.IMGcaja) self.cajaLB.grid(row = 0, column = 4, rowspan = 5, columnspan = 3) self.txtLB = 'Seleccione un botón e ingrese \n las medidas en cm' self.LB = Label(self.page1, font =('Helvetica', 15), text = self.txtLB) self.LB.grid(row = 0, column = 0, columnspan = 4) self.CBdata = Text(self.page1, state="disabled", width=40, height=2, font=("Helvetica",15)) self.CBdata.grid(row = 1, column = 0, columnspan = 4) self.anchoL = Label(self.page1, font =('Helvetica', 15), text = "") self.anchoL.grid(row =4, column = 4, sticky = 's') self.BTNancho = Button(self.page1, width=5, height=1, font=("Helvetica",15), text = 'Ancho', command =lambda: self.selectCB('an')) self.BTNancho.grid(row = 5, column = 4) self.largoL = Label(self.page1, font =('Helvetica', 15), text = "") self.largoL.grid(row =4, column = 5, sticky = 's') self.BTNlargo = Button(self.page1, width=5, height=1, font=("Helvetica",15), text = 'Largo', command =lambda: self.selectCB('la')) self.BTNlargo.grid(row = 5, column = 5) self.altoL = Label(self.page1, font =('Helvetica', 15), text = "") self.altoL.grid(row =4, column = 6, sticky = 's') self.BTNalto = Button(self.page1, width=5, height=1, font=("Helvetica",15), text = 'Alto', command =lambda: self.selectCB('al')) self.BTNalto.grid(row = 5, column = 6) boton1 = self.crearBoton(1) boton2 = self.crearBoton(2) boton3 = self.crearBoton(3) boton4 = self.crearBoton(4) boton5 = self.crearBoton(5) boton6 = self.crearBoton(6) boton7 = self.crearBoton(7) boton8 = self.crearBoton(8) boton9 = self.crearBoton(9) boton0 = self.crearBoton(0,ancho=7) botonErase = self.crearBoton(u"\u232B",escribir=False) botonErase['background'] = "red" botonErase.grid(row = 2, column = 3) botonEnter = self.crearBoton(u"\u21B5",escribir=False) botonEnter['background'] = "green" botonEnter.grid(row = 3, column = 3) botondot = self.crearBoton('.') #Ubicación de los botones botones=[boton7, boton8, boton9, boton4, boton5, boton6, boton1, boton2, boton3, boton0] contador=0 for fila in range(2,5): for columna in range(3): botones[contador].grid(row=fila,column=columna) contador+=1 #Ubicar el último botón al final botones[contador].grid(row=5,column=0,columnspan=2) botondot.grid(row = 5, column = 2) # AGREGAGOS CONTENIDO A PESTAÑA 2 Label(self.page2, font =('Helvetica', 15), text = 'Seleccione:')\ .grid(row = 0, column = 0,columnspan = 5) Label(self.page2, font =('Helvetica', 15), text = 'Estilo de caja')\ .grid(row = 1, column = 0) self.listCaja = Combobox(self.page2, state="readonly", values = ["Caja troquelada", "Caja est" + u"\xe1" + "ndar"], font =('Helvetica', 15)) self.listCaja.grid(row = 2, column = 0) Label(self.page2, font =('Helvetica', 15), text = ' ')\ .grid(row = 2, column = 1) Label(self.page2, font =('Helvetica', 15), text = 'Tipo de flauta')\ .grid(row = 1, column = 2) self.listFlauta = Combobox(self.page2, state="readonly", values = ["Corrugado sencillo B", "Corrugado sencillo C", "Corrugado sencillo E", "Doble corrugado BC", "Doble corrugado EB"], font =('Helvetica', 15)) self.listFlauta.grid(row = 2, column = 2) Label(self.page2, font =('Helvetica', 15), text = ' ')\ .grid(row = 2, column = 3) Label(self.page2, font =('Helvetica', 15), text = 'Dirección de la flauta')\ .grid(row = 1, column = 4) self.listFlautaD= Combobox(self.page2, state="readonly", values = ["Horizontal", "Vertical"], font =('Helvetica', 15)) self.listFlautaD.grid(row = 2, column = 4) Label(self.page2, font =('Helvetica', 15), text = ' ')\ .grid(row = 3, column = 0, columnspan = 3) Label(self.page2, font =('Helvetica', 15), text = 'Grado del material')\ .grid(row = 4, column = 0) self.listGradoM= Combobox(self.page2, state="readonly", values = ["No aplica", "20 ECT", "21 ECT", "23 ECT", "26 ECT", "29 ECT", "32 ECT", "44 ECT", "48 ECT", "50 ECT", "61 ECT", "71 ECT"], font =('Helvetica', 15)) self.listGradoM.grid(row = 5, column = 0) Label(self.page2, font =('Helvetica', 15), text = 'Tipo de unión')\ .grid(row = 4, column = 2) self.listUnion= Combobox(self.page2, state="readonly", values = ["Pegado", "Grapado", "Armado automático"], font =('Helvetica', 15)) self.listUnion.grid(row = 5, column = 2) # AGREGAMOS CONTEIDO A PAGE3 Label(self.page3, font =('Helvetica', 15), text = 'Método de cierre')\ .grid(row = 0, column = 0) self.listCierre= Combobox(self.page3, state="readonly", values = ["Conforme a la TAPPI T 804", "Otro", "No aplica"], font =('Helvetica', 15)) self.listCierre.grid(row = 1, column = 0) Label(self.page3, font =('Helvetica', 15), text = ' ')\ .grid(row = 0, column = 1) Label(self.page3, font =('Helvetica', 15), text = 'Orientación de la prueba')\ .grid(row = 0, column = 2) self.listOrientaC= Combobox(self.page3, state="readonly", values = ["Arriba a abajo", "Extremo a extremo", "Lado a lado"], font =('Helvetica', 15)) self.listOrientaC.grid(row = 1, column = 2) self.IMGbct = Image.open(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/CajaBIedit.png') self.cajaBCT = Label(self.page3, image = self.IMGbct) self.cajaBCT.grid(row = 2, column = 0, columnspan = 3) # AGREGAMOS CONTENIDO A PAGE 4 self.txtLB = 'Ingresar datos o buscar por número de pedido' self.state = TTK.Label(self.page4, font =('Helvetica', 15), text = self.txtLB) self.state.grid(row = 0, column = 0, columnspan = 12) boton1 = self.crearBotonP4(1) boton2 = self.crearBotonP4(2) boton3 = self.crearBotonP4(3) boton4 = self.crearBotonP4(4) boton5 = self.crearBotonP4(5) boton6 = self.crearBotonP4(6) boton7 = self.crearBotonP4(7) boton8 = self.crearBotonP4(8) boton9 = self.crearBotonP4(9) boton0 = self.crearBotonP4(0) botonQ = self.crearBotonP4('Q') botonW = self.crearBotonP4('W') botonE = self.crearBotonP4('E') botonR = self.crearBotonP4('R') botonT = self.crearBotonP4('T') botonY = self.crearBotonP4('Y') botonU = self.crearBotonP4('U') botonI = self.crearBotonP4('I') botonO = self.crearBotonP4('O') botonP = self.crearBotonP4('P') botonA = self.crearBotonP4('A') botonS = self.crearBotonP4('S') botonD = self.crearBotonP4('D') botonF = self.crearBotonP4('F') botonG = self.crearBotonP4('G') botonH = self.crearBotonP4('H') botonJ = self.crearBotonP4('J') botonK = self.crearBotonP4('K') botonL = self.crearBotonP4('L') botonNN= self.crearBotonP4('Ñ') botonZ = self.crearBotonP4('Z') botonX = self.crearBotonP4('X') botonC = self.crearBotonP4('C') botonV = self.crearBotonP4('V') botonB = self.crearBotonP4('B') botonN = self.crearBotonP4('N') botonM = self.crearBotonP4('M') botondot = self.crearBotonP4('.') botonguion = self.crearBotonP4('-') botonguionb = self.crearBotonP4(',') botonErase = self.crearBotonP4(u"\u232B",escribir=False) botonErase['background'] = "red" botonErase.grid(row = 3, column = 11) botonEnter = self.crearBotonP4(u"\u21B5",escribir=False,alto=2) botonEnter['background'] = "green" botonEnter.grid(row = 1, column = 11, rowspan = 2, sticky = 's') botonSpace = Button(self.page4, text=u"\u2423", width=5, height=1, font=("Helvetica",15), command=lambda:self.clickP4(' ',True)) botonSpace.grid(row = 4, column = 11) #Ubicación de los botones botones= [boton1, boton2, boton3, boton4, boton5, boton6, boton7, boton8, boton9, boton0, botonQ, botonW, botonE, botonR, botonT, botonY, botonU, botonI, botonO, botonP, botonA, botonS, botonD, botonF, botonG, botonH, botonJ, botonK, botonL, botonNN, botonZ, botonX, botonC, botonV, botonB, botonN, botonM, botondot, botonguion, botonguionb] contador=0 for fila in range(1,5): for columna in range(10): botones[contador].grid(row=fila,column=columna) contador+=1 self.ChkSe = IntVar() self.RBCliente = Radiobutton(self.page4, text = 'Cliente',font =('Helvetica', 15), variable = self.ChkSe, value = 1) self.RBCliente.grid(row = 5, column = 2, columnspan = 2, sticky = 'w') self.RBProducto = Radiobutton(self.page4, text = 'Producto',font =('Helvetica', 15), variable = self.ChkSe, value = 2) self.RBProducto.grid(row = 5, column = 4, columnspan = 2, sticky = 'w') self.RBBuscar = Radiobutton(self.page4, text = 'Buscar por pedido',font =('Helvetica', 15), variable = self.ChkSe, value = 3) self.RBBuscar.grid(row = 5, column = 6, columnspan = 3, sticky = 'w') self.CBdata2 = Text(self.page4, state="disabled", width=40, height=1, font=("Helvetica",15)) self.CBdata2.grid(row = 6, column = 0, columnspan = 12) self.clienteL = TTK.Label(self.page4, font =('Helvetica', 15), text = 'Cliente:') self.clienteL.grid(row = 7, column = 0, columnspan = 11, sticky = 'w') self.ProductoL = TTK.Label(self.page4, font =('Helvetica', 15), text = 'Producto:') self.ProductoL.grid(row = 8, column = 0, columnspan = 11, sticky = 'w') # AGREGAMOS CONTENIDO A PAGE 5 Label(self.page5, font =('Helvetica', 15), text = '* *').grid(row = 0, # text = '123456789_123456789_123456789_123465789_123456789_123456789_123456789_123456789_12', #text = '____________________________').grid(row = 0, column = 0, columnspan = 3) Label(self.page5, font =('Helvetica', 15), text = '_________________________________________').grid(row = 0, column = 0,) Label(self.page5, font =('Helvetica', 15), text = '_________________________________________').grid(row = 0, column = 1) # Label(self.page5, # font =('Helvetica', 15), # text = '___________________________').grid(row = 0, # column = 2) Label(self.page5, font =('Helvetica', 15), text = 'Verifique los datos ingresado:').grid(row = 0, column = 0, columnspan = 2) self.StxtCliente = StringVar(value = '*') self.txtCliente = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Cliente:') self.txtCliente.grid(row = 1, column = 0, sticky = 'w') self.txtClienteL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtCliente) self.txtClienteL.place(x = 79, y = 28) self.StxtProducto = StringVar(value = '*') self.txtProducto = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Producto: ') self.txtProducto.grid(row = 2, column = 0, columnspan = 2, sticky = "w") self.txtProductoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtProducto) self.txtProductoL.place(x = 99, y = 56) self.StxtLargo = StringVar(value = '*') self.txtLargo = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Largo:') self.txtLargo.grid(row = 3, column = 0, sticky = "w") self.txtLargoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtLargo) self.txtLargoL.place(x= 69, y = 84) self.StxtAlto = StringVar(value = '*') self.txtAlto = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Alto:') self.txtAlto.place(x = 310, y = 84) self.txtAltoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtAlto) self.txtAltoL.place(x = 363, y = 84) self.StxtAncho = StringVar(value = '*') self.txtAncho = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Ancho: ') self.txtAncho.place(x= 590, y = 84) self.txtAnchoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtAncho) self.txtAnchoL.place(x= 666, y = 84) self.StxtStlCj = StringVar(value = '*') self.txtStlCj = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Estilo caja:') self.txtStlCj.grid(row = 4, column = 0, sticky = "w") self.txtStlCjL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtStlCj) self.txtStlCjL.place(x= 110, y = 112) self.StxtTpFlt = StringVar(value = '*') self.txtTpFlt = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Tipo de flauta:') self.txtTpFlt.grid(row = 4, column = 1, sticky = "w") self.txtTpFltL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtTpFlt) self.txtTpFltL.place(x= 594, y = 112) self.StxtDrccnFlt = StringVar(value = '*') self.txtDrccnFlt = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Dirección de la flauta: ') self.txtDrccnFlt.grid(row = 5, column = 0, sticky = "w") self.txtDrccnFltL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtDrccnFlt) self.txtDrccnFltL.place(x= 216, y = 140) self.StxtGrdMtrl = StringVar(value = '*') self.txtGrdMtrl = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Grado del material: ') self.txtGrdMtrl.grid(row = 5, column = 1, sticky = "w") self.txtGrdMtrlL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtGrdMtrl) self.txtGrdMtrlL.place(x= 640, y = 140) self.StxtTpUnn = StringVar(value = '*') self.txtTpUnn = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Tipo de unión: ') self.txtTpUnn.grid(row = 6, column = 0, sticky = "w") self.txtTpUnnL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtTpUnn) self.txtTpUnnL.place(x= 138, y = 168) self.StxtMtdCrr = StringVar(value = '*') self.txtMtdCrr = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Método de cierre: ') self.txtMtdCrr.grid(row = 6, column = 1, sticky = "w") self.txtMtdCrrL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtMtdCrr) self.txtMtdCrrL.place(x= 623, y = 168) self.StxtOrntcn = StringVar(value = '*') self.txtOrntcn = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Orientación de la prueba: ') self.txtOrntcn.grid(row = 7, column = 0, sticky = "w") self.txtOrntcnL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtOrntcn) self.txtOrntcnL.place(x= 243, y = 197) cc = Button(self.page5, font = ('Helvetica', 15, "bold"), text = 'Cerrar', bg = "red", command = self.cerrarB)#.place(x = 20, y = 20) cc.grid(row = 8, column = 0, columnspan = 2) # OBTENER LO QUE CONTIENEN CADA LISTA self.listCaja.bind("<<ComboboxSelected>>", self.getList) self.listCierre.bind("<<ComboboxSelected>>", self.getList) self.listFlauta.bind("<<ComboboxSelected>>", self.getList) self.listFlautaD.bind("<<ComboboxSelected>>", self.getList) self.listGradoM.bind("<<ComboboxSelected>>", self.getList) self.listOrientaC.bind("<<ComboboxSelected>>", self.getList) self.listUnion.bind("<<ComboboxSelected>>", self.getList) self.top.protocol("WM_DELETE_WINDOW", self.cerrar)
def init_gui(self): """init helper""" #setting up frames top_frame = Frame(self.root) mid_frame = Frame(self.root) radio_frame = Frame(self.root) res_frame = Frame(self.root) msg_frame = Frame(self.root) check_frame = Frame(self.root) history_frame = Frame(self.root) btn_frame = Frame(self.root) rating_frame = Frame(self.root) top_frame.pack(side=TOP, fill=X) mid_frame.pack(side=TOP, fill=X) history_frame.pack(side=TOP, fill=BOTH, expand=True) radio_frame.pack(side=TOP, fill=BOTH, expand=True) rating_frame.pack(side=TOP, fill=BOTH, expand=True) res_frame.pack(side=TOP, fill=BOTH, expand=True) check_frame.pack(side=TOP, fill=BOTH, expand=True) msg_frame.pack(side=TOP, fill=BOTH, expand=True) btn_frame.pack(side=TOP, fill=X) #Message ListBox rightscrollbar = Scrollbar(msg_frame) rightscrollbar.pack(side=RIGHT, fill=Y) bottomscrollbar = Scrollbar(msg_frame, orient=HORIZONTAL) bottomscrollbar.pack(side=BOTTOM, fill=X) self.lbMessages = Listbox(msg_frame, yscrollcommand=rightscrollbar.set, xscrollcommand=bottomscrollbar.set, bg="white") self.lbMessages.pack(expand=True, fill=BOTH) rightscrollbar.config(command=self.lbMessages.yview) bottomscrollbar.config(command=self.lbMessages.xview) #History ListBoxes rightscrollbar2 = Scrollbar(history_frame) rightscrollbar2.pack(side=RIGHT, fill=Y) bottomscrollbar2 = Scrollbar(history_frame, orient=HORIZONTAL) bottomscrollbar2.pack(side=BOTTOM, fill=X) self.showhistory = Listbox(history_frame, yscrollcommand=rightscrollbar2.set, xscrollcommand=bottomscrollbar2.set, bg="white") self.showhistory.pack(expand=True, fill=BOTH) rightscrollbar2.config(command=self.showhistory.yview) bottomscrollbar2.config(command=self.showhistory.xview) self.showhistory.bind('<Double-Button-1>', self.select_recent_file) self.set_history_window() #status bar self.status = Label(self.root, text="", bd=1, relief=SUNKEN, anchor=W) self.status.pack(side=BOTTOM, fill=X) #labels self.lblRatingLabel = Label(rating_frame, text='Rating:') self.lblRatingLabel.pack(side=LEFT) self.lblRating = Label(rating_frame, textvariable=self.rating) self.lblRating.pack(side=LEFT) Label(mid_frame, text='Recently Used:').pack(side=LEFT) Label(top_frame, text='Module or package').pack(side=LEFT) #file textbox self.txtModule = Entry(top_frame, background='white') self.txtModule.bind('<Return>', self.run_lint) self.txtModule.pack(side=LEFT, expand=True, fill=X) #results box rightscrollbar = Scrollbar(res_frame) rightscrollbar.pack(side=RIGHT, fill=Y) bottomscrollbar = Scrollbar(res_frame, orient=HORIZONTAL) bottomscrollbar.pack(side=BOTTOM, fill=X) self.results = Listbox(res_frame, yscrollcommand=rightscrollbar.set, xscrollcommand=bottomscrollbar.set, bg="white", font="Courier") self.results.pack(expand=True, fill=BOTH, side=BOTTOM) rightscrollbar.config(command=self.results.yview) bottomscrollbar.config(command=self.results.xview) #buttons Button(top_frame, text='Open', command=self.file_open).pack(side=LEFT) Button(top_frame, text='Open Package', command=(lambda : self.file_open(package=True))).pack(side=LEFT) self.btnRun = Button(top_frame, text='Run', command=self.run_lint) self.btnRun.pack(side=LEFT) Button(btn_frame, text='Quit', command=self.quit).pack(side=BOTTOM) #radio buttons self.information_box = IntVar() self.convention_box = IntVar() self.refactor_box = IntVar() self.warning_box = IntVar() self.error_box = IntVar() self.fatal_box = IntVar() i = Checkbutton(check_frame, text="Information", fg=COLORS['(I)'], variable=self.information_box, command=self.refresh_msg_window) c = Checkbutton(check_frame, text="Convention", fg=COLORS['(C)'], variable=self.convention_box, command=self.refresh_msg_window) r = Checkbutton(check_frame, text="Refactor", fg=COLORS['(R)'], variable=self.refactor_box, command=self.refresh_msg_window) w = Checkbutton(check_frame, text="Warning", fg=COLORS['(W)'], variable=self.warning_box, command=self.refresh_msg_window) e = Checkbutton(check_frame, text="Error", fg=COLORS['(E)'], variable=self.error_box, command=self.refresh_msg_window) f = Checkbutton(check_frame, text="Fatal", fg=COLORS['(F)'], variable=self.fatal_box, command=self.refresh_msg_window) i.select() c.select() r.select() w.select() e.select() f.select() i.pack(side=LEFT) c.pack(side=LEFT) r.pack(side=LEFT) w.pack(side=LEFT) e.pack(side=LEFT) f.pack(side=LEFT) #check boxes self.box = StringVar() # XXX should be generated report = Radiobutton(radio_frame, text="Report", variable=self.box, value="Report", command=self.refresh_results_window) rawMet = Radiobutton(radio_frame, text="Raw metrics", variable=self.box, value="Raw metrics", command=self.refresh_results_window) dup = Radiobutton(radio_frame, text="Duplication", variable=self.box, value="Duplication", command=self.refresh_results_window) ext = Radiobutton(radio_frame, text="External dependencies", variable=self.box, value="External dependencies", command=self.refresh_results_window) stat = Radiobutton(radio_frame, text="Statistics by type", variable=self.box, value="Statistics by type", command=self.refresh_results_window) msgCat = Radiobutton(radio_frame, text="Messages by category", variable=self.box, value="Messages by category", command=self.refresh_results_window) msg = Radiobutton(radio_frame, text="Messages", variable=self.box, value="Messages", command=self.refresh_results_window) report.select() report.grid(column=0, row=0, sticky=W) rawMet.grid(column=1, row=0, sticky=W) dup.grid(column=2, row=0, sticky=W) msg.grid(column=3, row=0, sticky=E) stat.grid(column=0, row=1, sticky=W) msgCat.grid(column=1, row=1, sticky=W) ext.grid(column=2, row=1, columnspan=2, sticky=W) #dictionary for check boxes and associated error term self.msg_type_dict = { 'I' : lambda : self.information_box.get() == 1, 'C' : lambda : self.convention_box.get() == 1, 'R' : lambda : self.refactor_box.get() == 1, 'E' : lambda : self.error_box.get() == 1, 'W' : lambda : self.warning_box.get() == 1, 'F' : lambda : self.fatal_box.get() == 1 } self.txtModule.focus_set()
def __init__(self, parent, root): Toplevel.__init__(self, root) self.title = 'Extract Columns' self.protocol('WM_DELETE_WINDOW', self.free) self.transient(root) self.wm_iconbitmap(ICO) self.shared_data = ExtractionList() self.shared_data.attach(parent) w = self.winfo_screenwidth() h = self.winfo_screenheight() x = w / 2 - 400 y = h / 2 self.geometry('+%d+%d' % (x, y)) window_frame = Frame(self) window_frame.pack(fill=BOTH, expand=True) top_window_frame = Frame(window_frame) top_window_frame.pack(side=TOP, fill=X, expand=False) Label(top_window_frame, text='Columns: ').pack(side=LEFT, padx=10, pady=5) bottom_window_frame = Frame(window_frame, highlightthickness=1, highlightbackground='grey') bottom_window_frame.pack(side=TOP, fill=BOTH, expand=False, padx=10) self.column_map = dict() i = j = 0 for title in parent.column_titles: self.column_map[title] = IntVar() Checkbutton(bottom_window_frame, text=title, variable=self.column_map[title]).\ grid(row=i, column=j, sticky='w') j += 1 if j > 2: i += 1 j = 0 bottom_filetype_frame = Frame(window_frame, highlightthickness=1, highlightbackground='grey') bottom_filetype_frame.pack(side=TOP, expand=False, padx=10, pady=10, anchor='w') self.filetype_var = IntVar() Radiobutton(bottom_filetype_frame, text='*.txt', variable=self.filetype_var, value=TXT).\ pack(side=LEFT) Radiobutton(bottom_filetype_frame, text='*.csv', variable=self.filetype_var, value=CSV).\ pack(side=LEFT) bottom_button_frame = Frame(window_frame) bottom_button_frame.pack(side=TOP, fill=BOTH, expand=False, padx=10, pady=15) Button(bottom_button_frame, text='Extract to File', command=self.extract).pack(side=TOP)
class DATAin: def __init__(self, maestro): # Atributo de conteo''' self.botonClics = 0 self.bandDATA = 3 self.operacion="" self.cliente = '' self.Producto = '' self.alturaDATA = 0 self.anchoDATA = 0 self.largoDATA = 0 self.Datos = [] for i in range (7): self.Datos.append('') self.consoleSQL = PSQLmerma1() #gg = Tkk.Notebook(maestro) self.top = Toplevel(maestro) self.top.title('Introduce medidas de la caja') self.top.update_idletasks() # w = self.top.winfo_screenwidth() # h = self.top.winfo_screenheight() # size = tuple(int(_) for _ in self.top.geometry().split('+')[0].split('x')) # x = w/2 - size[0]/2 # y = h/2 - size[1]/2 # print size + (x, y) # self.top.geometry("+150+60") #self.top.iconbitmap('/home/pi/Desktop/ProgGUI/GUI/resources/ICO/IconoBCT.ico') #MARCO3 ESEL LINEZO DONDE SE DIBUJAN LAS PESTAÑAS self.marco3 = TTK.Notebook(self.top) # CREAMOS EL MARCO PARA CADA UNA DE LAS PESTAÑAS self.page1 = TTK.Frame(self.marco3) self.page2 = TTK.Frame(self.marco3) self.page3 = TTK.Frame(self.marco3) self.page4 = TTK.Frame(self.marco3) self.page5 = TTK.Frame(self.marco3) # AGREGAMOS EL MARCO A LAS PESTAÑAS Y SU NOMBRE self.marco3.add(self.page1, text='Dimensiones de la caja') self.marco3.add(self.page2, text='Descripción de la caja') self.marco3.add(self.page3, text='Descripción de la prueba') self.marco3.add(self.page4, text='Datos del cliente') self.marco3.add(self.page5, text='Resumen de datos') self.marco3.grid() # AGREGAGOS CONTENIDO A PESTAÑA 1 self.IMGcaja = PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/caja.png') self.IMGancho= PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/anchoSelect.png') self.IMGlargo= PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/largoSelect.png') self.IMGalto = PhotoImage(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/altoSelect.png') self.cajaLB = Label(self.page1, image = self.IMGcaja) self.cajaLB.grid(row = 0, column = 4, rowspan = 5, columnspan = 3) self.txtLB = 'Seleccione un botón e ingrese \n las medidas en cm' self.LB = Label(self.page1, font =('Helvetica', 15), text = self.txtLB) self.LB.grid(row = 0, column = 0, columnspan = 4) self.CBdata = Text(self.page1, state="disabled", width=40, height=2, font=("Helvetica",15)) self.CBdata.grid(row = 1, column = 0, columnspan = 4) self.anchoL = Label(self.page1, font =('Helvetica', 15), text = "") self.anchoL.grid(row =4, column = 4, sticky = 's') self.BTNancho = Button(self.page1, width=5, height=1, font=("Helvetica",15), text = 'Ancho', command =lambda: self.selectCB('an')) self.BTNancho.grid(row = 5, column = 4) self.largoL = Label(self.page1, font =('Helvetica', 15), text = "") self.largoL.grid(row =4, column = 5, sticky = 's') self.BTNlargo = Button(self.page1, width=5, height=1, font=("Helvetica",15), text = 'Largo', command =lambda: self.selectCB('la')) self.BTNlargo.grid(row = 5, column = 5) self.altoL = Label(self.page1, font =('Helvetica', 15), text = "") self.altoL.grid(row =4, column = 6, sticky = 's') self.BTNalto = Button(self.page1, width=5, height=1, font=("Helvetica",15), text = 'Alto', command =lambda: self.selectCB('al')) self.BTNalto.grid(row = 5, column = 6) boton1 = self.crearBoton(1) boton2 = self.crearBoton(2) boton3 = self.crearBoton(3) boton4 = self.crearBoton(4) boton5 = self.crearBoton(5) boton6 = self.crearBoton(6) boton7 = self.crearBoton(7) boton8 = self.crearBoton(8) boton9 = self.crearBoton(9) boton0 = self.crearBoton(0,ancho=7) botonErase = self.crearBoton(u"\u232B",escribir=False) botonErase['background'] = "red" botonErase.grid(row = 2, column = 3) botonEnter = self.crearBoton(u"\u21B5",escribir=False) botonEnter['background'] = "green" botonEnter.grid(row = 3, column = 3) botondot = self.crearBoton('.') #Ubicación de los botones botones=[boton7, boton8, boton9, boton4, boton5, boton6, boton1, boton2, boton3, boton0] contador=0 for fila in range(2,5): for columna in range(3): botones[contador].grid(row=fila,column=columna) contador+=1 #Ubicar el último botón al final botones[contador].grid(row=5,column=0,columnspan=2) botondot.grid(row = 5, column = 2) # AGREGAGOS CONTENIDO A PESTAÑA 2 Label(self.page2, font =('Helvetica', 15), text = 'Seleccione:')\ .grid(row = 0, column = 0,columnspan = 5) Label(self.page2, font =('Helvetica', 15), text = 'Estilo de caja')\ .grid(row = 1, column = 0) self.listCaja = Combobox(self.page2, state="readonly", values = ["Caja troquelada", "Caja est" + u"\xe1" + "ndar"], font =('Helvetica', 15)) self.listCaja.grid(row = 2, column = 0) Label(self.page2, font =('Helvetica', 15), text = ' ')\ .grid(row = 2, column = 1) Label(self.page2, font =('Helvetica', 15), text = 'Tipo de flauta')\ .grid(row = 1, column = 2) self.listFlauta = Combobox(self.page2, state="readonly", values = ["Corrugado sencillo B", "Corrugado sencillo C", "Corrugado sencillo E", "Doble corrugado BC", "Doble corrugado EB"], font =('Helvetica', 15)) self.listFlauta.grid(row = 2, column = 2) Label(self.page2, font =('Helvetica', 15), text = ' ')\ .grid(row = 2, column = 3) Label(self.page2, font =('Helvetica', 15), text = 'Dirección de la flauta')\ .grid(row = 1, column = 4) self.listFlautaD= Combobox(self.page2, state="readonly", values = ["Horizontal", "Vertical"], font =('Helvetica', 15)) self.listFlautaD.grid(row = 2, column = 4) Label(self.page2, font =('Helvetica', 15), text = ' ')\ .grid(row = 3, column = 0, columnspan = 3) Label(self.page2, font =('Helvetica', 15), text = 'Grado del material')\ .grid(row = 4, column = 0) self.listGradoM= Combobox(self.page2, state="readonly", values = ["No aplica", "20 ECT", "21 ECT", "23 ECT", "26 ECT", "29 ECT", "32 ECT", "44 ECT", "48 ECT", "50 ECT", "61 ECT", "71 ECT"], font =('Helvetica', 15)) self.listGradoM.grid(row = 5, column = 0) Label(self.page2, font =('Helvetica', 15), text = 'Tipo de unión')\ .grid(row = 4, column = 2) self.listUnion= Combobox(self.page2, state="readonly", values = ["Pegado", "Grapado", "Armado automático"], font =('Helvetica', 15)) self.listUnion.grid(row = 5, column = 2) # AGREGAMOS CONTEIDO A PAGE3 Label(self.page3, font =('Helvetica', 15), text = 'Método de cierre')\ .grid(row = 0, column = 0) self.listCierre= Combobox(self.page3, state="readonly", values = ["Conforme a la TAPPI T 804", "Otro", "No aplica"], font =('Helvetica', 15)) self.listCierre.grid(row = 1, column = 0) Label(self.page3, font =('Helvetica', 15), text = ' ')\ .grid(row = 0, column = 1) Label(self.page3, font =('Helvetica', 15), text = 'Orientación de la prueba')\ .grid(row = 0, column = 2) self.listOrientaC= Combobox(self.page3, state="readonly", values = ["Arriba a abajo", "Extremo a extremo", "Lado a lado"], font =('Helvetica', 15)) self.listOrientaC.grid(row = 1, column = 2) self.IMGbct = Image.open(file = '/home/pi/Desktop/InterfazG-BCT/resources/img/cajaDATA/CajaBIedit.png') self.cajaBCT = Label(self.page3, image = self.IMGbct) self.cajaBCT.grid(row = 2, column = 0, columnspan = 3) # AGREGAMOS CONTENIDO A PAGE 4 self.txtLB = 'Ingresar datos o buscar por número de pedido' self.state = TTK.Label(self.page4, font =('Helvetica', 15), text = self.txtLB) self.state.grid(row = 0, column = 0, columnspan = 12) boton1 = self.crearBotonP4(1) boton2 = self.crearBotonP4(2) boton3 = self.crearBotonP4(3) boton4 = self.crearBotonP4(4) boton5 = self.crearBotonP4(5) boton6 = self.crearBotonP4(6) boton7 = self.crearBotonP4(7) boton8 = self.crearBotonP4(8) boton9 = self.crearBotonP4(9) boton0 = self.crearBotonP4(0) botonQ = self.crearBotonP4('Q') botonW = self.crearBotonP4('W') botonE = self.crearBotonP4('E') botonR = self.crearBotonP4('R') botonT = self.crearBotonP4('T') botonY = self.crearBotonP4('Y') botonU = self.crearBotonP4('U') botonI = self.crearBotonP4('I') botonO = self.crearBotonP4('O') botonP = self.crearBotonP4('P') botonA = self.crearBotonP4('A') botonS = self.crearBotonP4('S') botonD = self.crearBotonP4('D') botonF = self.crearBotonP4('F') botonG = self.crearBotonP4('G') botonH = self.crearBotonP4('H') botonJ = self.crearBotonP4('J') botonK = self.crearBotonP4('K') botonL = self.crearBotonP4('L') botonNN= self.crearBotonP4('Ñ') botonZ = self.crearBotonP4('Z') botonX = self.crearBotonP4('X') botonC = self.crearBotonP4('C') botonV = self.crearBotonP4('V') botonB = self.crearBotonP4('B') botonN = self.crearBotonP4('N') botonM = self.crearBotonP4('M') botondot = self.crearBotonP4('.') botonguion = self.crearBotonP4('-') botonguionb = self.crearBotonP4(',') botonErase = self.crearBotonP4(u"\u232B",escribir=False) botonErase['background'] = "red" botonErase.grid(row = 3, column = 11) botonEnter = self.crearBotonP4(u"\u21B5",escribir=False,alto=2) botonEnter['background'] = "green" botonEnter.grid(row = 1, column = 11, rowspan = 2, sticky = 's') botonSpace = Button(self.page4, text=u"\u2423", width=5, height=1, font=("Helvetica",15), command=lambda:self.clickP4(' ',True)) botonSpace.grid(row = 4, column = 11) #Ubicación de los botones botones= [boton1, boton2, boton3, boton4, boton5, boton6, boton7, boton8, boton9, boton0, botonQ, botonW, botonE, botonR, botonT, botonY, botonU, botonI, botonO, botonP, botonA, botonS, botonD, botonF, botonG, botonH, botonJ, botonK, botonL, botonNN, botonZ, botonX, botonC, botonV, botonB, botonN, botonM, botondot, botonguion, botonguionb] contador=0 for fila in range(1,5): for columna in range(10): botones[contador].grid(row=fila,column=columna) contador+=1 self.ChkSe = IntVar() self.RBCliente = Radiobutton(self.page4, text = 'Cliente',font =('Helvetica', 15), variable = self.ChkSe, value = 1) self.RBCliente.grid(row = 5, column = 2, columnspan = 2, sticky = 'w') self.RBProducto = Radiobutton(self.page4, text = 'Producto',font =('Helvetica', 15), variable = self.ChkSe, value = 2) self.RBProducto.grid(row = 5, column = 4, columnspan = 2, sticky = 'w') self.RBBuscar = Radiobutton(self.page4, text = 'Buscar por pedido',font =('Helvetica', 15), variable = self.ChkSe, value = 3) self.RBBuscar.grid(row = 5, column = 6, columnspan = 3, sticky = 'w') self.CBdata2 = Text(self.page4, state="disabled", width=40, height=1, font=("Helvetica",15)) self.CBdata2.grid(row = 6, column = 0, columnspan = 12) self.clienteL = TTK.Label(self.page4, font =('Helvetica', 15), text = 'Cliente:') self.clienteL.grid(row = 7, column = 0, columnspan = 11, sticky = 'w') self.ProductoL = TTK.Label(self.page4, font =('Helvetica', 15), text = 'Producto:') self.ProductoL.grid(row = 8, column = 0, columnspan = 11, sticky = 'w') # AGREGAMOS CONTENIDO A PAGE 5 Label(self.page5, font =('Helvetica', 15), text = '* *').grid(row = 0, # text = '123456789_123456789_123456789_123465789_123456789_123456789_123456789_123456789_12', #text = '____________________________').grid(row = 0, column = 0, columnspan = 3) Label(self.page5, font =('Helvetica', 15), text = '_________________________________________').grid(row = 0, column = 0,) Label(self.page5, font =('Helvetica', 15), text = '_________________________________________').grid(row = 0, column = 1) # Label(self.page5, # font =('Helvetica', 15), # text = '___________________________').grid(row = 0, # column = 2) Label(self.page5, font =('Helvetica', 15), text = 'Verifique los datos ingresado:').grid(row = 0, column = 0, columnspan = 2) self.StxtCliente = StringVar(value = '*') self.txtCliente = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Cliente:') self.txtCliente.grid(row = 1, column = 0, sticky = 'w') self.txtClienteL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtCliente) self.txtClienteL.place(x = 79, y = 28) self.StxtProducto = StringVar(value = '*') self.txtProducto = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Producto: ') self.txtProducto.grid(row = 2, column = 0, columnspan = 2, sticky = "w") self.txtProductoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtProducto) self.txtProductoL.place(x = 99, y = 56) self.StxtLargo = StringVar(value = '*') self.txtLargo = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Largo:') self.txtLargo.grid(row = 3, column = 0, sticky = "w") self.txtLargoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtLargo) self.txtLargoL.place(x= 69, y = 84) self.StxtAlto = StringVar(value = '*') self.txtAlto = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Alto:') self.txtAlto.place(x = 310, y = 84) self.txtAltoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtAlto) self.txtAltoL.place(x = 363, y = 84) self.StxtAncho = StringVar(value = '*') self.txtAncho = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Ancho: ') self.txtAncho.place(x= 590, y = 84) self.txtAnchoL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtAncho) self.txtAnchoL.place(x= 666, y = 84) self.StxtStlCj = StringVar(value = '*') self.txtStlCj = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Estilo caja:') self.txtStlCj.grid(row = 4, column = 0, sticky = "w") self.txtStlCjL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtStlCj) self.txtStlCjL.place(x= 110, y = 112) self.StxtTpFlt = StringVar(value = '*') self.txtTpFlt = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Tipo de flauta:') self.txtTpFlt.grid(row = 4, column = 1, sticky = "w") self.txtTpFltL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtTpFlt) self.txtTpFltL.place(x= 594, y = 112) self.StxtDrccnFlt = StringVar(value = '*') self.txtDrccnFlt = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Dirección de la flauta: ') self.txtDrccnFlt.grid(row = 5, column = 0, sticky = "w") self.txtDrccnFltL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtDrccnFlt) self.txtDrccnFltL.place(x= 216, y = 140) self.StxtGrdMtrl = StringVar(value = '*') self.txtGrdMtrl = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Grado del material: ') self.txtGrdMtrl.grid(row = 5, column = 1, sticky = "w") self.txtGrdMtrlL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtGrdMtrl) self.txtGrdMtrlL.place(x= 640, y = 140) self.StxtTpUnn = StringVar(value = '*') self.txtTpUnn = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Tipo de unión: ') self.txtTpUnn.grid(row = 6, column = 0, sticky = "w") self.txtTpUnnL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtTpUnn) self.txtTpUnnL.place(x= 138, y = 168) self.StxtMtdCrr = StringVar(value = '*') self.txtMtdCrr = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Método de cierre: ') self.txtMtdCrr.grid(row = 6, column = 1, sticky = "w") self.txtMtdCrrL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtMtdCrr) self.txtMtdCrrL.place(x= 623, y = 168) self.StxtOrntcn = StringVar(value = '*') self.txtOrntcn = Label(self.page5, font = ('Helvetica', 15, 'italic'), text = '*Orientación de la prueba: ') self.txtOrntcn.grid(row = 7, column = 0, sticky = "w") self.txtOrntcnL = Label(self.page5, font = ('Helvetica', 15), textvariable = self.StxtOrntcn) self.txtOrntcnL.place(x= 243, y = 197) cc = Button(self.page5, font = ('Helvetica', 15, "bold"), text = 'Cerrar', bg = "red", command = self.cerrarB)#.place(x = 20, y = 20) cc.grid(row = 8, column = 0, columnspan = 2) # OBTENER LO QUE CONTIENEN CADA LISTA self.listCaja.bind("<<ComboboxSelected>>", self.getList) self.listCierre.bind("<<ComboboxSelected>>", self.getList) self.listFlauta.bind("<<ComboboxSelected>>", self.getList) self.listFlautaD.bind("<<ComboboxSelected>>", self.getList) self.listGradoM.bind("<<ComboboxSelected>>", self.getList) self.listOrientaC.bind("<<ComboboxSelected>>", self.getList) self.listUnion.bind("<<ComboboxSelected>>", self.getList) self.top.protocol("WM_DELETE_WINDOW", self.cerrar) def motion(self, event): self.posy.set(event.y) self.posx.set(event.x) def selectCB(self,selecc): if selecc == 'al': self.LB['text'] = 'Usted selecciono alto' self.cajaLB['image'] = self.IMGalto self.bandDATA = 0 elif selecc == 'an': self.LB['text'] = 'Usted selecciono ancho' self.cajaLB['image'] = self.IMGancho self.bandDATA = 1 elif selecc == 'la': self.LB['text'] = 'Usted selecciono largo' self.cajaLB['image'] = self.IMGlargo self.bandDATA = 2 def crearBoton(self, valor, escribir=True, ancho=5, alto=1): return Button(self.page1, text=valor, width=ancho, height=alto, font=("Helvetica",15), command=lambda:self.click(valor,escribir)) def crearBotonP4(self, valor, escribir=True, ancho=5, alto=1): return Button(self.page4, text=valor, width=ancho, height=alto, font=("Helvetica",15), command=lambda:self.clickP4(valor,escribir)) def conteo(self): self.botonClics += 1 self.btnCLK['text'] = 'Clics totales = ' + str(self.botonClics) def click(self, texto, escribir): if not escribir: if texto==u"\u21B5" and self.operacion!="" and self.bandDATA != 3: if self.bandDATA == 0: try: self.alturaDATA = float(self.operacion) self.LB['text'] = 'Usted ingreso ' + str(self.alturaDATA) + 'cm en altura' self.altoL['text'] = str(self.alturaDATA) + 'cm' self.StxtAlto.set(str(self.alturaDATA) + 'cm') self.changeTXT(self.StxtAlto, str(self.alturaDATA) + 'cm', self.txtAlto, 'Alto:') except ValueError: self.LB['text'] = 'Atención \n El dato ingresado no es un número válido,\n favor de verificar' elif self.bandDATA == 1: try: self.anchoDATA = float(self.operacion) self.LB['text'] = 'Usted ingreso ' + str(self.anchoDATA) + 'cm en ancho' self.changeTXT(self.StxtAncho, str(self.anchoDATA) + 'cm', self.txtAncho, 'Ancho:') self.anchoL['text'] = str(self.anchoDATA) + 'cm' except ValueError: self.LB['text'] = 'Atención \n El dato ingresado no es un número válido,\n favor de verificar' elif self.bandDATA == 2: try: self.largoDATA = float(self.operacion) self.LB['text'] = 'Usted ingreso ' + str(self.largoDATA ) + 'cm en largo' self.changeTXT(self.StxtLargo, str(self.largoDATA ) + 'cm', self.txtLargo, 'Largo:') self.largoL['text'] = str(self.largoDATA ) + 'cm' except ValueError: self.LB['text'] = 'Atención \n El dato ingresado no es un número válido,\n favor de verificar' print 'Hola desde borrar' self.operacion = '' self.limpiarPantalla() elif texto==u"\u232B": self.operacion="" self.limpiarPantalla() #Mostrar texto else: self.operacion+=str(texto) self.mostrarEnPantalla(texto) return def clickP4(self, texto, escribir): self.ChkSel = int(self.ChkSe.get()) print self.ChkSel if not escribir: if texto==u"\u21B5" and self.operacion!="" and self.ChkSel != 0: print 'gg' if self.ChkSel == 1: self.cliente = self.operacion self.clienteL['text'] = 'Cliente: ' + str(self.cliente) self.changeTXT(self.StxtCliente, str(self.cliente), self.txtCliente, 'Cliente:') elif self.ChkSel == 2: self.Producto = self.operacion self.ProductoL['text'] = 'Producto: ' + str(self.Producto) self.changeTXT(self.StxtProducto, str(self.Producto), self.txtProducto, 'Producto:') elif self.ChkSel == 3: self.top.iconify() self.consoleSQL.consulta('pedido', str(self.operacion)) try: self.cliente = self.consoleSQL.cliente self.clienteL['text'] = 'Cliente: ' + str(self.cliente) self.changeTXT(self.StxtCliente, str(self.cliente), self.txtCliente, 'Cliente:') self.Producto = self.consoleSQL.producto self.ProductoL['text'] = 'Producto: ' + str(self.Producto) self.changeTXT(self.StxtProducto, str(self.Producto), self.txtProducto, 'Producto:') except: tkMessageBox.showerror('Atención','No se encontró el pedido favor de verificar') self.operacion = '' self.limpiarPantalla(2) elif texto==u"\u232B": self.operacion="" self.limpiarPantalla(2) elif self.ChkSel == 0: self.top.iconify() tkMessageBox.showerror("Atención", 'Debe seleccionar una opción') #Mostrar texto else: self.operacion+=str(texto) self.mostrarEnPantalla(texto, 2) self.top.deiconify() return def changeTXT(self, StringVarTXT, setStr, LabelTXT, txtLabel): StringVarTXT.set(setStr) LabelTXT['text'] = txtLabel LabelTXT['font'] = ('Helvetica', 15, "bold") def limpiarPantalla(self, cb = 1): if cb ==2: self.CBdata2.configure(state="normal") self.CBdata2.delete("1.0", END) self.CBdata2.configure(state="disabled") else: self.CBdata.configure(state="normal") self.CBdata.delete("1.0", END) self.CBdata.configure(state="disabled") return def mostrarEnPantalla(self, valor, cb = 1): if cb == 2: self.CBdata2.configure(state="normal") self.CBdata2.insert(END, valor) self.CBdata2.configure(state="disabled") else: self.CBdata.configure(state="normal") self.CBdata.insert(END, valor) self.CBdata.configure(state="disabled") return def getList(self, event): self.CheckList(self.listCaja, 0, self.StxtStlCj, 'Estilo caja: ', self.txtStlCj) self.CheckList(self.listFlauta, 1, self.StxtTpFlt, 'Tipo de flauta: ', self.txtTpFlt) self.CheckList(self.listFlautaD, 2, self.StxtDrccnFlt, 'Dirección de la flauta: ', self.txtDrccnFlt) self.CheckList(self.listGradoM, 3, self.StxtGrdMtrl, 'Grado del material: ', self.txtGrdMtrl) self.CheckList(self.listUnion, 4, self.StxtTpUnn, 'Tipo de unión: ', self.txtTpUnn) self.CheckList(self.listCierre, 5, self.StxtMtdCrr, 'Método de cierre: ', self.txtMtdCrr) self.CheckList(self.listOrientaC, 6, self.StxtOrntcn, 'Orientación de la prueba: ', self.txtOrntcn) #hola def CheckList(self, lista, num_list, StrVarL, txt, labelTXT,): gg = lista.get() print gg if gg != '': self.Datos[num_list] = lista.get() if num_list == 0: if self.Datos[0] == (u'Caja est\xe1ndar'): self.Datos[0] = str('Caja estándar') elif num_list == 4: if self.Datos[4] == (u'Armado autom\xe1tico'): self.Datos[4] = ('Armado automático') StrVarL.set(self.Datos[num_list]) labelTXT['text'] = txt labelTXT['font'] = ('Helvetica', 15, "bold") def cerrar(self): self.top.iconify() tkMessageBox.showinfo("Atención", "Si desea salir, debe hacerlo desde el botón ubicado en la pestaña de Resumen de datos.") self.top.deiconify() def cerrarB(self): self.top.iconify() respuesta=tkMessageBox.askyesno("Atención", "Usted esta a punto de salir, ¿Los datos ingresados son los correctos?") if respuesta==True: self.top.destroy() try: self.top.deiconify() except: print "Ventana cerrada" #ventana = Tk() #final = DATAin(ventana) #ventana.mainloop()
class PAGUI(Frame): def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent self.initUI() def initUI(self): self.parent.title("Parameter Analyzer Control") self.style = Style() self.style.theme_use("clam") self.pack(fill=BOTH, expand=True) self.columnconfigure(1, weight=1) self.columnconfigure(3, pad=7) # self.rowconfigure(3, weight=1) # self.rowconfigure(5, pad=7) #set up instance variables self.directory = StringVar() self.fname = StringVar() self.fname_final = StringVar() self.device = StringVar() self.chip = StringVar() self.run = StringVar() self.toplabel = Label(self, text="Dummy label at the top of the widget", justify="center") self.bottomlabel = Label( self, text="for help/info see github.com/leobrowning92/pa-control", justify="center", font="arial 11 italic") self.directory_btn = Button(self, text="Directory", command=self.askdirectory) self.filename_btn = Button(self, text="Filename", command=self.askfile) # self.exit_btn = Button(self, text="Exit", command=self.quit) # self.exit_btn.grid(row=5, column=0, padx=5) self.update_btn = Button(self, text="Update", command=self.runUpdate) self.iterdevice_btn = Button(self, text="Iterate [device]", command=self.newDevice) self.iterchip_btn = Button(self, text="Iterate [chip]", command=self.newChip) self.iterrun_btn = Button(self, text="Iterate [run]", command=self.newRun) self.chip.set("001") self.chipnum_entry = Entry(self, textvariable=self.chip, width=5) self.device.set("01") self.devicenum_entry = Entry(self, textvariable=self.device, width=5) self.run.set("001") self.runnum_entry = Entry(self, textvariable=self.run, width=5) self.directory_entry = Entry(self, textvariable=self.directory) self.fname.set( 'Chip[chip]_[device]_run[run]_somenotes_[INFO]_[time].csv') self.fname_final.set( make_fname_final(self.fname.get(), self.chip.get(), self.device.get(), self.run.get())) self.fname_entry = Entry(self, textvariable=self.fname) self.fname_final_label = Label(self, textvariable=self.fname_final, justify="center", font="arial 11 italic") # this button runs pulldata with parameter set by # self.datatype, which stores the value of self.radbtn self.pulldata_btn = Button(self, text="Pull Data", command=self.pulldata) self.datarun_btn = Button(self, text="Run Data sweep", command=self.datarun) #datatype=1 => diode, datatype=2 => FET self.datatype = IntVar() self.datatype1_radiobutton = Radiobutton(self, text='Diode (VF, IF)', variable=self.datatype, value=1) self.datatype2_radiobutton = Radiobutton(self, text='FET (VG, VDS, ID, IG)', variable=self.datatype, value=2) #grid alignments of all widgets self.toplabel.grid(column=0, columnspan=3, sticky=W, pady=4, padx=5) self.directory_btn.grid(row=1, column=0) self.directory_entry.grid(row=1, column=1, columnspan=2, padx=5, sticky=E + W) self.filename_btn.grid(row=2, column=0) self.fname_entry.grid(row=2, column=1, columnspan=2, padx=5, sticky=E + W) self.fname_final_label.grid(row=3, column=1, columnspan=2, sticky=N + E + W, pady=4, padx=5) self.iterchip_btn.grid(row=4, column=0, sticky=N) self.chipnum_entry.grid(row=4, column=1, padx=5, sticky=W) self.iterdevice_btn.grid(row=5, column=0, sticky=N) self.devicenum_entry.grid(row=5, column=1, padx=5, sticky=W) self.iterrun_btn.grid(row=6, column=0, sticky=N) self.runnum_entry.grid(row=6, column=1, padx=5, sticky=W) self.update_btn.grid(row=7, column=0, padx=5) self.pulldata_btn.grid(row=7, column=3, padx=5, sticky=E) self.datarun_btn.grid(row=6, column=3, padx=5, sticky=E) self.datatype1_radiobutton.grid(row=7, column=1, padx=5, sticky=N + E + S) self.datatype2_radiobutton.grid(row=7, column=2, padx=5, sticky=N + W + S) self.bottomlabel.grid(row=8, column=0, columnspan=3, sticky=W, pady=4, padx=5) #action funcctions for the various buttons def newChip(self): if self.fname.get() == '': self.askfile() else: try: self.chip.set(str((int(self.chip.get()) + 1)).zfill(3)) self.device.set(str(1).zfill(2)) except Exception as e: print(e) self.runUpdate() def newRun(self): if self.fname.get() == '': self.askfile() else: try: self.run.set(str((int(self.run.get()) + 1)).zfill(3)) except Exception as e: print(e) self.runUpdate() def newDevice(self): if self.fname.get() == '': self.askfile() else: try: self.device.set(str((int(self.device.get()) + 1)).zfill(2)) except Exception as e: print(e) self.runUpdate() def runUpdate(self): self.fname_final.set( make_fname_final(self.fname.get(), self.chip.get(), self.device.get(), self.run.get())) def askdirectory(self): """Returns a selected directoryname.""" self.directory.set(tkFileDialog.askdirectory()) def askfile(self): fullpath = tkFileDialog.askopenfilename() if "/" in fullpath: i = fullpath.rfind("/") if "\\" in fullpath: i = fullpath.rfind("\\") # self.fname_final.set(fullpath[i + 1:]) self.fname.set(fullpath[i + 1:]) def pulldata(self): self.runUpdate() if self.datatype.get() == 1: download_data(path=self.directory.get(), filename=self.fname_final.get(), values=['VF', 'IF']) elif self.datatype.get() == 2: download_data(path=self.directory.get(), filename=self.fname_final.get(), values=['VG', 'VDS', 'ID', 'IG']) def datarun(self): self.runUpdate() if self.datatype.get() == 1: print("oh no we havent written a script for that yet!") elif self.datatype.get() == 2: run_FET_series(self.fname_final.get(), self.directory.get())
def initUI(self): self.parent.title("Parameter Analyzer Control") self.style = Style() self.style.theme_use("clam") self.pack(fill=BOTH, expand=True) self.columnconfigure(1, weight=1) self.columnconfigure(3, pad=7) # self.rowconfigure(3, weight=1) # self.rowconfigure(5, pad=7) #set up instance variables self.directory = StringVar() self.fname = StringVar() self.fname_final = StringVar() self.device = StringVar() self.chip = StringVar() self.run = StringVar() self.toplabel = Label(self, text="Dummy label at the top of the widget", justify="center") self.bottomlabel = Label( self, text="for help/info see github.com/leobrowning92/pa-control", justify="center", font="arial 11 italic") self.directory_btn = Button(self, text="Directory", command=self.askdirectory) self.filename_btn = Button(self, text="Filename", command=self.askfile) # self.exit_btn = Button(self, text="Exit", command=self.quit) # self.exit_btn.grid(row=5, column=0, padx=5) self.update_btn = Button(self, text="Update", command=self.runUpdate) self.iterdevice_btn = Button(self, text="Iterate [device]", command=self.newDevice) self.iterchip_btn = Button(self, text="Iterate [chip]", command=self.newChip) self.iterrun_btn = Button(self, text="Iterate [run]", command=self.newRun) self.chip.set("001") self.chipnum_entry = Entry(self, textvariable=self.chip, width=5) self.device.set("01") self.devicenum_entry = Entry(self, textvariable=self.device, width=5) self.run.set("001") self.runnum_entry = Entry(self, textvariable=self.run, width=5) self.directory_entry = Entry(self, textvariable=self.directory) self.fname.set( 'Chip[chip]_[device]_run[run]_somenotes_[INFO]_[time].csv') self.fname_final.set( make_fname_final(self.fname.get(), self.chip.get(), self.device.get(), self.run.get())) self.fname_entry = Entry(self, textvariable=self.fname) self.fname_final_label = Label(self, textvariable=self.fname_final, justify="center", font="arial 11 italic") # this button runs pulldata with parameter set by # self.datatype, which stores the value of self.radbtn self.pulldata_btn = Button(self, text="Pull Data", command=self.pulldata) self.datarun_btn = Button(self, text="Run Data sweep", command=self.datarun) #datatype=1 => diode, datatype=2 => FET self.datatype = IntVar() self.datatype1_radiobutton = Radiobutton(self, text='Diode (VF, IF)', variable=self.datatype, value=1) self.datatype2_radiobutton = Radiobutton(self, text='FET (VG, VDS, ID, IG)', variable=self.datatype, value=2) #grid alignments of all widgets self.toplabel.grid(column=0, columnspan=3, sticky=W, pady=4, padx=5) self.directory_btn.grid(row=1, column=0) self.directory_entry.grid(row=1, column=1, columnspan=2, padx=5, sticky=E + W) self.filename_btn.grid(row=2, column=0) self.fname_entry.grid(row=2, column=1, columnspan=2, padx=5, sticky=E + W) self.fname_final_label.grid(row=3, column=1, columnspan=2, sticky=N + E + W, pady=4, padx=5) self.iterchip_btn.grid(row=4, column=0, sticky=N) self.chipnum_entry.grid(row=4, column=1, padx=5, sticky=W) self.iterdevice_btn.grid(row=5, column=0, sticky=N) self.devicenum_entry.grid(row=5, column=1, padx=5, sticky=W) self.iterrun_btn.grid(row=6, column=0, sticky=N) self.runnum_entry.grid(row=6, column=1, padx=5, sticky=W) self.update_btn.grid(row=7, column=0, padx=5) self.pulldata_btn.grid(row=7, column=3, padx=5, sticky=E) self.datarun_btn.grid(row=6, column=3, padx=5, sticky=E) self.datatype1_radiobutton.grid(row=7, column=1, padx=5, sticky=N + E + S) self.datatype2_radiobutton.grid(row=7, column=2, padx=5, sticky=N + W + S) self.bottomlabel.grid(row=8, column=0, columnspan=3, sticky=W, pady=4, padx=5)
def build_devices_arch(self): #8bits name_checked = self.main.configIDE.config("Board", "board_8", "Pinguino 2550") arch_8 = filter(lambda board: board.arch == 8, self.main.pinguinoAPI._boards_) arch_8.sort() frame_left = Frame(self.frame_8b) frame_left.pack(expand=True, fill=BOTH, side=LEFT) frame_right = Frame(self.frame_8b) frame_right.pack(expand=True, fill=BOTH, side=RIGHT) parent = frame_left #left for board in arch_8: if arch_8.index(board) == (len(arch_8) / 2) + 1: parent = frame_right #rigth radio = Radiobutton( parent, text=board.name, anchor="w", width=10, value=board.name, variable=self.dev8_var, command=lambda: self.set_board_name(board.name, "8")) radio.pack(expand=True, fill=X, side=TOP) #radio = QtGui.QRadioButton(self.board_config.groupBox_devices_8) #self.board_config.gridLayout_device_8.addWidget(radio, count, side, 1, 1) #radio.setText(board.name) #radio.setToolTip(board.proc) if name_checked == board.name: radio.select() #self.connect(radio, QtCore.SIGNAL("clicked()"), self.set_board_name(board.name, "8")) #32bits name_checked = self.main.configIDE.config("Board", "board_32", "PIC32 Pinguino OTG") arch_32 = filter(lambda board: board.arch == 32, self.main.pinguinoAPI._boards_) arch_32.sort() frame_left0 = Frame(self.frame_32b) frame_left0.pack(expand=True, fill=BOTH, side=LEFT) frame_right0 = Frame(self.frame_32b) frame_right0.pack(expand=True, fill=BOTH, side=RIGHT) parent = frame_left0 #left for board in arch_32: if arch_32.index(board) == (len(arch_32) / 2) + 1: parent = frame_right0 #rigth radio = Radiobutton( parent, text=board.name, anchor="w", width=10, value=board.name, variable=self.dev32_var, command=lambda: self.set_board_name(board.name, "32")) radio.pack(expand=True, fill=X, side=TOP) #radio = QtGui.QRadioButton(self.board_config.groupBox_devices_32) #self.board_config.gridLayout_device_32.addWidget(radio, count, side, 1, 1) #radio.setText(board.name) #radio.setToolTip(board.proc) if name_checked == board.name: radio.select()
def initUI(self): self.parent.title("Parameter Analyzer Control") self.style = Style() self.style.theme_use("clam") self.pack(fill=BOTH, expand=True) self.columnconfigure(1, weight=1) self.columnconfigure(3, pad=7) # self.rowconfigure(3, weight=1) # self.rowconfigure(5, pad=7) #set up instance variables self.directory = StringVar() self.fname = StringVar() self.fname_final=StringVar() self.device = StringVar() self.chip = StringVar() self.run = StringVar() self.toplabel = Label(self, text="Dummy label at the top of the widget",justify="center") self.bottomlabel = Label(self, text="for help/info see github.com/leobrowning92/pa-control",justify="center",font="arial 11 italic") self.directory_btn = Button(self, text="Directory", command=self.askdirectory) self.filename_btn = Button(self, text="Filename", command=self.askfile) # self.exit_btn = Button(self, text="Exit", command=self.quit) # self.exit_btn.grid(row=5, column=0, padx=5) self.update_btn = Button(self, text="Update", command=self.runUpdate) self.iterdevice_btn = Button(self, text="Iterate [device]", command=self.newDevice) self.iterchip_btn = Button(self, text="Iterate [chip]", command=self.newChip) self.iterrun_btn = Button(self, text="Iterate [run]", command=self.newRun) self.chip.set("001") self.chipnum_entry = Entry(self, textvariable=self.chip,width=5) self.device.set("01") self.devicenum_entry = Entry(self, textvariable=self.device,width=5) self.run.set("001") self.runnum_entry = Entry(self, textvariable=self.run,width=5) self.directory_entry = Entry(self, textvariable=self.directory) self.fname.set('Chip[chip]_[device]_run[run]_somenotes_[INFO]_[time].csv') self.fname_final.set(make_fname_final(self.fname.get(), self.chip.get(),self.device.get(),self.run.get())) self.fname_entry = Entry(self, textvariable=self.fname) self.fname_final_label = Label(self, textvariable=self.fname_final, justify="center", font="arial 11 italic") # this button runs pulldata with parameter set by # self.datatype, which stores the value of self.radbtn self.pulldata_btn = Button(self, text="Pull Data", command=self.pulldata) self.datarun_btn = Button(self, text="Run Data sweep", command=self.datarun) #datatype=1 => diode, datatype=2 => FET self.datatype = IntVar() self.datatype1_radiobutton = Radiobutton( self, text='Diode (VF, IF)', variable=self.datatype, value=1) self.datatype2_radiobutton = Radiobutton( self, text='FET (VG, VDS, ID, IG)', variable=self.datatype, value=2) #grid alignments of all widgets self.toplabel.grid(column=0,columnspan=3, sticky=W, pady=4, padx=5) self.directory_btn.grid(row=1, column=0) self.directory_entry.grid(row=1, column=1, columnspan=2, padx=5, sticky=E + W) self.filename_btn.grid(row=2, column=0) self.fname_entry.grid(row=2, column=1, columnspan=2, padx=5, sticky=E + W) self.fname_final_label.grid(row=3,column=1, columnspan=2, sticky=N + E + W, pady=4, padx=5) self.iterchip_btn.grid(row=4, column=0, sticky=N) self.chipnum_entry.grid(row=4, column=1,padx=5, sticky=W) self.iterdevice_btn.grid(row=5, column=0, sticky=N) self.devicenum_entry.grid(row=5, column=1,padx=5, sticky=W) self.iterrun_btn.grid(row=6, column=0, sticky=N) self.runnum_entry.grid(row=6, column=1,padx=5, sticky=W) self.update_btn.grid(row=7, column=0, padx=5) self.pulldata_btn.grid(row=7, column=3, padx=5,sticky=E) self.datarun_btn.grid(row=6, column=3, padx=5,sticky=E) self.datatype1_radiobutton.grid(row=7,column=1,padx=5,sticky=N + E + S) self.datatype2_radiobutton.grid(row=7,column=2,padx=5,sticky=N + W + S) self.bottomlabel.grid(row=8,column=0,columnspan=3, sticky=W, pady=4, padx=5)
class BoardConfig(Frame): def __init__(self, master=None, main=None): Frame.__init__(self, master) self.parent = master self.main = main self.parent.geometry("336x424") self.parent.title(os.getenv("NAME") + " - Board Config") self.master.configure(padx=10, pady=10) self.intvar = IntVar() #Arch self.arch_var = IntVar() lf_arch = LabelFrame(self.parent, text="Architecture") lf_arch.pack(fill=X, expand=True, side=TOP) frame_arch = Frame(lf_arch) frame_arch.pack(fill=X, expand=True, side=TOP) frame_left1 = Frame(frame_arch) frame_left1.pack(expand=True, fill=BOTH, side=LEFT) frame_right1 = Frame(frame_arch) frame_right1.pack(expand=True, fill=BOTH, side=RIGHT) self.radioButton_arch_8 = Radiobutton(frame_left1, text="8-bit ", anchor="w", width=10, value=8, variable=self.arch_var, command=self.update_mode) self.radioButton_arch_8.pack(fill=X, side=TOP) self.radioButton_arch_32 = Radiobutton(frame_right1, text="32-bit", anchor="w", width=10, value=32, variable=self.arch_var, command=self.update_mode) self.radioButton_arch_32.pack(fill=X, side=TOP) #Mode self.mode_var = StringVar() lf_mode = LabelFrame(self.parent, text="Programming mode") lf_mode.pack(fill=X, expand=True, side=TOP) frame_mode = Frame(lf_mode) frame_mode.pack(fill=X, expand=True, side=TOP) frame_left2 = Frame(frame_mode) frame_left2.pack(expand=True, fill=BOTH, side=LEFT) frame_right2 = Frame(frame_mode) frame_right2.pack(expand=True, fill=BOTH, side=RIGHT) self.radioButton_mode_icsp = Radiobutton(frame_left2, text="ICSP", anchor="w", width=10, value="icsp", variable=self.mode_var, command=self.update_mode) self.radioButton_mode_icsp.pack(side=TOP, fill=X) self.radioButton_mode_bootloader = Radiobutton( frame_right2, text="Bootloader", anchor="w", width=10, value="bootloader", variable=self.mode_var, command=self.update_mode) self.radioButton_mode_bootloader.pack(side=TOP, fill=X) #Bootloader self.boot_var = StringVar() self.lf_boot = LabelFrame(self.parent, text="Bootloader") self.lf_boot.pack(fill=X, expand=True, side=TOP) frame_boot = Frame(self.lf_boot) frame_boot.pack(fill=X, expand=True, side=TOP) frame_left3 = Frame(frame_boot) frame_left3.pack(expand=True, fill=BOTH, side=LEFT) frame_right3 = Frame(frame_boot) frame_right3.pack(expand=True, fill=BOTH, side=RIGHT) self.radioButton_bootloader_v1_v2 = Radiobutton(frame_left3, text="v1.x or v2.x", anchor="w", width=10, value="v1_v2", variable=self.boot_var) self.radioButton_bootloader_v1_v2.pack(fill=X, side=TOP, expand=True) self.radioButton_bootloader_v4 = Radiobutton(frame_right3, text="v4.x", anchor="w", width=10, value="v4", variable=self.boot_var) self.radioButton_bootloader_v4.pack(fill=X, side=TOP, expand=True) #Devices 8bit self.dev8_var = StringVar() self.lf_dev8 = LabelFrame(self.parent, text="Devices") self.lf_dev8.pack(fill=X, expand=True, side=TOP) self.frame_8b = Frame(self.lf_dev8) self.frame_8b.pack(fill=X, expand=True, side=TOP) #Devices 32bit self.dev32_var = StringVar() self.lf_dev32 = LabelFrame(self.parent, text="Devices") self.lf_dev32.pack(fill=X, expand=True, side=TOP) self.frame_32b = Frame(self.lf_dev32) self.frame_32b.pack(fill=X, expand=True, side=TOP) frame_buttons = Frame(self.parent) Button(frame_buttons, text="Accept", command=self.accept_config).pack(fill=X, expand=True, side=RIGHT) Button(frame_buttons, text="Cancel", command=self.quit).pack(fill=X, expand=True, side=LEFT) frame_buttons.pack(fill=X, expand=True, side=BOTTOM) frame_advance = Frame(self.parent) self.advanceoptions = Button(frame_advance, text="Advance options", command=self.advance) self.advanceoptions.pack(fill=X, expand=True, side=BOTTOM) frame_advance.pack(fill=X, expand=True, side=BOTTOM) frame_warning = Frame(self.parent) self.label_warning = Label(frame_warning, fg="red", text="warning!", anchor="w") self.label_warning.pack(fill=X, expand=True, side=BOTTOM) frame_warning.pack(fill=X, expand=True, side=BOTTOM) self.build_devices_arch() self.load_config() self.init_groups() #---------------------------------------------------------------------- def quit(self): self.master.destroy() #---------------------------------------------------------------------- def build_devices_arch(self): #8bits name_checked = self.main.configIDE.config("Board", "board_8", "Pinguino 2550") arch_8 = filter(lambda board: board.arch == 8, self.main.pinguinoAPI._boards_) arch_8.sort() frame_left = Frame(self.frame_8b) frame_left.pack(expand=True, fill=BOTH, side=LEFT) frame_right = Frame(self.frame_8b) frame_right.pack(expand=True, fill=BOTH, side=RIGHT) parent = frame_left #left for board in arch_8: if arch_8.index(board) == (len(arch_8) / 2) + 1: parent = frame_right #rigth radio = Radiobutton( parent, text=board.name, anchor="w", width=10, value=board.name, variable=self.dev8_var, command=lambda: self.set_board_name(board.name, "8")) radio.pack(expand=True, fill=X, side=TOP) #radio = QtGui.QRadioButton(self.board_config.groupBox_devices_8) #self.board_config.gridLayout_device_8.addWidget(radio, count, side, 1, 1) #radio.setText(board.name) #radio.setToolTip(board.proc) if name_checked == board.name: radio.select() #self.connect(radio, QtCore.SIGNAL("clicked()"), self.set_board_name(board.name, "8")) #32bits name_checked = self.main.configIDE.config("Board", "board_32", "PIC32 Pinguino OTG") arch_32 = filter(lambda board: board.arch == 32, self.main.pinguinoAPI._boards_) arch_32.sort() frame_left0 = Frame(self.frame_32b) frame_left0.pack(expand=True, fill=BOTH, side=LEFT) frame_right0 = Frame(self.frame_32b) frame_right0.pack(expand=True, fill=BOTH, side=RIGHT) parent = frame_left0 #left for board in arch_32: if arch_32.index(board) == (len(arch_32) / 2) + 1: parent = frame_right0 #rigth radio = Radiobutton( parent, text=board.name, anchor="w", width=10, value=board.name, variable=self.dev32_var, command=lambda: self.set_board_name(board.name, "32")) radio.pack(expand=True, fill=X, side=TOP) #radio = QtGui.QRadioButton(self.board_config.groupBox_devices_32) #self.board_config.gridLayout_device_32.addWidget(radio, count, side, 1, 1) #radio.setText(board.name) #radio.setToolTip(board.proc) if name_checked == board.name: radio.select() #self.connect(radio, QtCore.SIGNAL("clicked()"), self.set_board_name(board.name, "32")) #---------------------------------------------------------------------- def load_config(self): self.main.configIDE.load_config() arch = self.main.configIDE.config("Board", "arch", 8) getattr(self.radioButton_arch_8, "select" if (arch == 8) else "deselect")() getattr(self.radioButton_arch_32, "select" if (arch == 32) else "deselect")() if arch == 32: self.advanceoptions.pack(fill=X, expand=True, side=BOTTOM) else: self.advanceoptions.forget() mode = self.main.configIDE.config("Board", "mode", "bootloader") getattr(self.radioButton_mode_bootloader, "select" if (mode == "bootloader") else "deselect")() getattr(self.radioButton_mode_icsp, "select" if (mode == "icsp") else "deselect")() bootloader = self.main.configIDE.config("Board", "bootloader", "v1_v2") getattr(self.radioButton_bootloader_v1_v2, "select" if (bootloader == "v1_v2") else "deselect")() getattr(self.radioButton_bootloader_v4, "select" if (bootloader == "v4") else "deselect")() self.update_mode() #---------------------------------------------------------------------- def update_mode(self): mode_boot = self.mode_var.get() == "bootloader" arch_8 = self.arch_var.get() == 8 if mode_boot and arch_8: self.lf_boot.pack(fill=X, expand=True, side=TOP) else: self.lf_boot.forget() self.init_groups() if not mode_boot: self.label_warning.configure( text="WARNING!! this mode can overwite the bootloader code.") else: self.label_warning.configure(text="") #---------------------------------------------------------------------- def set_board_name(self, name, arch): def dummy(): self.main.configIDE.set("Board", "board_" + arch, name) return dummy #---------------------------------------------------------------------- def init_groups(self): self.lf_dev32.forget() self.lf_dev8.forget() if self.arch_var.get() == 8: self.lf_dev8.pack(fill=X, expand=True, side=TOP) self.advanceoptions.forget() else: self.lf_dev32.pack(fill=X, expand=True, side=TOP) self.advanceoptions.pack(fill=X, expand=True, side=BOTTOM) #---------------------------------------------------------------------- def save_config(self): #if self.board_config.radioButton_arch_8.isChecked(): arch = 8 #else: arch = 32 self.main.configIDE.set("Board", "arch", self.arch_var.get()) #if self.board_config.radioButton_mode_bootloader.isChecked(): mode = "bootloader" #else: mode = "icsp" self.main.configIDE.set("Board", "mode", self.mode_var.get()) #if self.board_config.radioButton_bootloader_v1_v2.isChecked(): bootloader = "v1_v2" #else: bootloader = "v4" self.main.configIDE.set("Board", "bootloader", self.boot_var.get()) name = self.main.configIDE.config("Board", "board_" + str(self.arch_var.get()), None) self.main.configIDE.set("Board", "board", name) #---------------------------------------------------------------------- def accept_config(self): self.save_config() self.main.configIDE.save_config() self.main.statusbar_ide(self.main.get_status_board()) self.close_advance() self.quit() #---------------------------------------------------------------------- def advance(self): root = Toplevel() self.frame_advance = BoardConfigAdvance(master=root, main=self.main) self.frame_advance.mainloop() #---------------------------------------------------------------------- def close_advance(self): try: assert self.frame_advance except: return self.frame_advance.quit()
def __init__(self, master=None, main=None): Frame.__init__(self, master) self.parent = master self.main = main self.parent.geometry("336x424") self.parent.title(os.getenv("NAME") + " - Board Config") self.master.configure(padx=10, pady=10) self.intvar = IntVar() #Arch self.arch_var = IntVar() lf_arch = LabelFrame(self.parent, text="Architecture") lf_arch.pack(fill=X, expand=True, side=TOP) frame_arch = Frame(lf_arch) frame_arch.pack(fill=X, expand=True, side=TOP) frame_left1 = Frame(frame_arch) frame_left1.pack(expand=True, fill=BOTH, side=LEFT) frame_right1 = Frame(frame_arch) frame_right1.pack(expand=True, fill=BOTH, side=RIGHT) self.radioButton_arch_8 = Radiobutton(frame_left1, text="8-bit ", anchor="w", width=10, value=8, variable=self.arch_var, command=self.update_mode) self.radioButton_arch_8.pack(fill=X, side=TOP) self.radioButton_arch_32 = Radiobutton(frame_right1, text="32-bit", anchor="w", width=10, value=32, variable=self.arch_var, command=self.update_mode) self.radioButton_arch_32.pack(fill=X, side=TOP) #Mode self.mode_var = StringVar() lf_mode = LabelFrame(self.parent, text="Programming mode") lf_mode.pack(fill=X, expand=True, side=TOP) frame_mode = Frame(lf_mode) frame_mode.pack(fill=X, expand=True, side=TOP) frame_left2 = Frame(frame_mode) frame_left2.pack(expand=True, fill=BOTH, side=LEFT) frame_right2 = Frame(frame_mode) frame_right2.pack(expand=True, fill=BOTH, side=RIGHT) self.radioButton_mode_icsp = Radiobutton(frame_left2, text="ICSP", anchor="w", width=10, value="icsp", variable=self.mode_var, command=self.update_mode) self.radioButton_mode_icsp.pack(side=TOP, fill=X) self.radioButton_mode_bootloader = Radiobutton( frame_right2, text="Bootloader", anchor="w", width=10, value="bootloader", variable=self.mode_var, command=self.update_mode) self.radioButton_mode_bootloader.pack(side=TOP, fill=X) #Bootloader self.boot_var = StringVar() self.lf_boot = LabelFrame(self.parent, text="Bootloader") self.lf_boot.pack(fill=X, expand=True, side=TOP) frame_boot = Frame(self.lf_boot) frame_boot.pack(fill=X, expand=True, side=TOP) frame_left3 = Frame(frame_boot) frame_left3.pack(expand=True, fill=BOTH, side=LEFT) frame_right3 = Frame(frame_boot) frame_right3.pack(expand=True, fill=BOTH, side=RIGHT) self.radioButton_bootloader_v1_v2 = Radiobutton(frame_left3, text="v1.x or v2.x", anchor="w", width=10, value="v1_v2", variable=self.boot_var) self.radioButton_bootloader_v1_v2.pack(fill=X, side=TOP, expand=True) self.radioButton_bootloader_v4 = Radiobutton(frame_right3, text="v4.x", anchor="w", width=10, value="v4", variable=self.boot_var) self.radioButton_bootloader_v4.pack(fill=X, side=TOP, expand=True) #Devices 8bit self.dev8_var = StringVar() self.lf_dev8 = LabelFrame(self.parent, text="Devices") self.lf_dev8.pack(fill=X, expand=True, side=TOP) self.frame_8b = Frame(self.lf_dev8) self.frame_8b.pack(fill=X, expand=True, side=TOP) #Devices 32bit self.dev32_var = StringVar() self.lf_dev32 = LabelFrame(self.parent, text="Devices") self.lf_dev32.pack(fill=X, expand=True, side=TOP) self.frame_32b = Frame(self.lf_dev32) self.frame_32b.pack(fill=X, expand=True, side=TOP) frame_buttons = Frame(self.parent) Button(frame_buttons, text="Accept", command=self.accept_config).pack(fill=X, expand=True, side=RIGHT) Button(frame_buttons, text="Cancel", command=self.quit).pack(fill=X, expand=True, side=LEFT) frame_buttons.pack(fill=X, expand=True, side=BOTTOM) frame_advance = Frame(self.parent) self.advanceoptions = Button(frame_advance, text="Advance options", command=self.advance) self.advanceoptions.pack(fill=X, expand=True, side=BOTTOM) frame_advance.pack(fill=X, expand=True, side=BOTTOM) frame_warning = Frame(self.parent) self.label_warning = Label(frame_warning, fg="red", text="warning!", anchor="w") self.label_warning.pack(fill=X, expand=True, side=BOTTOM) frame_warning.pack(fill=X, expand=True, side=BOTTOM) self.build_devices_arch() self.load_config() self.init_groups()
def endGUI(): global choice choice = v.get() # print(choice) root.quit() root.destroy() # exit() # close_window() # root.destroy() def quitGUI(): root.quit() root.destroy() sys.exit('aborted!') RB1 = Radiobutton(root, text='PVM', variable=v, value='PVM').pack(anchor=W) RB2 = Radiobutton(root, text='PV', variable=v, value='PV').pack(anchor=W) RB3 = Radiobutton(root, text='PUV', variable=v, value='PUV').pack(anchor=W) okButton = Button(root, text='OK', command=endGUI).pack(anchor=S) cancelButton = Button(root, text="Cancel", command=quitGUI).pack(anchor=W) choice = v.get() root.mainloop() # exit() # root.update() # print(choice) elif len(set(pyrolist)) == 1: # global choice # print(pyrolist[0]) choice = pyrolist[0]
class Game: """ This is our Game - everything important is handled here """ def __init__(self, parent): self.parent = parent self.level = 1 # create a board self.board = Board(self.parent, 100, "#ECECEC") # hex color gray self.board.draw_board() # create players self.player1 = Player("Human") self.player2 = Player("Computer") self.level_var = IntVar() # setting the player to Human as the Human starts self.player = self.player1 self.initialize_controls() self.layout() def initialize_controls(self, rest=False): label_text = StringVar() label_text.set("It is a %s's turn" % self.player.name) self.board.canvas.bind('<Button-1>', self.move) self.label = Label(self.board.container, textvariable=label_text) self.level1 = Radiobutton(self.board.container, text="Easy", variable=self.level_var, value=1, command=self.update_level) self.level2 = Radiobutton(self.board.container, text="Medium", variable=self.level_var, value=2, command=self.update_level) self.level3 = Radiobutton(self.board.container, text="Hard", variable=self.level_var, value=3, command=self.update_level) self.reset_button = Button(self.board.container, text="Reset", width=25, command=self.restart) def layout(self): # register buttons to board's container self.label.grid() self.level1.grid(row=0, column=1, sticky=W) self.level2.grid(row=1, column=1, sticky=W) self.level3.grid(row=2, column=1, sticky=W) self.level_var.set(self.level) self.reset_button.grid(row=4, sticky=E) def update_level(self): self.level = self.level_var.get() def restart(self): ''' Restart the game from the very beginning, reinitialize everything ''' self.board.container.destroy() self.player1.clean_moves() self.player2.clean_moves() self.board = Board(self.parent, 100, "#ECECEC") self.board.draw_board() self.player = self.player1 self.initialize_controls(rest=True) self.layout() def move(self, event): """ This method is called when the button is clicked :param event: this is a mouse click with coordinates """ if self.player.name == "Computer": self.computers_move() else: self.humans_move(event) def computers_move(self): xy_key = self.make_a_move(self.level) if xy_key is None: # something went wrong # need to handle it correctly self.result("We can't make a move any more!", "error") return x, y = self.board.translate_cells_dict_key_to_text_coords(xy_key) self.board.canvas.create_text(x, y, text="O", font=("Purisa", 60)) # update the unused cells dictionary self.player.add_move(self.board.unused_cells_dict[xy_key]) self.board.update_unused_cells_dict(xy_key) if self.check_if_won(): return self.player = self.player1 def humans_move(self, event): """ This function handles :param event: this is a click event """ if len(self.board.get_unused_cells_dict()) == 0: self.result("The game is over! Click Reset button", "info") return # a little logic to get the top left corner coords to draw the text floor_x, floor_y = self.board.get_floor_coord(event.x, event.y) xy_key = self.board.convert_coord_to_key(floor_x, floor_y) if not self.board.check_if_key_available(xy_key): self.result( "This cell is already busy - please, make another move", "warning") return x, y = self.board.translate_cells_dict_key_to_text_coords(xy_key) self.board.canvas.create_text(x, y, text="X", font=("Purisa", 60)) # update the unused cells dictionary self.player.add_move(self.board.unused_cells_dict[xy_key]) self.board.update_unused_cells_dict(xy_key) if self.check_if_won(): return self.player = self.player2 # imitate a button click for a computer move # with the event = None self.move(None) def make_a_move(self, level): """ Here we make a move according to the computer intelligence level """ unused_cells = self.board.get_unused_cells_dict() # if there's no more unused cells left # we can't move if len(unused_cells) == 0: return None cell_key = "" cells_list = unused_cells.keys() if level == 1: cell_key = choice(cells_list) if level == 3: # if it is the first move if len(unused_cells) == 8: corner_values = [1, 3, 7, 9] # if the first move was made in the corner if any(x in corner_values for x in self.player1.moves): return "11" # else if the center field is taken elif "11" not in unused_cells.keys(): tmp_unused_cells = [] for key, value in unused_cells.iteritems(): if value in corner_values: tmp_unused_cells.append(key) return choice(tmp_unused_cells) if level == 2 or level == 3: # check if there's any pair where we can win tmp_cell_key_computer = self.check_twos(self.player2) if tmp_cell_key_computer == []: # if there's no such pair we need to prevent human from winning tmp_cell_key_human = self.check_twos(self.player1) if tmp_cell_key_human == []: cell_key = choice(cells_list) else: cell_key = choice(tmp_cell_key_human) else: cell_key = choice(tmp_cell_key_computer) return cell_key def check_twos(self, player): result_list = [] for item in self.board.winning_combos: tmp_twos_dict = [[item[1], item[2]], [item[0], item[2]], [item[0], item[1]]] if tmp_twos_dict[0][0] in player.moves and tmp_twos_dict[0][ 1] in player.moves: result_list.append(item[0]) if tmp_twos_dict[1][0] in player.moves and tmp_twos_dict[1][ 1] in player.moves: result_list.append(item[1]) if tmp_twos_dict[2][0] in player.moves and tmp_twos_dict[2][ 1] in player.moves: result_list.append(item[2]) result_keys = self.board.convert_vals_to_keys(result_list) return result_keys def check_if_won(self): ''' Here we define if the current user wins the game or is t a tie ''' # if we did not do the 3 moves yet we could not have won if len(self.player.moves) < 3: return False for combo in self.board.winning_combos: if combo[0] in self.player.moves and \ combo[1] in self.player.moves and \ combo[2] in self.player.moves: self.result("%s wins!" % self.player.name, "info") self.board.unused_cells_dict = {} return True if len(self.board.get_unused_cells_dict()) == 0: self.result("It's a TIE!!!!", "info") return True def result(self, text, show_opt): ''' This function is gonna show the message box above the board ''' if show_opt == "info": tkMessageBox.showinfo(title="Congraulations!", message=text) elif show_opt == "warning": tkMessageBox.showwarning(title="Warning!", message=text) elif show_opt == "error": tkMessageBox.showerror(title="Error!!!", message=text)
def add_radio_button(self, text, index): maptype = self.maptypes[index] Radiobutton(self.radiogroup, text=maptype, variable=self.radiovar, value=index, command=lambda:self.usemap(maptype)).grid(row=0, column=index)
def __init__(self, parent): top = self.top = Toplevel(parent) Label(top, text="Pick your color").pack() self.v = 0; rb1 = Radiobutton(top, text="Yellow",value=YELLOW,command=self.sari) rb1.pack() rb1.select() rb2 = Radiobutton(top, text="Green",value=GREEN,command=self.yesil) rb2.pack() rb2.deselect() b = Button(top, text="OK", command=self.ok) b.pack(pady=5)
def create_other_buttons(self): f = self.make_frame("Direction") btn = Radiobutton(f, variable=self.engine.backvar, value=1, text="Up") btn.pack(side="left") if self.engine.isback(): btn.invoke() btn = Radiobutton(f, variable=self.engine.backvar, value=0, text="Down") btn.pack(side="left") if not self.engine.isback(): btn.invoke()