columnspan=2, padx=2, pady=0, ) inc = Label(root, text="Welcome to Slate") inc.grid(row=0, column=0) save_button = Button(root, text="Save", command=save_as) save_button.grid(row=0, column=3) font = Menubutton(root, text="Font") font.grid(row=0, column=2) # learn the modern way to execute dropdown menus font.menu = Menu(font, tearoff=0) font["menu"] = font.menu Helvetica = IntVar() arial = IntVar() times = IntVar() Courier = IntVar() font.menu.add_checkbutton(label="Courier", variable=Courier, command=Font_Courier) font.menu.add_checkbutton(label="Helvetica", variable=Helvetica, command=Font_Helvetica) root.protocol("WM_DELETE_WINDOW", on_closing)
def RoomAvailibity(): currentDate = datetime.datetime.now() currentDay = date.today() #current date for schedule nextDay1 = date.today() + datetime.timedelta(days=1) nextDay2 = date.today() + datetime.timedelta(days=2) nextDay3 = date.today() + datetime.timedelta(days=3) nextDay4 = date.today() + datetime.timedelta(days=4) nextDay5 = date.today() + datetime.timedelta(days=5) nextDay6 = date.today() + datetime.timedelta(days=6) nextDay7 = date.today() + datetime.timedelta(days=7) year = currentDate.year day = currentDate.day month = currentDate.month # root=Tk() # root.title("Key") # root.geometry("200x200+1000+100") c2window = Tk() c2window.title("Available rooms") c2window.geometry("1000x600+10+100") conn = sqlite3.connect('hotel.db') cur = conn.cursor() sql = ' SELECT * FROM Room' cur.execute(sql) getAll = cur.fetchall() print(getAll[0]) def checkIn(h): c2window.destroy() room(h) a = 99 for row in range(22): for column in range(9): if row == 0: #day of the week lable0 = Label(c2window, text="Room Number", bg="black", fg="white", padx=3, pady=3) lable0.grid(row=0, column=0, sticky="nsew", padx=1, pady=1) lable3 = Label(c2window, text=currentDay.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable3.grid(row=0, column=1, sticky="nsew", padx=1, pady=1) lable4 = Label(c2window, text=nextDay1.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable4.grid(row=0, column=2, sticky="nsew", padx=1, pady=1) lable3 = Label(c2window, text=nextDay2.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable3.grid(row=0, column=3, sticky="nsew", padx=1, pady=1) lable3 = Label(c2window, text=nextDay3.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable3.grid(row=0, column=4, sticky="nsew", padx=1, pady=1) lable3 = Label(c2window, text=nextDay4.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable3.grid(row=0, column=5, sticky="nsew", padx=1, pady=1) lable3 = Label(c2window, text=nextDay5.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable3.grid(row=0, column=6, sticky="nsew", padx=1, pady=1) lable3 = Label(c2window, text=nextDay6.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable3.grid(row=0, column=7, sticky="nsew", padx=1, pady=1) lable3 = Label(c2window, text=nextDay7.strftime('%A'), bg="black", fg="white", padx=3, pady=3) lable3.grid(row=0, column=8, sticky="nsew", padx=1, pady=1) elif row == 1: #date lable2 = Label(c2window, text=str(currentDay.month) + "/" + str(currentDay.day)) lable2.grid(row=1, column=1, sticky="nsew", padx=1, pady=1) lable2 = Label(c2window, text=str(nextDay1.month) + "/" + str(nextDay1.day)) lable2.grid(row=1, column=2, sticky="nsew", padx=1, pady=1) lable2 = Label(c2window, text=str(nextDay2.month) + "/" + str(nextDay2.day)) lable2.grid(row=1, column=3, sticky="nsew", padx=1, pady=1) lable2 = Label(c2window, text=str(nextDay3.month) + "/" + str(nextDay3.day)) lable2.grid(row=1, column=4, sticky="nsew", padx=1, pady=1) lable2 = Label(c2window, text=str(nextDay4.month) + "/" + str(nextDay4.day)) lable2.grid(row=1, column=5, sticky="nsew", padx=1, pady=1) lable2 = Label(c2window, text=str(nextDay5.month) + "/" + str(nextDay5.day)) lable2.grid(row=1, column=6, sticky="nsew", padx=1, pady=1) lable2 = Label(c2window, text=str(nextDay6.month) + "/" + str(nextDay6.day)) lable2.grid(row=1, column=7, sticky="nsew", padx=1, pady=1) lable2 = Label(c2window, text=str(nextDay7.month) + "/" + str(nextDay7.day)) lable2.grid(row=1, column=8, sticky="nsew", padx=1, pady=1) elif column == 0: a += 1 label = Label(c2window, text=a) label.grid(row=row, column=column, sticky="nsew", padx=1, pady=1) else: label6 = Menubutton(c2window, text="Available") label6.grid(row=row, column=column, sticky="nsew", padx=1, pady=1) c2window.grid_columnconfigure(column, weight=1, uniform=1) label6.menu = Menu(label6) label6["menu"] = label6.menu if column == 1: label6.menu.add_command( label="check In", command=lambda roomNumber=a: checkIn(roomNumber)) else: label6.menu.add_command( label="Reservation", command=lambda roomNumber=a: reservationSystem()) # lambda h = h ,row= row, column=column, l= label : availableRoom(row,column,h,l)) # label.menu.add_command (label = "Reservation", command=lambda h= h, row= row, column=column, l= label : occupiedRoom(row,column,h,l)) def loadCheckin(): conn = sqlite3.connect('hotel.db') cur = conn.cursor() sql = ' SELECT * FROM Room WHERE CheckIN = ' + str(1) cur.execute(sql) result = cur.fetchall() def loadrooms(row, column, first_name): widget = c2window.grid_slaves(row=row, column=column)[0] widget.configure(bg="blue", fg="white", text=first_name) for row in result: if row[2] == 'Unavailable/Occupied': cur = conn.cursor() # sql = 'SELECT first_name, last_name FROM guests WHERE guest_id=' + str(row[6]) # sql= 'SELECT CheckInDate , CheckOutDate from Room UNION ALL SELECT first_name, last_name from guests WHERE guest_id=' +str(row[6]) sql = 'SELECT RoomNumber,first_name, last_name, CheckInDate, CheckOutDate from guests INNER JOIN Room on Room.guestID = guests.guest_id' cur.execute(sql) guest = cur.fetchall() for row in guest: print(row) year1, month1, day1 = map(int, row[4].split('/')) d = date(year1, month1, day1) year, month, day = map(int, row[3].split('/')) c = date(year, month, day) days = (d - c).days cur = conn.cursor() # sql = 'SELECT first_name, last_name FROM guests WHERE guest_id=' + str(row[6]) # sql= 'SELECT CheckInDate , CheckOutDate from Room UNION ALL SELECT first_name, last_name from guests WHERE guest_id=' +str(row[6]) sql = 'SELECT RowX, ColumnY FROM RoomAvailability WHERE RoomNumber =' + row[ 0] cur.execute(sql) roomHere = cur.fetchall() print(days) if days == 0: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) elif days == 1: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 1, row[1]) elif days == 2: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 1, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 2, row[1]) elif days == 3: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 1, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 2, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 3, row[1]) elif days == 4: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 1, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 2, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 3, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 4, row[1]) elif days == 5: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 1, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 2, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 3, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 4, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 5, row[1]) elif days == 6: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 1, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 2, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 3, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 4, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 5, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 6, row[1]) elif days == 7: loadrooms(roomHere[0][0], roomHere[0][1], row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 1, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 2, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 3, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 4, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 5, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 6, row[1]) loadrooms(roomHere[0][0], roomHere[0][1] + 7, row[1]) loadCheckin()
def __init__(self, *args, **kwargs): Page.__init__(self, *args, **kwargs) self.configuration = Configuration().load_configuration() self.api = WalletAPI() self.tokens = self.api.list_tokens(self.configuration) self.eth_balance, _ = self.api.get_balance(self.configuration) def change_token(token): if token == 'ETH': self.eth_balance, _ = self.api.get_balance(self.configuration) else: self.eth_balance, _ = self.api.get_balance( self.configuration, token) balance.set(str(self.eth_balance) + ' ' + token) token_symbol = StringVar() token_symbol.set('ETH') balance = StringVar() balance.set(str(self.eth_balance) + ' ' + token_symbol.get()) mb = Menubutton(self, width=60, textvariable=token_symbol, relief=RAISED) mb.grid() mb.menu = Menu(mb, tearoff=0) mb["menu"] = mb.menu mb.menu.add_radiobutton( label="ETH", variable=token_symbol, value='ETH', command=lambda: change_token(token_symbol.get())) for token in self.tokens: mb.menu.add_radiobutton( label=token, variable=token_symbol, value=token, command=lambda: change_token(token_symbol.get())) mb.pack() label = Label(self, textvariable=balance, width=60, font=(None, 30)) label.pack() lbl_address = Label(self, text="To address:", width=60, font=(None, 20)) lbl_address.pack() entry_address = Entry(self, font=(None, 20), width=60, justify=CENTER) entry_address.pack() lbl_amount = Label(self, text="Amount:", width=60, font=(None, 20)) lbl_amount.pack() entry_amount = Entry(self, font=(None, 20), width=60, justify=CENTER) entry_amount.pack() lbl_passphrase = Label(self, text="Passphrase:", width=60, font=(None, 20)) lbl_passphrase.pack() entry_passphrase = Entry(self, font=(None, 20), width=60, justify=CENTER) entry_passphrase.pack() btn_send = Button( self, text="Send", width=60, font=(None, 16), command=lambda: self.send_transaction(entry_address.get( ), entry_amount.get(), entry_passphrase.get(), token_symbol.get())) btn_send.pack() btn_back = Button(self, text="Back", width=60, font=(None, 16), command=self.navigate_home_page) btn_back.pack()
from tkinter import ( Tk, Menubutton, RAISED, Menu, IntVar ) layar = Tk() layar.title("Menu Button") layar.geometry("300x100") mb = Menubutton( master=layar, text="condiment", relief=RAISED) mb.grid() mb.menu = Menu( master=mb, tearoff=0) mb["menu"] = mb.menu mayoVar = IntVar() ketchVar = IntVar() mb.menu.add_checkbutton(label="mayo", variable=mayoVar) mb.menu.add_checkbutton(label="ketch", variable=ketchVar) mb.pack() layar.mainloop()
scale = Scale(top, from_=10, to=40, orient=HORIZONTAL, command=resize) scale.set(12) # 绘画界面,fill=X,expand=1表示可以被撑开 scale.pack(fill=X, expand=1) quit_tk = Button(top, text="QUIT", command=top.quit, activeforeground='white', activebackground='red') quit_tk.pack() mb_lang = Menubutton(top, text='Language') mb_lang.menu = Menu(mb_lang) # 生成菜单项 for item in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']: mb_lang.menu.add_command(label=item) mb_lang['menu'] = mb_lang.menu mb_lang.pack(side=LEFT) # 添加向菜单中添加checkbutton项 mb_os = Menubutton(top, text='OS') mb_os.menu = Menu(mb_os) for item in ['Unix', 'Linux', 'Soloris', 'Windows']: mb_os.menu.add_checkbutton(label=item) mb_os['menu'] = mb_os.menu mb_os.pack(side=LEFT) # 向菜单中添加radiobutton项
def __init__(self, *args, **kwargs): Page.__init__(self, *args, **kwargs) self.configuration = Configuration().load_configuration() self.api = WalletAPI() self.tokens = self.api.list_tokens(self.configuration) self.eth_balance, self.address = self.api.get_balance( self.configuration) def refresh(): change_token(token_symbol.get()) def change_token(token): if token == 'ETH': self.eth_balance, self.address = self.api.get_balance( self.configuration) else: self.eth_balance, self.address = self.api.get_balance( self.configuration, token) balance.set(str(self.eth_balance) + ' ' + token) token_symbol = StringVar() token_symbol.set('ETH') balance = StringVar() balance.set(str(self.eth_balance) + ' ' + token_symbol.get()) mb = Menubutton(self, width=60, textvariable=token_symbol, relief=RAISED) mb.grid() mb.menu = Menu(mb, tearoff=0) mb["menu"] = mb.menu mb.menu.add_radiobutton( label="ETH", variable=token_symbol, value='ETH', command=lambda: change_token(token_symbol.get())) for token in self.tokens: mb.menu.add_radiobutton( label=token, variable=token_symbol, value=token, command=lambda: change_token(token_symbol.get())) mb.menu.add_radiobutton(label="Add new token ...", command=self.navigate_add_token_page) mb.pack() label_address_lbl = Label(self, text='Address:', width=60, font=(None, 10, "bold")) label_address_lbl.pack() label_address = Label(self, text=self.address, width=60, font=(None, 10)) label_address.pack() label_balance = Label(self, textvariable=balance, width=60, font=(None, 30)) label_balance.pack() btn_refresh = Button(self, text="Refresh", command=refresh, width=60, font=(None, 16)) btn_refresh.pack() btn_copy_address = Button(self, text="Copy address", command=self.copy_address, width=60, font=(None, 16)) btn_copy_address.pack() btn_send_transaction = Button(self, text="Send Transaction", command=self.navigate_transaction_page, width=60, font=(None, 16)) btn_send_transaction.pack()
def boldDoc(): global textarea textarea.config(font=('arial', 14, 'bold')) root = Tk() root.title("MicroService") savebtn = Button( root, command=saveDoc, text="Save", ) savebtn.grid(row=1, column=0) savebtn.config(font=('cursive', 16, 'bold'), bg="Hotpink", fg="white") fontbtn = Menubutton(root, text="Font") fontbtn.config(font=('arial', 16, 'bold'), bg="#00FFFF", fg="white") fontbtn.grid(row=1, column=1) fontbtn.menu = Menu(fontbtn, tearoff=0) fontbtn["menu"] = fontbtn.menu fontbtn.menu.add_checkbutton(label="Arial", command=Arial) fontbtn.menu.add_checkbutton(label="Algerian", command=Algerian) fontbtn.menu.add_checkbutton(label="Cambria", command=Cambria) fontbtn.menu.add_checkbutton(label="Courier", command=Courier) boldbtn = Button(root, command=boldDoc, text="Bold") boldbtn.grid(row=1, column=2) boldbtn.config(font=('arial', 16, 'bold'), bg="#8B0000", fg="white") textarea = Text(root) textarea.grid(row=2, columnspan=5) root.mainloop()
def roomType(): roomroot = Tk() roomroot.title("Key") roomroot.geometry("410x150+850+50") roomwindow = Toplevel() roomwindow.title("Room Type") roomwindow.geometry("800x200+0+50") h = 99 #set room to start at 99 then add 1 to make 100 initial starting room def closeWindow(roomNumber, l): roomwindow.destroy() room(roomNumber, l) roomroot.destroy() def makeAvailable(roomNumber): conn = sqlite3.connect('hotel.db') cur = conn.cursor() sql = 'UPDATE Room SET RoomStatus = "Available",CHeckIN = ' + str( 0) + ', GuestID = ' + str('null') + ' WHERE roomNumber = ' + str( roomNumber) cur.execute(sql) conn.commit() def makeUnavailable(roomNumber): conn = sqlite3.connect('hotel.db') cur = conn.cursor() sql = 'UPDATE Room SET RoomStatus = "Unavailable/Occupied" WHERE roomNumber = ' + str( roomNumber) cur.execute(sql) conn.commit() def makeRoomDirty(roomNumber): conn = sqlite3.connect('hotel.db') cur = conn.cursor() sql = 'UPDATE Room SET RoomStatus = "Unavailable/Dirty" WHERE roomNumber = ' + str( roomNumber) cur.execute(sql) conn.commit() def makeRoomMaintance(roomNumber): conn = sqlite3.connect('hotel.db') cur = conn.cursor() sql = 'UPDATE Room SET RoomStatus = "Unavailable/Maintenance" WHERE roomNumber = ' + str( roomNumber) cur.execute(sql) conn.commit() #function to change color depends on status of the room def loadDirtyRoom(row, column): widget = roomwindow.grid_slaves(row=row, column=column)[0] widget.configure(bg="pink", fg="black") def loadOccupiedRoom(row, column): widget = roomwindow.grid_slaves(row=row, column=column)[0] widget.configure(bg="blue", fg="black") def loadMaintenanceRoom(row, column): widget = roomwindow.grid_slaves(row=row, column=column)[0] widget.configure(bg="red", fg="white") def loadAvailableRoom(row, column): widget = roomwindow.grid_slaves(row=row, column=column)[0] widget.configure(bg="green") def availableRoom(row, column, h, l): # print(label.grid_info()) makeAvailable(h) # widget= window.grid_slaves(row=row, column=column)[0] # widget.configure(bg="green") l.configure(bg="green") def dirtyRoom(row, column, h, l): #print(label.grid_info()) # makeRoomDirty(h) # loadDirtyRoom(row,column) # # widget= window.grid_slaves(row=row, column=column)[0] # # widget.configure(bg="pink",fg="black") # l.configure(bg="pink",fg="black") conn = sqlite3.connect('hotel.db') sql5 = 'SELECT * FROM Room WHERE RoomNumber=' + str(h) cur = conn.cursor() cur.execute(sql5) print(h) result = cur.fetchall() print(result) for row in result: if (row[2] == "Available" or row[2] == "Unavailable/Maintenance" or row[2] == "Unavailable/Occupied"): MsgBox = messagebox.askquestion('Room Dirty?', 'Is room dirty??') if MsgBox == 'yes': l.config(bg="pink", fg="white") makeRoomDirty(h) else: pass if (row[2] == "Unavailable/Dirty"): MsgBox = messagebox.askquestion('Room Dirty?', 'Make room Available?') if MsgBox == 'yes': availableRoom(row, column, h, l) else: pass def occupiedRoom(row, column, h, l): #print(label.grid_info()) room(h, l) l.config(bg='blue', fg='black') # widget= window.grid_slaves(row=row, column=column)[0] # widget.configure(bg="blue",fg="black") def maintenanceRoom(row, column, h, l): #print(label.grid_info()) # l.config(bg="red", fg="white") # makeRoomMaintance(h) # widget= window.grid_slaves(row=row, column=column)[0] # widget.configure(bg="red",fg="white") conn = sqlite3.connect('hotel.db') sql5 = 'SELECT * FROM Room WHERE RoomNumber=' + str(h) cur = conn.cursor() cur.execute(sql5) print(h) result = cur.fetchall() print(result) for row in result: if (row[2] == "Available" or row[2] == "Unavailable/Dirty" or row[2] == "Unavailable/Occupied"): MsgBox = messagebox.askquestion('Room Maintanance?', 'Room Need Maintenance?') if MsgBox == 'yes': l.config(bg="red", fg="white") makeRoomMaintance(h) else: pass if (row[2] == "Unavailable/Maintenance"): MsgBox = messagebox.askquestion('Room Maintanance?', 'Make room Available?') if MsgBox == 'yes': availableRoom(row, column, h, l) else: pass for row in range(10): #populate room and room types for column in range(6): if row == 0: lable1 = Label(roomwindow, text="Room Number", bg="black", fg="white", padx=3, pady=3) lable1.grid(row=0, column=1, sticky="nsew", padx=1, pady=1, columnspan=8) elif row == 0 and column == 0: lable0 = Label(roomwindow, text="") lable0.grid(row=0, column=0, sticky="nsew", padx=1, pady=1) elif column == 0 and row == 1: lable2 = Label(roomwindow, text="King Size bed", bg="black", fg="white", padx=3, pady=3) lable2.grid(row=1, column=0, sticky="nsew", padx=1, pady=1) elif column == 0 and row == 2: lable3 = Label(roomwindow, text="Double Queen Bed", bg="black", fg="white", padx=3, pady=3) lable3.grid(row=2, column=0, sticky="nsew", padx=1, pady=1) elif row == 3 and column == 0: lable4 = Label(roomwindow, text="Double Queen Bed With Kitchen", bg="black", fg="white", padx=3, pady=3) lable4.grid(row=3, column=0, sticky="nsew", padx=1, pady=1) elif row == 4 and column == 0: lable5 = Label(roomwindow, text="Suite", bg="black", fg="white", padx=3, pady=3) lable5.grid(row=4, column=0, sticky="nsew", padx=1, pady=1) elif row == 5: label6 = Label(roomroot, text="Key", bg="Gray", fg="white", padx=3, pady=3, font="24") label6.grid(row=5, column=1, sticky="nsew", padx=1, pady=1, columnspan=6) elif row == 6: labelG = Label(roomroot, text="Maintenance", bg="red", fg="white") labelG.grid(row=6, column=5, sticky="nsew", padx=0, pady=1, columnspan=1) labelG = Label(roomroot, text="Available", bg="green", fg="white") labelG.grid(row=6, column=2, sticky="nsew", padx=0, pady=1, columnspan=1) labelG = Label(roomroot, text="Occupied", bg="blue", fg="white") labelG.grid(row=6, column=3, sticky="nsew", padx=0, pady=1, columnspan=1) labelG = Label(roomroot, text="Dirty", bg="pink", fg="black") labelG.grid(row=6, column=4, sticky="nsew", padx=0, pady=1, columnspan=1) elif row == 7: labelh = Label( roomroot, text="To check out please select occupied again", font="18", bg="grey", fg="white") labelh.grid(row=7, column=2, columnspan=4) elif row == 8: labelh = Label( roomroot, text= "To Make room Available click on the coressponding Status", font="18", bg="grey", fg="white") labelh.grid(row=8, column=2, columnspan=4) elif row == 9: labelh = Label(roomroot, text="To exit please close the Key window", font="18", bg="grey", fg="white") labelh.grid(row=9, column=2, columnspan=4) else: h += 1 #using Menu Button to let user select status of the room label = Menubutton(roomwindow, text=h, bg="green", fg="white", padx=1, pady=1) label.grid(row=row, column=column, sticky="nsew", padx=1, pady=1) roomwindow.grid_columnconfigure(column, weight=1, uniform=1) label.menu = Menu(label) label["menu"] = label.menu label.menu.add_command( label="available", command=lambda h=h, row=row, column=column, l=label: availableRoom(row, column, h, l)) label.menu.add_command( label="occupied", command=lambda h=h, row=row, column=column, l=label: occupiedRoom(row, column, h, l)) label.menu.add_command( label="dirty", command=lambda h=h, row=row, column=column, l=label: dirtyRoom(row, column, h, l)) label.menu.add_command( label="maintenance", command=lambda h=h, row=row, column=column, l=label: maintenanceRoom(row, column, h, l)) def reloadWindow(): conn = sqlite3.connect('hotel.db') sql5 = 'SELECT * FROM Room' cur = conn.cursor() cur.execute(sql5) result = cur.fetchall() for row in result: print(row) if (row[2] == "Unavailable/Occupied"): sql2 = 'SELECT RowX, ColumnY FROM RoomType WHERE RoomNumber =' + row[ 0] cur.execute(sql2) roomResult = cur.fetchall() for temp in roomResult: loadOccupiedRoom(temp[0], temp[1]) if (row[2] == "Unavailable/Dirty"): sql3 = 'SELECT RowX, ColumnY FROM RoomType WHERE RoomNumber =' + row[ 0] cur.execute(sql3) roomResult1 = cur.fetchall() for temp in roomResult1: loadDirtyRoom(temp[0], temp[1]) if (row[2] == "Unavailable/Maintenance"): sql4 = 'SELECT RowX, ColumnY FROM RoomType WHERE RoomNumber =' + row[ 0] cur.execute(sql4) roomResult2 = cur.fetchall() for temp in roomResult2: loadMaintenanceRoom(temp[0], temp[1]) if (row[2] == "Available"): sql4 = 'SELECT RowX, ColumnY FROM RoomType WHERE RoomNumber =' + row[ 0] cur.execute(sql4) roomResult2 = cur.fetchall() for temp in roomResult2: loadAvailableRoom(temp[0], temp[1]) reloadWindow()
pealkiri.grid(column=1, row=0, padx=10, pady=10, sticky=(N, S, W, E)) silt1 = ttk.Label(raam, text="Rusikas") silt1.grid(column=1, row=1, padx=10, pady=10, sticky=(E)) silt2 = ttk.Label(raam, text="Kõik sõrmed püsti") silt2.grid(column=1, row=2, padx=10, pady=10, sticky=(E)) silt3 = ttk.Label(raam, text="Üks sõrm püsti") silt3.grid(column=1, row=3, padx=10, pady=10, sticky=(E)) menüü = Menubutton(raam, text="Vali funktsioon", textvariable="Funktsioon 1", bg="gray60", activebackground="gray30", activeforeground="snow2") menüü.menu = Menu(menüü) menüü["menu"] = menüü.menu menüülist(menüü) menüü2 = Menubutton(raam, text="Vali funktsioon", bg="gray60", activebackground="gray30", activeforeground="snow2") menüü2.menu = Menu(menüü2) menüü2["menu"] = menüü2.menu menüülist(menüü2) menüü3 = Menubutton(raam, text="Vali funktsioon", bg="gray60",
def __init__(self, topwin, keyvalcallbacks, keyvalstatevars): self.parent = topwin self.menubar = Menu(self.parent) self.keyvalstatevars = keyvalstatevars #???self.view_menu = Menu(self.menubar) # the file menu Command_button = Menubutton(self.menubar, text='Simple Button Commands', underline=0) Command_button.menu = Menu(Command_button) #Command_button.menu = Menu(self.menubar) Command_button.menu.add_command(label="Undo") # undo is the 0th entry... Command_button.menu.entryconfig(0, state=DISABLED) Command_button.menu.add_command(label='New...', underline=0, command=keyvalcallbacks["newfilefn"]) Command_button.menu.add_command(label='Open...', underline=0, command=keyvalcallbacks["openfilefn"]) Command_button.menu.add_command( label='ReScan...', underline=0, command=keyvalcallbacks["rescanmenufn"]) # alternate font example Command_button.menu.add_command( label='Print', underline=0, font='-*-helvetica-*-r-*-*-*-180-*-*-*-*-*-*', command=keyvalcallbacks["printmenufn"]) # separator example Command_button.menu.add('separator') Command_button.menu.add_command( label='Options', underline=0, font='-*-helvetica-*-r-*-*-*-180-*-*-*-*-*-*', command=keyvalcallbacks["optionmenufn"]) # aLternate color example Command_button.menu.add_command(label='Quit', underline=0, background='red', activebackground='green', command=keyvalcallbacks["quitmenufn"]) self.menubar.add_cascade(label='File', menu=Command_button.menu) #self.menubar.add_cascade(label='View', menu=self.view_menu) # add a menubar menu to select option for dumping all elements, or only Dups or only Unique self.dumpselect_menu = Menu(self.menubar) self.dumpradioval = IntVar() self.dumpradioval.set(1) self.dumpselect_menu.add_radiobutton( label="Dump All", value=1, variable=keyvalstatevars['DumpOptions']) self.dumpselect_menu.add_radiobutton( label="Dump only unique", value=2, variable=keyvalstatevars['DumpOptions']) self.dumpselect_menu.add_radiobutton( label="Dump only Dups", value=3, variable=keyvalstatevars['DumpOptions']) self.dumpselect_menu.add('separator') self.dumpselect_menu.add_command( label='Default header log path', underline=0, background='red', activebackground='green', command=keyvalcallbacks["dumppath1menufn"]) self.menubar.add_cascade(label='Dump File options', menu=self.dumpselect_menu) self.dumpdbselect_menu1 = Menu(self.menubar) self.menubar.add_cascade(label='Dump DB selection', menu=self.dumpdbselect_menu1) # add a placeholder for this menu with zero databases added in memory # this DUMP DB menu will be dynamically extended as new databases are scanned. # the parent owner of the class instance must call the add method of this class to extend the menu self.dumpdbselect_menu1.add_command(label="<None>") # <None> is the 0th entry... self.dumpdbselect_menu1.entryconfig(0, state=DISABLED) # set a flag just so we can delete this <None> placeholder during first menu add operation self.newmenu = True self.dumpvolselect_menu1 = Menu(self.menubar) self.menubar.add_cascade(label='Dump Volume selection', menu=self.dumpvolselect_menu1) # add a placeholder for this menu with zero databases added in memory # this DUMP DB menu will be dynamically extended as new databases are scanned. # the parent owner of the class instance must call the add method of this class to extend the menu self.dumpvolselect_menu1.add_command(label="<None>") # <None> is the 0th entry... self.dumpvolselect_menu1.entryconfig(0, state=DISABLED) # set a flag just so we can delete this <None> placeholder during first menu add operation self.newvolmenu = True # menu begins with only one option- dump all #self.dumpdbselect_menu1.add_checkbutton(label="<None>", onvalue=False, offvalue=False, variable=self.var01)#variable=self.show_all) # # add a menubar menu for the app info Help/ about/ etc self.show_all = IntVar() self.show_all.set(True) self.vendorhelp_menu = Menu(self.menubar) self.help001 = {"Help": self.show_all} # menu begins with only one option- dump all self.vendorhelp_menu.add_checkbutton( label="Show _Hints", onvalue=True, offvalue=False, variable=keyvalstatevars['HintsFlag']) self.vendorhelp_menu.add_checkbutton( label="Monitor volumes (10second timer activity)", onvalue=True, offvalue=False, variable=keyvalstatevars['TimerCheck']) self.vendorhelp_menu.add_command(label='Help...', underline=0, command=keyvalcallbacks["helpmenufn"]) # separator example self.vendorhelp_menu.add('separator') self.vendorhelp_menu.add_command(label='Dbg info dump...', underline=0, command=self.MGmenudumpdbg) self.vendorhelp_menu.add_checkbutton( label='Dbg runtime info@HIGH', onvalue=True, offvalue=False, variable=keyvalstatevars['DebuginfohighFlag']) self.vendorhelp_menu.add_command( label='About...', underline=0, command=keyvalcallbacks["aboutmenufn"]) self.menubar.add_cascade(label='Help', menu=self.vendorhelp_menu) # register all this with the callers parent window frame self.parent.config(menu=self.menubar)
root = Tk() root.title('Menu button example') def menu_sel(): """Check and report on menu selection.""" if VAR1.get(): print('V2 ticked') if VAR2.get(): print('V3 ticked') menu_btn = Menubutton(root, text='Choose Python Version', bg='skyblue') menu_btn.grid(padx=20, pady=20) menu_btn.menu = Menu(menu_btn, tearoff=0) menu_btn['menu'] = menu_btn.menu VAR1 = IntVar() VAR2 = IntVar() menu_btn.menu.add_checkbutton(label='Python V2', variable=VAR1, command=menu_sel) menu_btn.menu.add_checkbutton(label='Python V3', variable=VAR2, command=menu_sel) menu_btn.grid() root.mainloop()