本文整理汇总了Python中tkinter.ttk.Scrollbar.config方法的典型用法代码示例。如果您正苦于以下问题:Python Scrollbar.config方法的具体用法?Python Scrollbar.config怎么用?Python Scrollbar.config使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tkinter.ttk.Scrollbar
的用法示例。
在下文中一共展示了Scrollbar.config方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TextViewer
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
class TextViewer(Toplevel):
"A simple text viewer dialog for IDLE."
def __init__(self, parent, title, text, modal=True,
_htest=False, _utest=False):
"""Show the given text in a scrollable window with a 'close' button.
If modal is left True, users cannot interact with other windows
until the textview window is closed.
_htest - bool; change box location when running htest.
_utest - bool; don't wait_window when running unittest.
"""
Toplevel.__init__(self, parent)
self.configure(borderwidth=5)
# Place dialog below parent if running htest.
self.geometry("=%dx%d+%d+%d" % (750, 500,
parent.winfo_rootx() + 10,
parent.winfo_rooty() + (10 if not _htest else 100)))
# TODO: get fg/bg from theme.
self.bg = '#ffffff'
self.fg = '#000000'
self.CreateWidgets()
self.title(title)
self.protocol("WM_DELETE_WINDOW", self.Ok)
self.parent = parent
self.textView.focus_set()
# Bind keys for closing this dialog.
self.bind('<Return>',self.Ok)
self.bind('<Escape>',self.Ok)
self.textView.insert(0.0, text)
self.textView.config(state=DISABLED)
if modal:
self.transient(parent)
self.grab_set()
if not _utest:
self.wait_window()
def CreateWidgets(self):
"Create Frame with Text (with vertical Scrollbar) and Button."
frameText = Frame(self, relief=SUNKEN, height=700)
frameButtons = Frame(self)
self.buttonOk = Button(frameButtons, text='Close',
command=self.Ok, takefocus=FALSE)
self.scrollbarView = Scrollbar(frameText, orient=VERTICAL,
takefocus=FALSE)
self.textView = Text(frameText, wrap=WORD, highlightthickness=0,
fg=self.fg, bg=self.bg)
self.scrollbarView.config(command=self.textView.yview)
self.textView.config(yscrollcommand=self.scrollbarView.set)
self.buttonOk.pack()
self.scrollbarView.pack(side=RIGHT,fill=Y)
self.textView.pack(side=LEFT,expand=TRUE,fill=BOTH)
frameButtons.pack(side=BOTTOM,fill=X)
frameText.pack(side=TOP,expand=TRUE,fill=BOTH)
def Ok(self, event=None):
self.destroy()
示例2: TextViewer
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
class TextViewer(Toplevel):
"""A simple text viewer dialog for IDLE
"""
def __init__(self, parent, title, text, modal=True, _htest=False):
"""Show the given text in a scrollable window with a 'close' button
If modal option set to False, user can interact with other windows,
otherwise they will be unable to interact with other windows until
the textview window is closed.
_htest - bool; change box location when running htest.
"""
Toplevel.__init__(self, parent)
self.configure(borderwidth=5)
# place dialog below parent if running htest
self.geometry("=%dx%d+%d+%d" % (750, 500,
parent.winfo_rootx() + 10,
parent.winfo_rooty() + (10 if not _htest else 100)))
#elguavas - config placeholders til config stuff completed
self.bg = '#ffffff'
self.fg = '#000000'
self.CreateWidgets()
self.title(title)
self.protocol("WM_DELETE_WINDOW", self.Ok)
self.parent = parent
self.textView.focus_set()
#key bindings for this dialog
self.bind('<Return>',self.Ok) #dismiss dialog
self.bind('<Escape>',self.Ok) #dismiss dialog
self.textView.insert(0.0, text)
self.textView.config(state=DISABLED)
if modal:
self.transient(parent)
self.grab_set()
self.wait_window()
def CreateWidgets(self):
frameText = Frame(self, relief=SUNKEN, height=700)
frameButtons = Frame(self)
self.buttonOk = Button(frameButtons, text='Close',
command=self.Ok, takefocus=FALSE)
self.scrollbarView = Scrollbar(frameText, orient=VERTICAL,
takefocus=FALSE)
self.textView = Text(frameText, wrap=WORD, highlightthickness=0,
fg=self.fg, bg=self.bg)
self.scrollbarView.config(command=self.textView.yview)
self.textView.config(yscrollcommand=self.scrollbarView.set)
self.buttonOk.pack()
self.scrollbarView.pack(side=RIGHT,fill=Y)
self.textView.pack(side=LEFT,expand=TRUE,fill=BOTH)
frameButtons.pack(side=BOTTOM,fill=X)
frameText.pack(side=TOP,expand=TRUE,fill=BOTH)
def Ok(self, event=None):
self.destroy()
示例3: progress
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
def progress( self ):
o=os.popen("cd {0} && snakemake --dryrun --rerun-incomplete > {0}/Reports/checkpoint".format(self.workpath.get()))
o.close()
F=open("{0}/Reports/checkpoint".format(self.workpath.get()),"r").read()
rules2={}
rules=re.findall(r'rule .+:',F)
for i in rules:
i=re.sub("rule ","",i)
i=re.sub(":","",i)
rules2[i]=0
F=open("{0}/Reports/{1}.dot".format(self.workpath.get(), self.Pipeline.get() ),"r").read()
for i in rules2.keys():
F=re.sub(r'('+i+')(\".+?)\".+?\"',r'\1_pending\2"0.0 0.0 0.0"',F)
# F=re.sub(i,"",F)
G=open("{0}/Reports/{1}-{2}.dot".format(self.workpath.get(),self.Pipeline.get(),"progress"),"w")
G.write(F)
G.close()
o=os.popen("cd {0}/Reports && dot -Tpng -o {0}/Reports/{1}-progress.png {0}/Reports/{1}-progress.dot;convert {0}/Reports/{1}-progress.png {0}/Reports/{1}-progress.gif".format(self.workpath.get(),self.Pipeline.get()))
# tkinter.messagebox.showerror("o",o)
PL=self.Pipeline.get() #pipelineget()
gf=Toplevel()
gf.title("CCBR Pipeliner: {0} Progress Graph".format(PL))
cgf = Canvas(gf,bg="white")
# gff=Frame(cgf,width=300,height=300)
xscrollbar = Scrollbar(gf, orient=HORIZONTAL)
xscrollbar.pack(side = BOTTOM, fill=X )
xscrollbar.config(command=cgf.xview)
yscrollbar = Scrollbar(gf,orient=VERTICAL)
yscrollbar.pack(side = RIGHT, fill=Y )
yscrollbar.config(command=cgf.yview)
cgf.config(xscrollcommand=xscrollbar.set, yscrollcommand=yscrollbar.set)
cgf.config(width=600,height=600)
cgf.pack(expand=1,fill=BOTH,side=RIGHT)
cgf.config(scrollregion=(0,0,1000,5000))
try:
time.sleep(5)
img = PhotoImage(file="{0}/Reports/{1}-progress.gif".format(self.workpath.get(),PL))
except:
time.sleep(5)
img = PhotoImage(file="{0}/Reports/{1}-progress.gif".format(self.workpath.get(),PL))
cgf.create_image(0,0,image=img, anchor="nw")
cgf.image=img
示例4: __init__
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
def __init__(self, parent, *args, **kw):
Frame.__init__(self, parent, *args, **kw)
# create a canvas object and a vertical scrollbar for scrolling it
vscrollbar = Scrollbar(self, orient=VERTICAL)
vscrollbar.pack(fill=Y, side=RIGHT, expand=False)
self.canvas = canvas = StyledCanvas(
self, bd=0, highlightthickness=0,
yscrollcommand=vscrollbar.set)
canvas.pack(side=LEFT, fill=BOTH, expand=True)
vscrollbar.config(command=canvas.yview)
# reset the view
canvas.xview_moveto(0)
canvas.yview_moveto(0)
# create a frame inside the canvas which will be scrolled with it
self.interior = interior = Frame(canvas)
interior_id = canvas.create_window(0, 0, window=interior,
anchor=N+W)
# track changes to the canvas and frame width and sync them,
# also updating the scrollbar
def _configure_interior(event):
# update the scrollbars to match the size of the inner frame
size = (interior.winfo_reqwidth(), interior.winfo_reqheight())
canvas.config(scrollregion="0 0 %s %s" % size)
if interior.winfo_reqwidth() != canvas.winfo_width():
# update the canvas's width to fit the inner frame
canvas.config(width=interior.winfo_reqwidth())
interior.bind('<Configure>', _configure_interior)
def _configure_canvas(event):
if interior.winfo_reqwidth() != canvas.winfo_width():
# update the inner frame's width to fill the canvas
canvas.itemconfigure(interior_id,
width=canvas.winfo_width())
canvas.bind('<Configure>', _configure_canvas)
MouseWheel(self).add_scrolling(canvas, yscrollbar=vscrollbar)
示例5: workflow
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
def workflow(self):
PL=self.Pipeline.get() #pipelineget()
gf=Toplevel()
#MkaS=os.popen("./makeasnake.py 2>&1 | tee -a "+workpath.get()+"/Reports/makeasnake.log").read()
gf.title("CCBR Pipeliner: "+ PL + " Workflow Graph")
cgf = Canvas(gf,bg="white")
#gff=Frame(cgf,width=300,height=300)
xscrollbar = Scrollbar(gf, orient=HORIZONTAL)
xscrollbar.pack(side = BOTTOM, fill=X )
xscrollbar.config(command=cgf.xview)
yscrollbar = Scrollbar(gf,orient=VERTICAL)
yscrollbar.pack(side = RIGHT, fill=Y )
yscrollbar.config(command=cgf.yview)
cgf.config(xscrollcommand=xscrollbar.set, yscrollcommand=yscrollbar.set)
cgf.config(width=600,height=600)
cgf.pack(expand=1,fill=BOTH,side=RIGHT)
cgf.config(scrollregion=(0,0,5000,20000))
img = PhotoImage(file=self.workpath.get()+"/Reports/"+PL+".gif")
cgf.create_image(0,0,image=img, anchor="nw")
cgf.image=img
示例6: create_widgets
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
def create_widgets(self):
''' Creates all widgets.
'''
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
xscrollbar = Scrollbar(self, orient=HORIZONTAL)
xscrollbar.grid(row=1, column=0, sticky=E+W)
yscrollbar = Scrollbar(self)
yscrollbar.grid(row=0, column=1, sticky=N+S)
self.text = Text(self, wrap=NONE,
xscrollcommand=xscrollbar.set,
yscrollcommand=yscrollbar.set)
self.text.bind("<Control-Key-a>", self.select_all)
self.text.bind("<Control-Key-A>", self.select_all)
self.text.grid(row=0, column=0, sticky=N+S+E+W)
xscrollbar.config(command=self.text.xview)
yscrollbar.config(command=self.text.yview)
示例7: BibleReferenceBox
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
class BibleReferenceBox( Frame, BibleBox ):
"""
"""
def __init__( self, parentWindow, parentApp, internalBible, referenceObject ):
if BibleOrgSysGlobals.debugFlag: print( exp("BibleReferenceBox.__init__( {}, {}, {}, {} )").format( parentWindow, parentApp, internalBible.name, referenceObject ) )
self.parentWindow, self.parentApp, self.internalBible, self.referenceObject = parentWindow, parentApp, internalBible, referenceObject
#self.parentApp = self.parentWindow.parentApp
Frame.__init__( self, parentWindow )
BibleBox.__init__( self, self.parentApp )
# Set some dummy values required soon
self._viewRadioVar, self._groupRadioVar = tk.IntVar(), tk.StringVar()
self.groupCode = BIBLE_GROUP_CODES[0] # Put into first/default BCV group
self.contextViewMode = DEFAULT
self.viewMode = DEFAULT
self.currentVerseKey = SimpleVerseKey( 'UNK','1','1' ) # Unknown book
if self.contextViewMode == DEFAULT:
self.contextViewMode = 'ByVerse'
self.parentWindow.viewVersesBefore, self.parentWindow.viewVersesAfter = 2, 6
# Create a title bar
titleBar = Frame( self )
Button( titleBar, text=_('Close'), command=self.doClose ).pack( side=tk.RIGHT )
## Try to get the title width somewhere near correct (if moduleID is a long path)
#adjModuleID = moduleID
#self.update() # so we can get the geometry
#width = parseWindowSize( self.parentWindow.geometry() )[0] - 60 # Allow for above button
#if len(adjModuleID)*10 > width: # Note: this doesn't adjust if the window size is changed
#print( "BRB here1", len(adjModuleID), width, repr(adjModuleID) )
#x = len(adjModuleID)*100/width # not perfect (too small) for narrow windows
#adjModuleID = '…' + adjModuleID[int(x):]
#print( "BRB here2", len(adjModuleID), x, repr(adjModuleID) )
#titleText = '{} ({})'.format( adjModuleID, boxType.replace( 'BibleReferenceBox', '' ) )
titleText = self.referenceObject.getShortText()
self.titleLabel = tk.Label( titleBar, text=titleText )
self.titleLabel.pack( side=tk.TOP, fill=tk.X )
titleBar.pack( side=tk.TOP, fill=tk.X )
# Create a scroll bar to fill the right-hand side of the window
self.vScrollbar = Scrollbar( self )
self.vScrollbar.pack( side=tk.RIGHT, fill=tk.Y )
self.textBox = tk.Text( self, height=4, yscrollcommand=self.vScrollbar.set )
self.textBox['wrap'] = 'word'
self.textBox.pack( expand=tk.YES, fill=tk.X ) # Full width
self.vScrollbar.config( command=self.textBox.yview ) # link the scrollbar to the text box
self.createStandardKeyboardBindings()
self.textBox.bind( "<Button-1>", self.setFocus ) # So disabled text box can still do select and copy functions
# Set-up our standard Bible styles
for USFMKey, styleDict in self.parentApp.stylesheet.getTKStyles().items():
self.textBox.tag_configure( USFMKey, **styleDict ) # Create the style
# Add our extra specialised styles
self.textBox.tag_configure( 'contextHeader', background='pink', font='helvetica 6 bold' )
self.textBox.tag_configure( 'context', background='pink', font='helvetica 6' )
self.pack( expand=tk.YES, fill=tk.BOTH ) # Pack the frame
# Set-up our Bible system and our callables
self.BibleOrganisationalSystem = BibleOrganizationalSystem( "GENERIC-KJV-66-ENG" ) # temp
self.getNumChapters = self.BibleOrganisationalSystem.getNumChapters
self.getNumVerses = lambda b,c: 99 if c=='0' or c==0 else self.BibleOrganisationalSystem.getNumVerses( b, c )
self.isValidBCVRef = self.BibleOrganisationalSystem.isValidBCVRef
self.getFirstBookCode = self.BibleOrganisationalSystem.getFirstBookCode
self.getPreviousBookCode = self.BibleOrganisationalSystem.getPreviousBookCode
self.getNextBookCode = self.BibleOrganisationalSystem.getNextBookCode
self.getBBB = self.BibleOrganisationalSystem.getBBB
self.getBookName = self.BibleOrganisationalSystem.getBookName
self.getBookList = self.BibleOrganisationalSystem.getBookList
self.maxChapters, self.maxVerses = 150, 150 # temp
self.verseCache = OrderedDict()
self.updateShownReferences( self.referenceObject )
# end of BibleReferenceBox.__init__
def createStandardKeyboardBindings( self ):
"""
Create keyboard bindings for this widget.
"""
if BibleOrgSysGlobals.debugFlag and debuggingThisModule:
print( exp("BibleReferenceBox.createStandardKeyboardBindings()") )
for name,command in ( ('SelectAll',self.doSelectAll), ('Copy',self.doCopy),
('Find',self.doFind), ('Refind',self.doRefind),
('Info',self.doShowInfo), ('Close',self.doClose) ):
self.createStandardKeyboardBinding( name, command )
# end of BibleReferenceBox.createStandardKeyboardBindings()
def xxxgotoBCV( self, BBB, C, V ):
"""
"""
if BibleOrgSysGlobals.debugFlag: print( exp("BibleReferenceBox.gotoBCV( {} {}:{} from {} )").format( BBB, C, V, self.currentVerseKey ) )
# We really need to convert versification systems here
adjBBB, adjC, adjV, adjS = self.BibleOrganisationalSystem.convertToReferenceVersification( BBB, C, V )
self.parentWindow.gotoGroupBCV( self.groupCode, adjBBB, adjC, adjV ) # then the App will update me by calling updateShownBCV
# end of BibleReferenceBox.gotoBCV
#.........这里部分代码省略.........
示例8: __init__
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
def __init__(self):
Tk.__init__(self)
self.wm_title("BioInfo : comparaison des listes")
self.resizable(width=FALSE, height=FALSE)
self.SortDir = False
# Lists Types
self.typeList1 = None
self.typeList2 = None
# Frame content
self.frameContent = Frame(self)
self.frameContent.pack(side=TOP, fill=X)
# ScrollBar
scrollbar = Scrollbar(self.frameContent, orient=VERTICAL)
scrollbar.pack(side=RIGHT, fill=Y)
# Result Content
self.dataCols = ('microArn_A', 'microArn_B', 'FoldC', 'p-Value', 'Note')
self.tree = Treeview(self.frameContent, columns=self.dataCols, show = 'headings', yscrollcommand=scrollbar.set)
# configure column headings
for c in self.dataCols:
self.tree.heading(c, text=c, command=lambda c=c: self.columnSort(c, self.SortDir))
self.tree.column(c, width=10)
self.tree.pack(side=LEFT, fill=X, expand="yes")
scrollbar.config(command=self.tree.yview)
# Frame Lists
self.frameLists = Frame(self)
self.frameLists.pack(side=LEFT)
# Frame Forms
self.frameForms = Frame(self)
self.frameForms.pack(side=LEFT, padx=20)
#Liste n°1 selection
self.frameList1 = Frame(self.frameLists)
self.frameList1.pack()
self.typeListStr1 = StringVar(self.frameList1)
self.typeListStr1.set(str(ListBioType.TypeA))
self.buttonTypeList1 = OptionMenu(self.frameList1, self.typeListStr1, str(ListBioType.TypeA), str(ListBioType.TypeB)).pack(side=LEFT)
self.entrylist1 = Entry(self.frameList1, width=30)
self.entrylist1.pack(side=LEFT)
self.buttonBrowseList1 = Button(self.frameList1, text="Parcourir", command=self.load_fileList1, width=10)
self.buttonBrowseList1.pack(side=LEFT, padx=5)
# List n°2 selection
self.frameList2 = Frame(self.frameLists)
self.frameList2.pack(side=BOTTOM)
self.typeListStr2 = StringVar(self.frameList2)
self.typeListStr2.set(str(ListBioType.TypeB))
self.buttonTypeList2 = OptionMenu(self.frameList2, self.typeListStr2, str(ListBioType.TypeA), str(ListBioType.TypeB)).pack(side=LEFT)
self.entrylist2 = Entry(self.frameList2, width=30)
self.entrylist2.pack(side=LEFT)
self.buttonBrowseList2 = Button(self.frameList2, text="Parcourir", command=self.load_fileList2, width=10)
self.buttonBrowseList2.pack(side=LEFT, padx=5)
# Form pValue
self.framePVal = Frame(self.frameForms)
self.framePVal.pack()
Label(self.framePVal, text="pValue").pack(side=LEFT)
self.entryPVal = Entry(self.framePVal, width=6)
self.entryPVal.pack(side=LEFT)
# Form foldC
self.frameFoldC = Frame(self.frameForms)
self.frameFoldC.pack()
Label(self.frameFoldC, text="foldCh").pack(side=LEFT)
self.entryFoldC = Entry(self.frameFoldC, width=6)
self.entryFoldC.pack(side=LEFT)
# Form note
self.frameNote = Frame(self.frameForms)
self.frameNote.pack()
Label(self.frameNote, text="note ").pack(side=LEFT)
self.entryNote = Entry(self.frameNote, width=6)
self.entryNote.pack(side=LEFT)
# Bouton comparer
self.buttonComparer = Button(self, text="Comparer", command=self.compare, width=10, state=DISABLED)
self.buttonComparer.pack(fill= X, expand="yes", padx=20, pady=(10,0))
#Bouton exporter
self.buttonExport = Button(self, text="Exporter", command=self.export, width=10, state=DISABLED)
self.buttonExport.pack(fill= X, expand="yes", padx=20)
#.........这里部分代码省略.........
示例9: __init__
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
def __init__(self):
'''
Constructor
'''
self.root = Tk()
self.root.title("DinnerLog")
self.root.minsize(800, 600)
self.root.grid_columnconfigure(0, weight=1)
self.root.grid_rowconfigure(0, weight=1)
self.root.grid_rowconfigure(1, weight=3)
# Ein Frame für alles, das mit Zutaten zu tun hat
self.fr_zutaten = Labelframe(self.root, borderwidth=2, relief=GROOVE, text="Zutaten")
self.fr_zutaten.grid_columnconfigure(0, weight=1)
self.fr_zutaten.grid_rowconfigure(0, weight=1)
self.fr_zutaten.grid(row=0, column=0, sticky="NSWE")
self.lb_zutaten = Listbox(self.fr_zutaten)
sb_zutaten = Scrollbar(self.lb_zutaten, orient=VERTICAL)
self.lb_zutaten.configure(yscrollcommand=sb_zutaten.set)
sb_zutaten.config(command=self.lb_zutaten.yview)
sb_zutaten.pack(side="right", fill="both")
self.lb_zutaten.grid(row=0, column=0, sticky="NSEW")
self._addNeueZutatFrame()
# Ein Frame in den alles, das mit Mahlzeiten zu tun hat, kommt
self.fr_mahlzeit = Labelframe(self.root, borderwidth=2, relief=GROOVE, text="Mahlzeiten")
self.fr_mahlzeit.grid_columnconfigure(0, weight=1)
self.fr_mahlzeit.grid_rowconfigure(0, weight=1)
self.fr_mahlzeit.grid(row=1, column=0, sticky="NSWE")
self._addNeueMahlzeitFrame()
self.lb_mahlzeiten = Listbox(self.fr_mahlzeit, selectmode=SINGLE)
sb_mahlzeiten = Scrollbar(self.lb_mahlzeiten, orient=VERTICAL)
sb_mahlzeiten.configure(command=self.lb_mahlzeiten.yview)
self.lb_mahlzeiten.configure(yscrollcommand=sb_mahlzeiten.set)
sb_mahlzeiten.pack(side="right", fill="both")
self.lb_mahlzeiten.grid(row=0, column=0, sticky="NSEW")
fr_neu_ok = Frame(self.fr_mahlzeit)
fr_neu_ok.grid(row=1, column=0, columnspan=2, sticky="E")
self.btn_neu = Button(fr_neu_ok, text="Neu")
self.btn_neu.pack(side="left")
self.btn_mahlzeit_als_zt = Button(fr_neu_ok, text="Als Zutat")
self.btn_mahlzeit_als_zt.pack(anchor=E, side="right")
self.btn_insert = Button(fr_neu_ok, text="Hinzufuegen")
self.btn_insert.pack(anchor=E, side="right")
self.btn_update = Button(fr_neu_ok, text="Update")
self.btn_update.pack(anchor=E, side="right")
self.btn_delete = Button(fr_neu_ok, text="Loeschen")
self.btn_delete.pack(anchor=E, side="right")
# Ein Frame der Statistiken darstellt
self.fr_stats = Labelframe(self.root, borderwidth=2, relief=GROOVE, text="Statistik")
self.fr_stats.grid(row=3, column=0, sticky="NSWE")
示例10: initUI
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
def initUI(self):
self.parent.title("Digital Cookbook")
self.style = Style()
self.style.theme_use("default")
self.pack(fill=BOTH, expand=1, side=BOTTOM)
# Establish menu bar #
menubar = Menu(self.parent)
self.parent.config(menu=menubar)
# Add file menu #
filemenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="Import recipe from XML file", command=self.xmlImport)
filemenu.add_command(label="Add blank recipe to database", command=self.recipeAdd)
filemenu.add_command(label="Delete recipe from database", command=self.recipeDelete)
filemenu.add_command(label="Load recipe", command=self.recipeLoad)
filemenu.add_command(label="Save recipe to database", command=self.recipeSave, accelerator="Ctrl+S")
filemenu.add_separator()
filemenu.add_command(label="Exit", command=self.onExit, accelerator="Ctrl+W")
# Add help menu #
helpmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Help", menu=helpmenu)
helpmenu.add_command(label="About...", command=self.helpAbout)
# Establish toolbar #
frameToolbar = Frame(self.parent) # , relief=RAISED, borderwidth=1)
frameToolbar.pack(side=TOP, fill=X)
# Add buttons to toolbar #
buffer = 2
buttonspaceing = 100
buttonwidth = 12
buttonheight = 30
bImportXML = Button(frameToolbar, text="Import XML", command=self.xmlImport, width=buttonwidth)
bImportXML.pack(side=LEFT, padx=buffer, pady=buffer)
bAddRecipe = Button(frameToolbar, text="Add Recipe", command=self.recipeAdd, width=buttonwidth)
bAddRecipe.pack(side=LEFT, padx=buffer, pady=buffer)
bDeleteRecipe = Button(frameToolbar, text="Delete Recipe", command=self.recipeDelete, width=buttonwidth)
bDeleteRecipe.pack(side=LEFT, padx=buffer, pady=buffer)
bEditRecipe = Button(frameToolbar, text="Load Recipe", command=self.recipeLoad, width=buttonwidth)
bEditRecipe.pack(side=LEFT, padx=buffer, pady=buffer)
bSaveRecipe = Button(frameToolbar, text="Save Recipe", command=self.recipeSave, width=buttonwidth)
bSaveRecipe.pack(side=LEFT, padx=buffer, pady=buffer)
# Recipe list section
frameRecipeList = Frame(self, borderwidth=1, width=200)
frameRecipeList.pack_propagate(0)
frameRecipeList.pack(side=LEFT, fill=Y)
Label(frameRecipeList, text="Recipe List").pack()
# Category option menu
default = StringVar(frameRecipeList)
default.set("----")
recipeCatagories = OptionMenu(frameRecipeList, default, "----", "None", "Cat 1", "Cat 2", "Cat 3")
recipeCatagories.pack(side=TOP, fill=X)
# Filter Frame
frameFilter = Frame(frameRecipeList, relief=RAISED, borderwidth=1, width=200)
frameFilter.pack(side=TOP, fill=X)
Label(frameFilter, text="Filter...").pack()
# Filter text
filterText = Entry(frameFilter)
filterText.pack_propagate(0)
filterText.pack(side=LEFT, fill=X)
# Filter Button
filterButton = Button(frameFilter, text="Go", command=self.placeholder)
filterButton.pack_propagate(0)
filterButton.pack(side=RIGHT)
# Recipe Box Frame
frameRecipeBox = Frame(frameRecipeList, relief=RAISED, borderwidth=1)
frameRecipeBox.pack(side=TOP, fill=BOTH, expand=1)
# ==== Recipe List box ====
recipeListScroll = Scrollbar(frameRecipeBox, orient=VERTICAL)
self.recipeList = Listbox(frameRecipeBox, selectmode=EXTENDED, yscrollcommand=recipeListScroll.set)
self.recipeList.pack(side=LEFT, fill=BOTH, expand=1)
recipeListScroll.config(command=self.recipeList.yview)
recipeListScroll.pack(side=RIGHT, fill=Y)
self.getReciepList()
self.populateRecipeList(self.recipes)
# Spacer
frameSpacer1 = Frame(self, borderwidth=1, width=10)
frameSpacer1.pack_propagate(0)
frameSpacer1.pack(side=LEFT, fill=Y)
# Recipe info section
frameRecipeInfo = Frame(self, borderwidth=1, width=200)
frameRecipeInfo.pack_propagate(0)
frameRecipeInfo.pack(side=LEFT, fill=Y)
# Recipe name
Label(frameRecipeInfo, text="Recipe Name:", anchor=E, justify=LEFT).pack()
self.recipeName = Entry(frameRecipeInfo)
self.recipeName.pack(side=TOP, fill=X)
# Prep Time
framePrepTime = Frame(frameRecipeInfo)
framePrepTime.pack(side=TOP, fill=X)
Label(framePrepTime, text="Prep Time:", anchor=E, justify=LEFT).pack()
self.prepTime = Entry(framePrepTime)
self.prepTime.pack(side=LEFT, fill=X)
default = StringVar(framePrepTime)
default.set("----")
#.........这里部分代码省略.........
示例11: HTMLWindow
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
class HTMLWindow( tk.Toplevel, ChildBox ):
"""
"""
def __init__( self, parentWindow, filename=None ):
"""
"""
if BibleOrgSysGlobals.debugFlag and debuggingThisModule:
print( exp("HTMLWindow.__init__( {}, {} )").format( parentWindow, repr(filename) ) )
assert( parentWindow )
self.parentWindow, self.initialFilename = parentWindow, filename
tk.Toplevel.__init__( self, self.parentWindow )
ChildBox.__init__( self, self.parentWindow )
self.protocol( "WM_DELETE_WINDOW", self.closeHTMLWindow )
self.title( 'HTMLWindow' )
self.genericWindowType = 'HTMLWindow'
self.winType = 'HTMLWindow'
self.moduleID = 'HTML'
self.geometry( INITIAL_HTML_SIZE )
self.minimumSize, self.maximumSize = MINIMUM_HTML_SIZE, MAXIMUM_HTML_SIZE
self.minsize( *parseWindowSize( self.minimumSize ) )
self.maxsize( *parseWindowSize( self.maximumSize ) )
self._showStatusBarVar = tk.BooleanVar()
self._showStatusBarVar.set( True )
self._statusTextVar = tk.StringVar()
self._statusTextVar.set( '' ) # first initial value
self.createMenuBar()
self.createToolBar()
self.createContextMenu()
if self._showStatusBarVar.get(): self.createStatusBar()
self.viewMode = DEFAULT
self.settings = None
# Create a scroll bar to fill the right-hand side of the window
self.vScrollbar = Scrollbar( self )
self.vScrollbar.pack( side=tk.RIGHT, fill=tk.Y )
#if 'textBox' in dir(self): # we have one already -- presumably a specialised one
#halt # We have one already
#else: # let's make one
self.textBox = HTMLText( self, yscrollcommand=self.vScrollbar.set, state=tk.DISABLED )
self.textBox['wrap'] = 'word'
self.textBox.pack( expand=tk.YES, fill=tk.BOTH )
self.vScrollbar.config( command=self.textBox.yview ) # link the scrollbar to the text box
self.createStandardKeyboardBindings()
self.textBox.bind( "<Button-1>", self.setFocus ) # So disabled text box can still do select and copy functions
# Options for find, etc.
self.optionsDict = {}
self.optionsDict['caseinsens'] = True
if filename:
self.historyList = [ filename ]
self.historyIndex = 1 # Number from the end (starting with 1)
self.load( filename )
else:
self.historyList = []
self.historyIndex = 0 # = None
# end of HTMLWindow.__init__
def notWrittenYet( self ):
errorBeep()
showerror( self, _("Not implemented"), _("Not yet available, sorry") )
# end of HTMLWindow.notWrittenYet
def createMenuBar( self ):
"""
"""
if BibleOrgSysGlobals.debugFlag and debuggingThisModule: print( exp("HTMLWindow.createMenuBar()") )
try: kBD = self.parentWindow.parentApp.keyBindingDict
except AttributeError: kBD = self.parentApp.keyBindingDict
self.menubar = tk.Menu( self )
#self['menu'] = self.menubar
self.config( menu=self.menubar ) # alternative
fileMenu = tk.Menu( self.menubar, tearoff=False )
self.menubar.add_cascade( menu=fileMenu, label='File', underline=0 )
#fileMenu.add_command( label='New...', underline=0, command=self.notWrittenYet )
#fileMenu.add_command( label='Open...', underline=0, command=self.notWrittenYet )
#fileMenu.add_separator()
#subfileMenuImport = tk.Menu( fileMenu )
#subfileMenuImport.add_command( label='USX', underline=0, command=self.notWrittenYet )
#fileMenu.add_cascade( label='Import', underline=0, menu=subfileMenuImport )
#subfileMenuExport = tk.Menu( fileMenu )
#subfileMenuExport.add_command( label='USX', underline=0, command=self.notWrittenYet )
#subfileMenuExport.add_command( label='HTML', underline=0, command=self.notWrittenYet )
#fileMenu.add_cascade( label='Export', underline=0, menu=subfileMenuExport )
#fileMenu.add_separator()
fileMenu.add_command( label='Info...', underline=0, command=self.doShowInfo, accelerator=kBD['Info'][0] )
fileMenu.add_separator()
fileMenu.add_command( label='Close', underline=0, command=self.doClose, accelerator=kBD['Close'][0] ) # close this window
editMenu = tk.Menu( self.menubar, tearoff=False )
#.........这里部分代码省略.........
示例12: ChildWindow
# 需要导入模块: from tkinter.ttk import Scrollbar [as 别名]
# 或者: from tkinter.ttk.Scrollbar import config [as 别名]
class ChildWindow( tk.Toplevel, ChildBox ):
"""
"""
def __init__( self, parentApp, genericWindowType ):
"""
The genericWindowType is set here,
but the more specific winType is set later by the subclass.
"""
if BibleOrgSysGlobals.debugFlag and debuggingThisModule:
print( exp("ChildWindow.__init__( {} {} )").format( parentApp, repr(genericWindowType) ) )
assert( parentApp )
assert( genericWindowType in ('BibleResource','LexiconResource','TextEditor','BibleEditor',) )
self.parentApp, self.genericWindowType = parentApp, genericWindowType
tk.Toplevel.__init__( self, self.parentApp )
ChildBox.__init__( self, self.parentApp )
self.protocol( "WM_DELETE_WINDOW", self.closeChildWindow )
self.geometry( INITIAL_RESOURCE_SIZE )
self.minimumSize, self.maximumSize = MINIMUM_RESOURCE_SIZE, MAXIMUM_RESOURCE_SIZE
self.minsize( *parseWindowSize( self.minimumSize ) )
self.maxsize( *parseWindowSize( self.maximumSize ) )
self.createMenuBar()
self.createToolBar()
self.createContextMenu()
self.viewMode = DEFAULT
self.settings = None
# Create a scroll bar to fill the right-hand side of the window
self.vScrollbar = Scrollbar( self )
self.vScrollbar.pack( side=tk.RIGHT, fill=tk.Y )
#if 'textBox' in dir(self): # we have one already -- presumably a specialised one
#halt # We have one already
#else: # let's make one
self.textBox = tk.Text( self, yscrollcommand=self.vScrollbar.set, state=tk.DISABLED )
self.textBox['wrap'] = 'word'
self.textBox.pack( expand=tk.YES, fill=tk.BOTH )
self.vScrollbar.config( command=self.textBox.yview ) # link the scrollbar to the text box
self.createStandardKeyboardBindings()
self.textBox.bind( "<Button-1>", self.setFocus ) # So disabled text box can still do select and copy functions
# Options for find, etc.
self.optionsDict = {}
self.optionsDict['caseinsens'] = True
self.refreshTitle() # Must be in superclass
# end of ChildWindow.__init__
def notWrittenYet( self ):
errorBeep()
showerror( self, _("Not implemented"), _("Not yet available, sorry") )
# end of ChildWindow.notWrittenYet
def createMenuBar( self ):
logging.critical( exp("PROGRAMMING ERROR: This 'createMenuBar' method MUST be overridden!") )
if BibleOrgSysGlobals.debugFlag:
print( exp("This 'createMenuBar' method MUST be overridden!") )
halt
def createContextMenu( self ):
"""
Can be overriden if necessary.
"""
self.contextMenu = tk.Menu( self, tearoff=0 )
self.contextMenu.add_command( label="Copy", underline=0, command=self.doCopy, accelerator=self.parentApp.keyBindingDict['Copy'][0] )
self.contextMenu.add_separator()
self.contextMenu.add_command( label="Select all", underline=7, command=self.doSelectAll, accelerator=self.parentApp.keyBindingDict['SelectAll'][0] )
self.contextMenu.add_separator()
self.contextMenu.add_command( label="Find...", underline=0, command=self.doFind, accelerator=self.parentApp.keyBindingDict['Find'][0] )
self.contextMenu.add_separator()
self.contextMenu.add_command( label="Close", underline=1, command=self.doClose, accelerator=self.parentApp.keyBindingDict['Close'][0] )
self.bind( "<Button-3>", self.showContextMenu ) # right-click
#self.pack()
# end of ChildWindow.createContextMenu
def showContextMenu( self, event ):
self.contextMenu.post( event.x_root, event.y_root )
# end of ChildWindow.showContextMenu
def createToolBar( self ):
"""
Designed to be overridden.
"""
#if BibleOrgSysGlobals.debugFlag and debuggingThisModule:
#print( exp("This 'createToolBar' method can be overridden!") )
pass
# end of ChildWindow.createToolBar
def doHelp( self, event=None ):
"""
#.........这里部分代码省略.........