本文整理汇总了Python中ttk.Notebook.add方法的典型用法代码示例。如果您正苦于以下问题:Python Notebook.add方法的具体用法?Python Notebook.add怎么用?Python Notebook.add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ttk.Notebook
的用法示例。
在下文中一共展示了Notebook.add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: NewActionModulation
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
class NewActionModulation(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Test")
self.frameTab = Frame(self, relief=RAISED, borderwidth=1)
self.frameTab.grid(row=3, column=0, columnspan=4)
self.grid(row=0, column=0)
self.frameTab.grid(row=0, column=0)
self.note_book = Notebook(self.frameTab)
self.specific_actions = ActionModulation.ActionModulation(self.note_book)
self.note_book.add(self.specific_actions.getFrame(), text="specific actions")
self.general_actions = GeneralActionModulation.GeneralActionModulation(self.note_book)
self.note_book.add(self.general_actions.getFrame(), text="general actions")
self.note_book.grid(row=0, column=0)
self.frameButtons = Frame(self, relief=RAISED, borderwidth=1)
self.frameButtons.grid(row=3, column=0, columnspan=4)
self.buttonReset = Button(self.frameButtons, text="Reset")
self.buttonReset.grid(row=0, column=0)
self.buttonAbort = Button(self.frameButtons, text="Abort")
self.buttonAbort.grid(row=0, column=1)
self.buttonStop = Button(self.frameButtons, text="Stop")
self.buttonStop.grid(row=0, column=2)
self.buttonSendAction = Button(self.frameButtons, text="Send Action")
self.buttonSendAction.grid(row=0, column=4)
self.buttonSendEmotion = Button(self.frameButtons, text="Send Emotion")
self.buttonSendEmotion.grid(row=0, column=5)
def getCurrentTab(self):
return self.note_book.index(self.note_book.select())
def getFirstTab(self):
return self.specific_actions
def getSecondTab(self):
return self.general_actions
def getButtonSendAction(self):
return self.buttonSendAction
def getButtonSendEmotion(self):
return self.buttonSendEmotion
def getButtonReset(self):
return self.buttonReset
def getButtonAbort(self):
return self.buttonAbort
def getButtonStop(self):
return self.buttonStop
示例2: show_control
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
def show_control(master, data):
"""Выводит блокнот управления с пятью закладками"""
if data.is_restart:
reload(control_a)
reload(control_b)
reload(control_c)
reload(control_d)
reload(control_e)
reload(control_f)
from control_a import show_goods
from control_b import show_calc
from control_c import show_sales_goods
from control_d import show_sales
from control_e import show_others
from control_f import show_plus
def tab_changes(tab):
"""функция, срабатывающая при нажатии закладок переключения
между правыми (основными) фреймами"""
window_names = controlTabs.tabs()
index = window_names.index(controlTabs.select())
if not FLAGS[index]:
CONTROL[index](workArea[index], data) #нужна ли эта дата?
FLAGS[index] = True
else:
CONTROL[index].renew()
CONTROL = (show_goods, show_calc, show_sales_goods,
show_sales, show_others, show_plus)
FLAGS = [False, False, False, False, False, False]
heads = (u' Товары ', u' Калькуляции ',
u' Акционные товары ', u' Акционные цены ',
u' Категории, скидки, причины списания ', u' Дополнительно ')
workArea = []
controlTabs = Notebook(master)
for q in range (6):
frame = Canvas(controlTabs, relief=GROOVE, highlightthickness=0)
if USE_BACKGROUND:
frame.create_image(0,0, anchor='nw', image=data.photo)
controlTabs.add(frame, text=heads[q])
workArea.append(frame)
controlTabs.pack(side=TOP, fill=BOTH, expand=YES)
controlTabs.bind('<<NotebookTabChanged>>', tab_changes)
Style().configure("TNotebook.Tab", font=('Verdana', FONT_SIZE))
示例3: __init__
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
class Tabs:
def __init__(self, parent):
self.root = Notebook(parent)
self.frames = {}
# self.frame1 = Frame(self.root)
# self.root.add(self.frame1, text=label1)
# self.frame2 = Frame(self.root)
# self.root.add(self.frame2, text=label2)
# self.frame3 = Frame(self.root)
# self.root.add(self.frame3, text=label3)
def add_frame(self, frame, label):
# self.frames.append(frame)
self.root.add(frame, text=label)
self.frames[label] = frame
def get_root(self):
return self.root
示例4: show_main_frame
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
def show_main_frame(root):
"""Создаем основное окно программы"""
#------------------------------------------------------------
def press(button):
"""функция, срабатывающая при нажатии кнопок переключения
между правыми (основными) фреймами"""
index = BUTTONS.index(button)
window_names = rightFrameTabs.tabs()
rightFrameTabs.select(window_names[index])
#--------------------------------------------------------------
def tab_changes(tab):
"""функция, срабатывающая при нажатии закладок переключения
между правыми (основными) фреймами"""
window_names = rightFrameTabs.tabs()
index = window_names.index(rightFrameTabs.select())
button = BUTTONS[index]
for but in BUTTONS:
if but <> button:
but['style'] = 'Default.TButton'
else:
but['style'] = 'Chosen.TButton'
if button == button_rule:
if not checks_exist('Остались незакрытые счета!\nВы уверены, ' +
' что хотите перейти в раздел "Управление"?\nвсе незакрытые'+
' счета в таком случае будут для вас потеряны!'):
press(button_sell)
if not FLAGS[index]:
SHOW[index](workArea[index],data)
FLAGS[index] = True
#-------------------------------------------------------------
leftFrame = Canvas(root, width=PANEL_WIDTH, highlightthickness=0)
leftFrame.pack(side=LEFT, fill=Y)
leftFrame.pack_propagate(False)
if USE_BACKGROUND:
leftFrame.create_image(0,0, anchor='nw', image=data.photo)
heads = (u'Продажи', u'Отчеты', u'Приход', u'Списание', u'Сверка',
u'Управление', u'Настройки',)
workArea = []
rightFrameTabs = Notebook(root, style='Hidden.TNotebook')
for q in range (7):
frame = Canvas(rightFrameTabs, relief=GROOVE)
rightFrameTabs.add(frame, text=heads[q])
workArea.append(frame)
rightFrameTabs.pack(side=TOP, fill=BOTH, expand=YES)
rightFrameTabs.bind('<<NotebookTabChanged>>', tab_changes)
button_sell = Button(leftFrame, text = u'\nПРОДАЖИ\n',
command=lambda: press(button_sell))
button_sell.pack(side=TOP, padx=10, pady=10, fill=X)
button_comings = Button(leftFrame, text = u'\nПРИХОД\n',
command=lambda: press(button_comings))
button_comings.pack(side=TOP, padx=10, pady=10, fill=X)
button_lost = Button(leftFrame, text = u'\nСПИСАНИЕ\n',
command=lambda: press(button_lost))
button_lost.pack(side=TOP, padx=10, pady=10, fill=X)
button_inventory = Button(leftFrame, text = u'\nСВЕРКА\n',
command=lambda: press(button_inventory))
button_inventory.pack(side=TOP, padx=10, pady=10, fill=X)
button_reports = Button(leftFrame, text = u'\nОТЧЕТЫ\n',
command=lambda: press(button_reports))
button_reports.pack(side=TOP, padx=10, pady=10, fill=X)
button_rule = Button(leftFrame, text = u'\nУПРАВЛЕНИЕ\n',
command=lambda: press(button_rule))
button_rule.pack(side=TOP, padx=10, pady=10, fill=X)
button_exit = Button(leftFrame, text = u'\nВЫХОД\n', command=shutdown,
style='Default.TButton')
button_exit.pack(side=BOTTOM, padx=10, pady=10, fill=X)
button_options = Button(leftFrame, text = u'\nНАСТРОЙКА\n',
command=lambda: press(button_options))
button_options.pack(side=BOTTOM, padx=10, pady=10, fill=X)
BUTTONS = (button_sell, button_reports, button_comings,
button_lost, button_inventory, button_rule, button_options)
SHOW = (show_sell, show_report, show_incoming, show_lost, show_verify,
show_control, show_options)
FLAGS = [True, False, False, False, False, False, True]
styles()
press(button_sell)
return workArea
示例5: __init__
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
class GUI:
## GUI variables
titleText = 'PyCX Simulator' # window title
timeInterval = 0 # refresh time in milliseconds
running = False
modelFigure = None
stepSize = 1
currentStep = 0
def __init__(self,title='PyCX Simulator',interval=0,stepSize=1,parameterSetters=[]):
self.titleText = title
self.timeInterval = interval
self.stepSize = stepSize
self.parameterSetters = parameterSetters
self.varEntries = {}
self.statusStr = ""
self.initGUI()
def initGUI(self):
#create root window
self.rootWindow = Tk()
self.statusText = StringVar(value=self.statusStr)
self.setStatusStr("Simulation not yet started")
self.rootWindow.wm_title(self.titleText)
self.rootWindow.protocol('WM_DELETE_WINDOW',self.quitGUI)
self.rootWindow.geometry('550x400')
self.rootWindow.columnconfigure(0, weight=1)
self.rootWindow.rowconfigure(0, weight=1)
self.notebook = Notebook(self.rootWindow)
self.notebook.grid(row=0,column=0,padx=2,pady=2,sticky='nswe')
self.frameRun = Frame()
self.frameSettings = Frame()
self.frameParameters = Frame()
self.frameInformation = Frame()
self.notebook.add(self.frameRun,text="Run")
self.notebook.add(self.frameSettings,text="Settings")
self.notebook.add(self.frameParameters,text="Parameters")
self.notebook.add(self.frameInformation,text="Info")
self.notebook.pack(expand=YES, fill=BOTH, padx=5, pady=5 ,side=TOP)
self.status = Label(self.rootWindow, width=40,height=3, relief=SUNKEN, bd=1,textvariable=self.statusText)
self.status.grid(row=1,column=0,padx=2,pady=2,sticky='nswe')
self.status.pack(side=TOP, fill=X, padx=1, pady=1, expand=NO)
self.runPauseString = StringVar()
self.runPauseString.set("Run")
self.buttonRun = Button(self.frameRun,width=30,height=2,textvariable=self.runPauseString,command=self.runEvent)
self.buttonRun.pack(side=TOP, padx=5, pady=5)
self.showHelp(self.buttonRun,"Runs the simulation (or pauses the running simulation)")
self.buttonStep = Button(self.frameRun,width=30,height=2,text='Step Once',command=self.stepOnce)
self.buttonStep.pack(side=TOP, padx=5, pady=5)
self.showHelp(self.buttonStep,"Steps the simulation only once")
self.buttonReset = Button(self.frameRun,width=30,height=2,text='Reset',command=self.resetModel)
self.buttonReset.pack(side=TOP, padx=5, pady=5)
self.showHelp(self.buttonReset,"Resets the simulation")
can = Canvas(self.frameSettings)
lab = Label(can, width=25,height=1,text="Step size ", justify=LEFT, anchor=W,takefocus=0)
lab.pack(side='left')
self.stepScale = Scale(can,from_=1, to=50, resolution=1,command=self.changeStepSize,orient=HORIZONTAL, width=25,length=150)
self.stepScale.set(self.stepSize)
self.showHelp(self.stepScale,"Skips model redraw during every [n] simulation steps\nResults in a faster model run.")
self.stepScale.pack(side='left')
can.pack(side='top')
can = Canvas(self.frameSettings)
lab = Label(can, width=25,height=1,text="Step visualization delay in ms ", justify=LEFT, anchor=W,takefocus=0)
lab.pack(side='left')
self.stepDelay = Scale(can,from_=0, to=max(2000,self.timeInterval), resolution=10,command=self.changeStepDelay,orient=HORIZONTAL, width=25,length=150)
self.stepDelay.set(self.timeInterval)
self.showHelp(self.stepDelay,"The visualization of each step is delays by the given number of milliseconds.")
self.stepDelay.pack(side='left')
can.pack(side='top')
scrollInfo = Scrollbar(self.frameInformation)
self.textInformation = Text(self.frameInformation, width=45,height=13,bg='lightgray',wrap=WORD,font=("Courier",10))
scrollInfo.pack(side=RIGHT, fill=Y)
self.textInformation.pack(side=LEFT,fill=BOTH,expand=YES)
scrollInfo.config(command=self.textInformation.yview)
self.textInformation.config(yscrollcommand=scrollInfo.set)
for variableSetter in self.parameterSetters:
can = Canvas(self.frameParameters)
lab = Label(can, width=25,height=1,text=variableSetter.__name__+" ",anchor=W,takefocus=0)
lab.pack(side='left')
ent = Entry(can, width=11)
ent.insert(0, str(variableSetter()))
if variableSetter.__doc__ != None and len(variableSetter.__doc__) > 0:
self.showHelp(ent,variableSetter.__doc__.strip())
#.........这里部分代码省略.........
示例6: __init__
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
def __init__(self, master):
self.fname=""
#global variables
self.t1=StringVar()
self.t2=StringVar()
self.t3=StringVar()
self.t4=StringVar()
self.t5=StringVar()
self.t6=StringVar()
self.t7=StringVar()
self.t8=StringVar()
self.t9=StringVar()
self.t10=StringVar()
self.t11=StringVar()
self.t12=StringVar()
self.var1=StringVar()
self.var2=StringVar()
self.var3=StringVar()
self.var4=StringVar()
self.var5=StringVar()
self.var6=StringVar()
self.var7=StringVar()
self.var8=StringVar()
self.var9=StringVar()
self.var10=StringVar()
self.var11=StringVar()
self.var12=StringVar()
#end
mymaster = Frame(master, name='mymaster') # create Frame in "root"
mymaster.pack(fill=BOTH)
#min and max size of window
#master.minsize(width=900, height=900)
#master.maxsize(width=800, height=600)
#end
#title of window
master.title("Airtun-ng")
#end
#for the style of fonts
self.customFont = tkFont.Font(family="Helvetica", size=12)
self.myfont = tkFont.Font(family="Helvetica", size=10)
self.myfont2 = tkFont.Font(family="Helvetica", size=8)
self.headerfont=tkFont.Font(family="Helvetica", size=15,underline = True)
self.myfontnew=tkFont.Font(family="Helvetica", size=11,underline = True)
#end
nb = Notebook(mymaster, name='nb') # create Notebook in "master"
nb.pack(fill=BOTH, padx=2, pady=3) # fill "master" but pad sides
#content frame
self.frame_content = Frame(nb,name="frame_content", bg="white")
self.frame_content.pack(fill=BOTH, side=TOP, expand=True)
nb.add(self.frame_content, text="Filter-1") # add tab to Notebook
# repeat for each tab
self.frame_content7 = Frame(nb, name='frame_content7', bg="white")
nb.add(self.frame_content7, text="Detect Devices")
self.frame_content5 = Frame(nb, name='frame_content5', bg="white")
nb.add(self.frame_content5, text="output")
#End
#frame content 7
Label(self.frame_content7, text = 'Aigraph-ng',font=self.headerfont, bg="white", padx=10, pady=10).grid(row = 0, column = 0)
btndetect=Button(self.frame_content7, text = 'Detect', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 1, column = 0, padx = 5, pady = 5)
btndbrowse=Button(self.frame_content7, text = 'Attach File', command =self.browse_file, height=2, width=15, font=self.customFont).grid(row = 3, column = 0, padx = 5, pady = 5)
self.lilnew1=Listbox(self.frame_content7,bg="black", fg="white", font=self.myfont, selectmode=SINGLE, width=30, height=15)
self.lilnew1.grid(row = 1, column = 1, rowspan=3)
#End
Label(self.frame_content, text = 'Airtun-ng',font=self.headerfont, bg="white", padx=10, pady=10).grid(row = 0, column = 0)
Label(self.frame_content, text = 'Options :',font=self.myfontnew, bg="white").grid(row = 1, column = 1)
#Button(self.frame_content, text = 'ivs', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 0, padx = 5, pady = 5)
#Button(self.frame_content, text = 'gpsd', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 1, padx = 5, pady = 5)
#Button(self.frame_content, text = 'write', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 2, padx = 5, pady = 5)
#command Listbox
Label(self.frame_content5, text = 'Edit Command From Here',font=self.myfontnew, bg="white", justify=LEFT).grid(row = 0, column = 0)
TextCommandBox=Text(self.frame_content5, height=5, width=30)
TextCommandBox.grid(row=1, column=0, padx=5, pady=5)
self.output=Text(self.frame_content5,bg="black", fg="white", font=self.myfont, height=20, width=42)
self.output.grid(row = 0, column = 1, padx=50, pady=5, rowspan=3)
btnsubmit=Button(self.frame_content5, width=15, height=2, text="Get Result", command=self.mycallback)
btnsubmit.grid(row=2, column=0)
btnclear=Button(self.frame_content5, width=15, height=2, text="Clear Output", command=self.clearoutput)
btnclear.grid(row=3, column=0)
#end
self.C1 = Checkbutton(self.frame_content, text = "-x", \
onvalue = "-x", offvalue ="", height=1, \
width = 7, bg="white", font=self.customFont, variable=self.var1)
self.C1.grid(row = 2, column = 0, padx = 5, pady = 5)
self.t1=Text(self.frame_content,height=1,width = 20)
self.t1.grid(row = 2, column = 1, padx = 5, pady = 5)
l1=Label(self.frame_content, text = ': maximum number of packets per second (optional)',font=self.myfont, bg="white", justify=LEFT).grid(row = 2, column = 2, padx = 5, pady = 5)
#.........这里部分代码省略.........
示例7: __init__
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
#.........这里部分代码省略.........
self.var30=StringVar()
self.var31=StringVar()
self.var32=StringVar()
self.var33=StringVar()
self.var34=StringVar()
#end
mymaster = Frame(master, name='mymaster') # create Frame in "root"
mymaster.pack(fill=BOTH)
#min and max size of window
#master.minsize(width=900, height=900)
#master.maxsize(width=650, height=385)
#end
#title of window
master.title("Airbase-ng")
#end
#for the style of fonts
self.customFont = tkFont.Font(family="Helvetica", size=12)
self.myfont = tkFont.Font(family="Helvetica", size=10)
self.myfont2 = tkFont.Font(family="Helvetica", size=8)
self.headerfont=tkFont.Font(family="Helvetica", size=15,underline = True)
self.myfontnew=tkFont.Font(family="Helvetica", size=11,underline = True)
#end
nb = Notebook(mymaster, name='nb') # create Notebook in "master"
nb.pack(fill=BOTH, padx=2, pady=3) # fill "master" but pad sides
#content frame
self.frame_content = Frame(nb,name="frame_content", bg="white")
self.frame_content.pack(fill=BOTH, side=TOP, expand=True)
nb.add(self.frame_content, text="Filter-1") # add tab to Notebook
# repeat for each tab
self.frame_content2 = Frame(nb, name='frame_content2', bg="white")
nb.add(self.frame_content2, text="Filter-2")
self.frame_content3 = Frame(nb, name='frame_content3', bg="white")
nb.add(self.frame_content3, text="Filter-3")
self.frame_content4 = Frame(nb, name='frame_content4', bg="white")
nb.add(self.frame_content4, text="Filter-4")
self.frame_content6 = Frame(nb, name='frame_content6', bg="white")
nb.add(self.frame_content6, text="Filter-5")
self.frame_content7 = Frame(nb, name='frame_content7', bg="white")
nb.add(self.frame_content7, text="Detect Devices")
self.frame_content5 = Frame(nb, name='frame_content5', bg="white")
nb.add(self.frame_content5, text="output")
#End
#frame content 7
Label(self.frame_content7, text = 'Airbase-ng',font=self.headerfont, bg="white", padx=10, pady=10).grid(row = 0, column = 0)
btndetect=Button(self.frame_content7, text = 'Detect', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 1, column = 0, padx = 5, pady = 5)
btndbrowse=Button(self.frame_content7, text = 'Attach File', command =self.browse_file, height=2, width=15, font=self.customFont).grid(row = 3, column = 0, padx = 5, pady = 5)
self.lilnew1=Listbox(self.frame_content7,bg="black", fg="white", font=self.myfont, selectmode=SINGLE, width=30, height=15)
self.lilnew1.grid(row = 1, column = 1, rowspan=3)
#End
Label(self.frame_content, text = 'Airbase-ng',font=self.headerfont, bg="white", padx=10, pady=10).grid(row = 0, column = 0)
Label(self.frame_content, text = 'Options :',font=self.myfontnew, bg="white").grid(row = 1, column = 1)
#command Listbox
Label(self.frame_content5, text = 'Edit Command From Here',font=self.myfontnew, bg="white", justify=LEFT).grid(row = 0, column = 0)
TextCommandBox=Text(self.frame_content5, height=5, width=30)
TextCommandBox.grid(row=1, column=0, padx=5, pady=5)
self.output=Text(self.frame_content5,bg="black", fg="white", font=self.myfont, height=20, width=42)
示例8: show_sell_bills
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
def show_sell_bills(master):
"""Заполняет верхний фрейм продаж блокнотом со счетами и
сответствующими элементами управления."""
sellTopFrame = Frame(master, relief=GROOVE)
sellTopFrame.pack(side=TOP, fill=X, padx=10, pady=5)
#------------------------------------------------------------
def b_add():
"""Срабатывает при нажатии кнопки "Добавить счет", добавляет таб в
блокноте со счетами"""
bill = Bill(note)
bills.append(bill)
tab = bill.frame
note.add(tab, text = show_sell_bills.entry.get())
button_del_bill.configure(state=NORMAL)
button_add_bill = Button(sellTopFrame,text=u'Добавить\nсчет',
style='Little.TButton', command=b_add)
button_add_bill.pack(side=LEFT, padx=10, pady=10, fill=X)
#------------------------------------------------------------
"""Хоть и без отдельной функции, но комментарий расширенный стоит дать.
Это окошко ввода названия для создаваемого счета"""
show_sell_bills.entry = StringVar()
show_sell_bills.entry.set(u'Стол ')
entry = Entry(sellTopFrame, textvariable=show_sell_bills.entry,
font=('verdana', FONT_SIZE))
entry.pack(side=LEFT, padx=10, pady=10)
#------------------------------------------------------------
def b_left():
"""Срабатывает при нажатии кнопки "влево", сдвигается влево на
один таб в блокноте со счетами"""
w_name = note.select()
window_names = note.tabs()
if window_names:
index = window_names.index(w_name) - 1
note.select(window_names[index])
button_left = Button(sellTopFrame, image=data.IMG_INTERFACE[3],
command=b_left)
button_left.pack(side=LEFT, padx=5, pady=5)
#------------------------------------------------------------
def b_right():
"""Срабатывает при нажатии кнопки "вправо", сдвигается вправо на
один таб в блокноте со счетами"""
w_name = note.select()
window_names = note.tabs()
if window_names:
index = window_names.index(w_name) + 1
if index == len(window_names):
index = 0
note.select(window_names[index])
button_right = Button(sellTopFrame, image=data.IMG_INTERFACE[4],
command=b_right)
button_right.pack(side=LEFT, padx=5, pady=5)
#------------------------------------------------------------
def b_del():
"""Срабатывает при нажатии кнопки "удалить счет", удаляет таб в
блокноте со счетами"""
w_name = note.select()
window_names = note.tabs()
if not window_names:
button_del_bill.configure(state=DISABLED)
else:
index = window_names.index(w_name)
if not bills[index].bill:
note.forget(note.select())
del(bills[index])
if not note.tabs():
button_del_bill.configure(state=DISABLED)
else:
if tkMessageBox.askokcancel('Внимание!',
'Вы уверены, что хотите удалить этот счет?'):
note.forget(note.select())
del(bills[index])
if not note.tabs():
button_del_bill.configure(state=DISABLED)
button_del_bill = Button(sellTopFrame,text=u'Удалить\nсчет',
style='Little.TButton', command=b_del)
button_del_bill.pack(side=LEFT, padx=10, pady=10, fill=X)
#----- ОСТАВШИЕСЯ ЭЛЕМЕНТЫ - БЛОКНОТ, СЧЕТЧИК ПРОДАЖ, КАЛЬКУЛЯТОР ------
label = Label(sellTopFrame, text='', bg='white',
font=('Lucida Console', FONT_SIZE))
label.pack(side=RIGHT, padx=10, pady=5)
def label_renew():
#.........这里部分代码省略.........
示例9: report_sell
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
#.........这里部分代码省略.........
if from_date and to_date:
for q in range(len(select)):
new_select = []
for element in select[q]:
if (element.check.date_time >= from_date) and \
(element.check.date_time <= to_date + timedelta(days=1)):
new_select.append(element)
select[q] = new_select
elif from_date:
for q in range(len(select)):
new_select = []
for element in select[q]:
if element.check.date_time >= from_date:
new_select.append(element)
select[q] = new_select
elif to_date:
for q in range(len(select)):
new_select = []
for element in select[q]:
if element.check.date_time <= to_date + timedelta(days=1):
new_select.append(element)
select[q] = new_select
return select
def show(frame, iterator):
"""Выводит на экран выборку, заданную в iterator"""
scrollbar = Scrollbar(frame)
tree = Treeview(frame, selectmode='none', padding=3,
style='Custom.Treeview', height=REPORT_HEIGHT,
yscrollcommand=scrollbar.set)
tree.pack(side=LEFT, fill=BOTH, expand=YES)
scrollbar.config(command=tree.yview)
scrollbar.pack(side=LEFT, fill=Y)
tree.tag_configure('1', font=('Verdana', FONT_SIZE_REPORT))
tree.tag_configure('2', font=('Verdana', FONT_SIZE_REPORT),
background='#f5f5ff')
Style().configure('Custom.Treeview', rowheight=FONT_SIZE_REPORT*2)
columns = ['#' + str(x + 1) for x in range(8)]
tree.configure(columns=columns)
for q in range(len(header)):
tree.heading('#%d' % (q + 1), text=header[q], anchor='w')
tree.column('#%d' % (q + 1), width=REPORT_SCALE * col_width[q + 1],
anchor='w')
tree.heading('#0', text='', anchor='w')
tree.column('#0', width=0, anchor='w', minwidth=0)
flag = True
summ = 0
for item in iterator:
value = item.quantity * item.price * (100 - item.discount) / 100
summ += value
col = []
col.append(add_s(item.check.id))
col.append(add_s(item.goods.cathegory.name))
示例10: report_storage
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
def report_storage(master, cathegory=-1, item=None):
"""Создает и выводи на экран окно с отчетом по остаткам"""
def press(index):
"""функция, срабатывающая при нажатии кнопок переключения
между видами сортировок. Переключает вкладки в блокноте"""
window_names = tabs.tabs()
tabs.select(window_names[index])
def make_query_storage(cathegory=-1, item=None):
"""Возвращает кортеж запросов для последующего использования при
составлении отчета по остаткам"""
select = queries.report_storage_query()
if cathegory <> -1:
for q in range(len(select)):
new_select = []
for element in select[q]:
if element.cathegory == cathegory:
new_select.append(element)
select[q] = new_select
if item:
for q in range(len(select)):
new_select = []
for element in select[q]:
if element == item:
new_select.append(element)
select[q] = new_select
return select
def show(frame, iterator):
"""Выводит на экран выборку, заданную в iterator"""
scrollbar = Scrollbar(frame)
tree = Treeview(frame, selectmode='none', padding=3,
style='Custom.Treeview', height=REPORT_HEIGHT,
yscrollcommand=scrollbar.set)
tree.pack(side=LEFT, fill=BOTH, expand=YES)
scrollbar.config(command=tree.yview)
scrollbar.pack(side=LEFT, fill=Y)
tree.tag_configure('1', font=('Verdana', FONT_SIZE_REPORT))
tree.tag_configure('2', font=('Verdana', FONT_SIZE_REPORT),
background='#f5f5ff')
tree.tag_configure('red1', font=('Verdana', FONT_SIZE_REPORT),
foreground='red')
tree.tag_configure('red2', font=('Verdana', FONT_SIZE_REPORT),
background='#f5f5ff', foreground='red')
tree.tag_configure('grey1', font=('Verdana', FONT_SIZE_REPORT),
foreground='#dddddd')
tree.tag_configure('grey2', font=('Verdana', FONT_SIZE_REPORT),
background='#f5f5ff', foreground='#dddddd')
Style().configure('Custom.Treeview', rowheight=FONT_SIZE_REPORT*2)
columns = ['#' + str(x + 1) for x in range(4)]
tree.configure(columns=columns)
for q in range(len(header)):
tree.heading('#%d' % (q + 1), text=header[q], anchor='w')
tree.column('#%d' % (q + 1), width=REPORT_SCALE * col_width[q + 1],
anchor='w')
tree.heading('#0', text='', anchor='w')
tree.column('#0', width=0, anchor='w', minwidth=0)
flag = True
for item in iterator:
if not item.calculation:
col = []
col.append(add_s(item.cathegory.name if item.cathegory
else u'-Нет-'))
col.append(add_s(item.name))
storage = queries.items_in_storage(item)
col.append(add_s(storage))
col.append(add_s(item.measure))
if int(storage) > 0:
flag = not flag
if flag:
tree.insert('', 'end', text='', values=col, tag='2')
else:
tree.insert('', 'end', text='', values=col, tag='1')
elif storage == '0':
flag = not flag
if flag:
tree.insert('', 'end', text='', values=col, tag='grey2')
else:
tree.insert('', 'end', text='', values=col, tag='grey1')
else:
flag = not flag
if flag:
tree.insert('', 'end', text='', values=col, tag='red2')
else:
tree.insert('', 'end', text='', values=col, tag='red1')
#.........这里部分代码省略.........
示例11: __init__
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
def __init__(self, master):
self.fname=""
self.t1=StringVar()
self.t2=StringVar()
self.t3=StringVar()
self.t4=StringVar()
self.var1=StringVar()
self.var2=StringVar()
self.var3=StringVar()
self.var4=StringVar()
mymaster = Frame(master, name='mymaster') # create Frame in "root"
mymaster.pack(fill=BOTH)
#min and max size of window
#master.minsize(width=900, height=900)
#master.maxsize(width=550, height=350)
#end
#title of window
master.title("Airserv-ng")
#end
#for the style of fonts
self.customFont = tkFont.Font(family="Helvetica", size=12)
self.myfont = tkFont.Font(family="Helvetica", size=10)
self.myfont2 = tkFont.Font(family="Helvetica", size=8)
self.headerfont=tkFont.Font(family="Helvetica", size=15,underline = True)
self.myfontnew=tkFont.Font(family="Helvetica", size=11,underline = True)
#end
nb = Notebook(mymaster, name='nb') # create Notebook in "master"
nb.pack(fill=BOTH, padx=2, pady=3) # fill "master" but pad sides
#content frame
self.frame_content = Frame(nb,name="frame_content", bg="white")
self.frame_content.pack(fill=BOTH, side=TOP, expand=True)
nb.add(self.frame_content, text="Filter-1") # add tab to Notebook
# repeat for each tab
self.frame_content7 = Frame(nb, name='frame_content7', bg="white")
nb.add(self.frame_content7, text="Detect Devices")
self.frame_content5 = Frame(nb, name='frame_content5', bg="white")
nb.add(self.frame_content5, text="output")
#End
#frame content 7
Label(self.frame_content7, text = 'Aigraph-ng',font=self.headerfont, bg="white", padx=10, pady=10).grid(row = 0, column = 0)
btndetect=Button(self.frame_content7, text = 'Detect', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 1, column = 0, padx = 5, pady = 5)
btndbrowse=Button(self.frame_content7, text = 'Attach File', command =self.browse_file, height=2, width=15, font=self.customFont).grid(row = 3, column = 0, padx = 5, pady = 5)
self.lilnew1=Listbox(self.frame_content7,bg="black", fg="white", font=self.myfont, selectmode=SINGLE, width=30, height=15)
self.lilnew1.grid(row = 1, column = 1, rowspan=3)
#End
Label(self.frame_content, text = 'Airserv-ng',font=self.headerfont, bg="white", padx=10, pady=10).grid(row = 0, column = 0)
Label(self.frame_content, text = 'Options :',font=self.myfontnew, bg="white").grid(row = 1, column = 1)
#Button(self.frame_content, text = 'ivs', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 0, padx = 5, pady = 5)
#Button(self.frame_content, text = 'gpsd', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 1, padx = 5, pady = 5)
#Button(self.frame_content, text = 'write', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 2, padx = 5, pady = 5)
#command Listbox
Label(self.frame_content5, text = 'Edit Command From Here',font=self.myfontnew, bg="white", justify=LEFT).grid(row = 0, column = 0)
TextCommandBox=Text(self.frame_content5, height=5, width=30)
TextCommandBox.grid(row=1, column=0, padx=5, pady=5)
self.output=Text(self.frame_content5,bg="black", fg="white", font=self.myfont, height=15, width=30)
self.output.grid(row = 0, column = 1, padx=50, pady=5, rowspan=3)
btnsubmit=Button(self.frame_content5, width=15, height=2, text="Get Result", command=self.mycallback)
btnsubmit.grid(row=2, column=0)
btnclear=Button(self.frame_content5, width=15, height=2, text="Clear Output", command=self.clearoutput)
btnclear.grid(row=3, column=0)
#end
self.C1 = Checkbutton(self.frame_content, text = "-p", \
onvalue="-p",offvalue="", height=1, \
width = 7, bg="white", font=self.customFont, variable=self.var1)
self.C1.grid(row = 2, column = 0, padx = 5, pady = 5)
self.t1=Text(self.frame_content,height=1,width = 20)
self.t1.grid(row = 2, column = 1, padx = 5, pady = 5)
l1=Label(self.frame_content, text = ': TCP port to listen on. Defaults to 666.',font=self.myfont, bg="white", justify=LEFT).grid(row = 2, column = 2, padx = 5, pady = 5)
self.C2 = Checkbutton(self.frame_content, text = "-d", \
onvalue = "-d", offvalue = "", height=1, \
width = 7, bg="white", font=self.customFont,variable=self.var2)
self.C2.grid(row = 3, column = 0, padx = 5, pady = 5)
self.t2=Text(self.frame_content,height=1,width = 20)
self.t2.grid(row = 3, column = 1, padx = 5, pady = 5)
l2=Label(self.frame_content, text = ': wifi device to serve.',font=self.myfont, bg="white", justify=LEFT).grid(row = 3, column = 2, padx = 5, pady = 5)
self.C3 = Checkbutton(self.frame_content, text = "-c", \
onvalue = "-c", offvalue ="", height=1, \
width = 7, bg="white", font=self.customFont,variable=self.var3)
self.C3.grid(row = 4, column = 0, padx = 5, pady = 5)
self.t3=Text(self.frame_content,height=1,width = 20)
self.t3.grid(row = 4, column = 1, padx = 5, pady = 5)
l3=Label(self.frame_content, text = ': Channel to start on.',font=self.myfont, bg="white", justify=LEFT).grid(row = 4, column = 2, padx = 5, pady = 5)
self.C4 = Checkbutton(self.frame_content, text = "-v", \
onvalue = "-v", offvalue = "", height=1, \
width = 7, bg="white", font=self.customFont,variable=self.var4)
self.C4.grid(row = 5, column = 0, padx = 5, pady = 5)
self.t4=Text(self.frame_content,height=1,width = 20)
self.t4.grid(row = 5, column = 1, padx = 5, pady = 5)
#.........这里部分代码省略.........
示例12: GoalTrak
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
class GoalTrak(Tk):
def __init__(self,parent):
Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
self.entryVariable = StringVar() #Student entry box
self.entry = Entry(self,textvariable=self.entryVariable)
self.entry.grid(column=0,row=1,sticky='EW')
self.entry.bind("<Return>", self.onPressEnter)
self.entryVariable.set(u"Enter new student here")
#Simple buttons#
self.quitButton = Button(self,text=u"Quit", command=self.onQuitClick) #Quit button
self.quitButton.grid(row = 14, sticky='SE')
self.removeButton = Button(self, text=u"Remove student", command=self.onRemoveClick) #Remove student button
self.removeButton.grid(column=0,row=6, sticky = 'W')
self.optionMenu = Button(self, text=u"About", command=self.onAboutClick) #About button
self.optionMenu.grid(row = 13, sticky='SE')
self.infoUpdate = Button(self, text=u"Update Student Info", command=self.onInfoUpdateClick) #Info updater
self.infoUpdate.grid(column=0, row=4, sticky = 'W')
self.showInformation = Button(self, text = u"Show Information", command=self.onShowInformationClick)
self.showInformation.grid(column=0, row=5, sticky = 'W')
self.labelVariable = StringVar() #Banner
self.labelVariable.set(u"Welcome to GoalTrak")
label = Label(self,textvariable=self.labelVariable, \
anchor="w",fg="white",bg="navy")
label.grid(column=0,row=0,sticky='EW')
self.StudentListDisplay = Listbox(self) #Student List
self.StudentListDisplay.grid(row=2,column=0,columnspan=2,sticky='W')
for student in student_list:
self.StudentListDisplay.insert(END, student)
self.tab = Notebook(width=200, height=200) #Notebook
self.tab.pressed_index = None
###Notebook###
self.studentInfoDisplayFrame = Frame(self.tab) ####Info display tab###
self.studentNameLabelVar = StringVar() #Student name label
self.studentNameLabelVar.set('Click "show information"')
studentNameLabel = Label(self.studentInfoDisplayFrame, textvariable=self.studentNameLabelVar, fg='black', bg='white')
studentNameLabel.grid(column=0,row=0,sticky='NW')
self.studentClassLabelVar = StringVar() #Student class label
self.studentClassLabelVar.set('')
studentClassLabel = Label(self.studentInfoDisplayFrame, textvariable=self.studentClassLabelVar, fg='black', bg='white')
studentClassLabel.grid(column=0,row=1,sticky='W')
self.studentGoal1LabelVar = StringVar() #Student goal1 label
self.studentGoal1LabelVar.set('')
studentGoal1Label = Label(self.studentInfoDisplayFrame, textvariable=self.studentGoal1LabelVar, fg='black', bg='white')
studentGoal1Label.grid(column=0,row=2,sticky='W')
otherWidget = Canvas(self.tab, width=300, height=300) #Empty widget for fun!
self.tab.add(self.studentInfoDisplayFrame, text='Student Info') #Labels tabs
self.tab.add(otherWidget, text='Other Widget')
self.tab.grid(column = 0, row = 7, rowspan = 5, sticky = 'EW')
self.grid_columnconfigure(0,weight=1) #This makes it so the window is resizable
self.resizable(True,True)
self.update()
self.geometry(self.geometry())
self.entry.focus_set()
self.entry.selection_range(0, END)
def onAboutClick(self): #About message
tkMessageBox.showinfo(title=u'About', message=u'GoalTrak v. Alpha V by Eli Dinkelspiel')
def student_list_updater(self, studentlist):
self.StudentListDisplay.delete(0, END)
for student in studentlist:
self.StudentListDisplay.insert(END, student)#Refreshes student listbox
def onQuitClick(self):
result = tkMessageBox.askokcancel(title='GoalTrak', message='Are you sure you want to quit GoalTrak?')
if result == True:
GoalTrak.destroy(self) #Quit button
def onRemoveClick(self):
index = self.StudentListDisplay.curselection()
index = int(index[0])
result = tkMessageBox.askokcancel(title='Are you sure?', \
message='Are you sure you want to remove %s? This cannot be undone and will remove all associated data.' \
% (student_list[index]))
#.........这里部分代码省略.........
示例13: GUI
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
class GUI(tk.Tk):
"""
Start graphical interface for client.
Args:
client_queue_cmd: queue to send commands
client_queue_log: queue to get logging info
client_queue_telem: queue to get telemetry data
beam_gap_queue: queue to retrieve beam gap data (any queue will do, this is handled via the gui, through the telemetry queue)
@depricated
server_ip: server IP address for rtp stream access
"""
def __init__(self, client_queue_cmd, client_queue_log, client_queue_telem, beam_gap_queue, destroyEvent, server_ip, **kwargs):
tk.Tk.__init__(self, **kwargs)
self.client_queue_cmd = client_queue_cmd
self.client_queue_log = client_queue_log
self.client_queue_telem = client_queue_telem
self.beam_gap_queue = beam_gap_queue
self.server_ip = server_ip
self.destroyEvent = destroyEvent
def init_ui(self):
#make resizable
self.grid_columnconfigure(0, weight=1)
self.grid_rowconfigure(0, weight=1)
self.notebook = Notebook(self)
# define mainapp instance -- also manages above telemetry thread
self.mainApplication = MainApplication(self, self.client_queue_cmd, self.client_queue_log, self.client_queue_telem, self.beam_gap_queue, self.destroyEvent, self.server_ip)
self.notebook.add(self.mainApplication, text = "Main")
# define telemetry widgets
self.monitor = Monitor(self, VisualConstants.MARS_PRIMARY(1))
self.notebook.add(self.monitor, text = 'Monitor')
self.notebook.grid(column = 0, row = 0, sticky = 'nsew')
# menu -outside of notebook
self.menu_ = TopMenu(self, '../gui/operations.json', self.client_queue_cmd, 'Commands')
### Add custom commands here
self.menu_.add_menu_item('Reconnect to Cameras', self.mainApplication.start_streams, "View")
self.menu_.add_menu_item('Left', self.mainApplication.focus_left, 'View/Camera Focus')
self.menu_.add_menu_item('Center', self.mainApplication.focus_center, 'View/Camera Focus')
self.menu_.add_menu_item('Right', self.mainApplication.focus_right, 'View/Camera Focus')
self.menu_.add_menu_item('IBeam Display', self.beamGapGraph, 'View/Windows')
self.menu_.add_menu_item('Toggle FOD Enabled', self.mainApplication.toggle_fod, 'View/Object Detection')
self.menu_.add_menu_item('Set Ideal Images', self.mainApplication.define_ideal_images, 'View/Object Detection')
###
self.menu_.finalize_menu_items()
self.config(menu=self.menu_)
# start all operations here so we don't cause a hissyfit between tkinter and threads
self.mainApplication.start_streams()
#define telemetryThread
self.tthread = TelemetryThread([self.mainApplication.telemetry_w, self.monitor], self.client_queue_telem, self.beam_gap_queue)
self.tthread.start()
# title and icon
self.wm_title('Hyperloop Imaging Team')
#this is garbage, i hate tkinter
#self.img = ImageTk.PhotoImage(file='rit_imaging_team.xbm')
#self.tk.call('wm', 'iconphoto', self._w, self.img)
#self.iconbitmap('@rit_imaging_team.xbm')
#call destroyCallback on clicking X
self.protocol('WM_DELETE_WINDOW', self.destroyCallback)
#assign dimensions and locatin on screen
width = 900
height = 500
x = (self.winfo_screenwidth() // 2) - (width // 2)
y = (self.winfo_screenheight() // 2) - (height // 2)
self.geometry('{}x{}+{}+{}'.format(width, height, x, y))
self.update()
def killMars(self):
'''
Sends the kill command to Mars
'''
logger.debug('GUI Killing Mars...')
self.client_queue_cmd.put('exit')
def displayMarsDisconnected(self):
tkMessageBox.showerror('Lost connection to Mars', 'The client has lossed connection to mars, closing application.')
self.destroyClient()
def destroyClient(self):
logger.debug('GUI Killing Main App...')
self.menu_.destroy()
self.mainApplication.close_()
logger.debug('GUI Killing Monitor app...')
self.monitor.destroy()
self.notebook.destroy()
logger.debug('GUI Killing Self...')
self.killTelemThread()
logger.debug('GUI Dead')
self.quit()
self.destroy()
def killTelemThread(self):
#.........这里部分代码省略.........
示例14: Application
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
class Application(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
self.master = master
self.master.title("Netstat Live")
self.pack(fill=tk.BOTH, expand=tk.Y)
master.protocol("WM_DELETE_WINDOW", self.app_quit)
self._app_quit = False
self._freeze = False
self.tabs = Notebook(self)
self.tabs_frames = OrderedDict()
self.tabs_frames['TCP4'] = {'query': netstat_tcp4}
self.tabs_frames['UDP4'] = {'query': netstat_udp4}
self.tabs_frames['TCP6'] = {'query': netstat_tcp6}
self.tabs_frames['UDP6'] = {'query': netstat_udp6}
for tab in self.tabs_frames:
# Creating tabs
self.tabs_frames[tab]['tab'] = tk.Frame(self.tabs)
self.tabs.add(self.tabs_frames[tab]['tab'], text=tab)
#self.tabs_frames[tab]['tab'].pack(fill=tk.BOTH)
# Adding Treeview widget to tabs
self.tabs_frames[tab]['tbl'] = Treeview(self.tabs_frames[tab]['tab'])
self.tabs_frames[tab]['tbl']['columns'] = ('Pid', 'User', 'Local addr', 'Remote addr', 'State')
for column in self.tabs_frames[tab]['tbl']['columns']:
self.tabs_frames[tab]['tbl'].heading(column, text=column)
self.tabs_frames[tab]['tbl'].column(column, width=150)
self.tabs_frames[tab]['scrollbar_y'] = Scrollbar(self.tabs_frames[tab]['tab'], orient=tk.VERTICAL, command=self.tabs_frames[tab]['tbl'].yview)
self.tabs_frames[tab]['tbl']['yscroll'] = self.tabs_frames[tab]['scrollbar_y'].set
self.tabs_frames[tab]['scrollbar_y'].pack(side=tk.RIGHT, fill=tk.Y)
self.tabs_frames[tab]['tbl'].pack(expand=tk.Y, fill=tk.BOTH)
# Bind right click event for displaying context menu
self.tabs_frames[tab]['tbl'].bind('<Button-3>', self.context_menu_popup)
self.tabs_frames[tab]['tbl'].bind('<Button-1>', self.context_menu_unpost)
# Creating queue for each tab
self.tabs_frames[tab]['queue'] = Queue(maxsize=1)
self.tabs.pack(fill=tk.BOTH, expand=tk.Y)
# Freeze button
self.buttons = tk.Frame(master)
self.buttons.pack(side=tk.BOTTOM, fill=tk.BOTH)
self.freeze_btn = tk.Button(self.buttons, text='Freeze', command=self.freeze_btn_handler)
self.freeze_btn.pack(side=tk.RIGHT)
# Check dependencies
self._xclip = True
self._whois = True
try:
out = subprocess.check_output(['xclip', '-h'], stderr=subprocess.STDOUT)
except:
self._xclip = False
try:
out = subprocess.check_output(['whois', '--version'], stderr=subprocess.STDOUT)
except:
self._whois = False
# Connections list context menu
self._remote_addr = ''
self.context_menu = tk.Menu(self, tearoff=0)
if self._xclip:
self.context_menu.add_command(label='Copy remote addr.', command=self.xclip)
if self._whois:
self.context_menu.add_command(label='Whois', command=self.whois)
self.tabs.bind('<Button-1>', self.context_menu_unpost)
self.poll = Thread(target=self.thread)
self.poll.start()
def context_menu_popup(self, event):
current_tab = self.get_active_tab()
tbl = self.tabs_frames[current_tab]['tbl']
item = tbl.identify_row(event.y)
if item and len(tbl.get_children(item)) == 0:
tbl.selection_set(item)
# Get remote addr value
self._remote_addr = tbl.set(item, column='Remote addr')
self.context_menu.post(event.x_root, event.y_root)
else:
# Mouse pointer is not over item
pass
def context_menu_unpost(self, event):
self.context_menu.unpost()
def get_active_tab(self):
try:
current_tab = self.tabs.tab(self.tabs.select(), 'text')
return current_tab
except RuntimeError:
# Sometimes raised on KeyboardInterrupt
sys.stderr.write('Terminated.\n')
self._app_quit = True
sys.exit(0)
def thread(self):
while not self._app_quit:
#.........这里部分代码省略.........
示例15: View
# 需要导入模块: from ttk import Notebook [as 别名]
# 或者: from ttk.Notebook import add [as 别名]
class View(Toplevel):
def __init__(self, model):
self.model = model
self.model_config = self.model.get_config()
self.channels_num = 0
self.channels_amount = 0
self.root = Tk()
self.root.resizable(width=FALSE, height=FALSE)
self.root.title("RaaS. event_proxy configurator")
#: self.root.iconbitmap('resourse/vit.ico')
self.config_route = self.model.get_config_route()
self.panelFrame = Frame(self.root, height=60)
self.canvas = Canvas(self.root, borderwidth=0)
self.textFrame = Frame(self.canvas, height=340, width=600)
self.mainFrame = LabelFrame(self.root, width=200, text="Main:",
height=340, relief=RAISED, borderwidth=1)
self.chanelFrame = LabelFrame(self.root, width=370, text="Channels:",
height=340, relief=RAISED, borderwidth=1)
#: self.vsb = Scrollbar(self.root, orient="horizontal",
#: command=self.canvas.xview)
#:self.canvas.configure(xscrollcommand=self.vsb.set)
#:self.vsb.pack(side="bottom", fill="x")
self.canvas.pack(side="bottom", fill="both", expand=True)
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
self.root.protocol("WM_DELETE_WINDOW", self.quit_handler)
self.tabs = Notebook(self.root)
self.in_channel_text = []
self.out_port_text = []
self.out_channel_text = []
self.c = self.model.get_channels().keys()
self.channels_len = len(self.model.get_channels())
#:print self.model.get_channels()
self.panelFrame.pack(side='top', fill='x')
self.textFrame.pack(side='bottom', fill='both', expand=1)
self.mainFrame.place(x=10, y=60)
self.chanelFrame.place(x=220, y=60)
self.tabs.place(x=230, y=80)
x = (self.root.winfo_screenwidth() - self.root.winfo_reqwidth()) / 2
y = (self.root.winfo_screenheight() - self.root.winfo_reqheight()) / 2
self.root.geometry("+%d+%d" % (x-150, y-150))
for i in range(self.channels_len):
self.channels_num += 1
self.channels_amount += 1
self.f1 = Frame(self.tabs, height=290, width=350)
self.tabs.add(self.f1, text='Channel {0}'.format(i + 1))
self.in_channel = Label(self.f1, text="In channel")
self.out_port = Label(self.f1, text="Out port")
self.out_channel = Label(self.f1, text="Out channel")
self.in_channel_text.append(Entry(self.f1, width=20, bd=3))
self.in_channel_text[i].insert(0, self.c[i])
self.out_port_text.append(Entry(self.f1, width=20, bd=3))
self.out_port_text[i].insert(0, self.model.get_channels()[
self.c[i]].out_port)
self.out_channel_text.append(Entry(self.f1, width=20, bd=3))
self.out_channel_text[i].insert(0, self.model.get_channels()[
self.c[i]].out_channel)
self.in_channel.place(x=5, y=10)
self.in_channel_text[i].place(x=5, y=30)
self.out_port.place(x=5, y=50)
self.out_port_text[i].place(x=5, y=70)
self.out_channel.place(x=5, y=90)
self.out_channel_text[i].place(x=5, y=110)
self.del_ch_btn = Button(self.f1, text='Delete channel {0}'.format(
self.channels_amount),
command=
lambda: self.del_channel(i))
self.del_ch_btn.bind("<Button-1>")
self.del_ch_btn.place(x=5, y=140, width=100, height=30)
self.server_host_label = Label(self.root, text="Server host")
self.server_port_label = Label(self.root, text="Server port")
self.raas_port_label = Label(self.root, text="Raas port")
self.encoding_label = Label(self.root, text='Encoding')
self.levenshtein_distance_label = Label(self.root,
text='Levenshtein distance')
self.window_time_label = Label(self.root, text='Window time')
self.server_host_entity = Entry(self.root, width=20, bd=3)
self.server_host_entity.insert(0, self.model_config['server_host'])
self.server_port_entity = Entry(self.root, width=20, bd=3)
self.server_port_entity.insert(0, self.model_config['server_port'])
self.raas_port_entity = Entry(self.root, width=20, bd=3)
#.........这里部分代码省略.........