python tkinter 最简洁的计算器按钮排列


 

代码如下,只要再加上按键绑定事件函数,计算器既可使用了。 

import tkinter as tk
from tkinter.ttk import Separator,Buttonif __name__ == '__main__':Buttons = [['%','CE','C','←'],['1/x','x²','√x','÷'],['7', '8', '9', 'x'],['4', '5', '6', '-'],['1', '2', '3', '+'],['±', '0', '.', '=']]root = tk.Tk()root.title("计算器")Separator(root).grid(row=0, column=0, columnspan=4, pady=2)exp = tk.Label(root, text='', anchor='e', width=42)exp.grid(row=1, column=0, columnspan=4, padx=6, pady=2)frm = tk.Frame(root, borderwidth=1, relief="ridge", bg='black')frm.grid(row=2, column=0, columnspan=4)res = tk.Label(frm, text='0', font=('微软雅黑',16), width=30, anchor='e', bg='white', padx=5, pady=12)res.grid(padx=1, pady=1)Separator(root).grid(row=3, column=0, columnspan=4, pady=2)for row, Row in enumerate(Buttons):for col, btn in enumerate(Row):Button(root, text=btn, width=8, padding=(0, 12)).grid(row=row+4, column=col, padx=4, pady=3)Separator(root).grid(row=10, column=0, columnspan=4, pady=2)root.mainloop()

代码最关键的就是只用一个双重循环就把24个按键一次搞定:

for row, Row in enumerate(Buttons):for col, btn in enumerate(Row):Button(root, text=btn, width=8, padding=(0, 12)).grid(row=row+4, column=col, padx=4, pady=3)

除了主角Button控件外,还有三个配角控件:Label、Separator以及Frame

 Separator(root).grid(row=0, column=0, columnspan=4, pady=2)exp = tk.Label(root, text='', anchor='e', width=42)exp.grid(row=1, column=0, columnspan=4, padx=6, pady=2)frm = tk.Frame(root, borderwidth=1, relief="ridge", bg='black')frm.grid(row=2, column=0, columnspan=4)res = tk.Label(frm, text='0', font=('微软雅黑',16), width=30, anchor='e', bg='white', padx=5, pady=12)res.grid(padx=1, pady=1)Separator(root).grid(row=3, column=0, columnspan=4, pady=2)

Separator隔开控件用,Frame摆放显示结果的Label标签,Label的原版帮助如下:

Help on class Label in module tkinter:

class Label(Widget)
 |  Label(master=None, cnf={}, **kw)
 |
 |  Label widget which can display text and bitmaps.
 |
 |  Method resolution order:
 |      Label
 |      Widget
 |      BaseWidget
 |      Misc
 |      Pack
 |      Place
 |      Grid
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __init__(self, master=None, cnf={}, **kw)
 |      Construct a label widget with the parent MASTER.
 |
 |      STANDARD OPTIONS
 |
 |          activebackground, activeforeground, anchor,
 |          background, bitmap, borderwidth, cursor,
 |          disabledforeground, font, foreground,
 |          highlightbackground, highlightcolor,
 |          highlightthickness, image, justify,
 |          padx, pady, relief, takefocus, text,
 |          textvariable, underline, wraplength
 |
 |      WIDGET-SPECIFIC OPTIONS
 |
 |          height, state, width
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from BaseWidget:
 |
 |  destroy(self)
 |      Destroy this and all descendants widgets.
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from Misc:
 |
 |  __getitem__ = cget(self, key)
 |
 |  __repr__(self)
 |      Return repr(self).
 |
 |  __setitem__(self, key, value)
 |
 |  __str__(self)
 |      Return the window path name of this widget.
 |
 |  after(self, ms, func=None, *args)
 |      Call function once after given time.
 |
 |      MS specifies the time in milliseconds. FUNC gives the
 |      function which shall be called. Additional parameters
 |      are given as parameters to the function call.  Return
 |      identifier to cancel scheduling with after_cancel.
 |
 |  after_cancel(self, id)
 |      Cancel scheduling of function identified with ID.
 |
 |      Identifier returned by after or after_idle must be
 |      given as first parameter.
 |
 |  after_idle(self, func, *args)
 |      Call FUNC once if the Tcl main loop has no event to
 |      process.
 |
 |      Return an identifier to cancel the scheduling with
 |      after_cancel.
 |
 |  anchor = grid_anchor(self, anchor=None)
 |
 |  bbox = grid_bbox(self, column=None, row=None, col2=None, row2=None)
 |
 |  bell(self, displayof=0)
 |      Ring a display's bell.
 |
 |  bind(self, sequence=None, func=None, add=None)
 |      Bind to this widget at event SEQUENCE a call to function FUNC.
 |
 |      SEQUENCE is a string of concatenated event
 |      patterns. An event pattern is of the form
 |      <MODIFIER-MODIFIER-TYPE-DETAIL> where MODIFIER is one
 |      of Control, Mod2, M2, Shift, Mod3, M3, Lock, Mod4, M4,
 |      Button1, B1, Mod5, M5 Button2, B2, Meta, M, Button3,
 |      B3, Alt, Button4, B4, Double, Button5, B5 Triple,
 |      Mod1, M1. TYPE is one of Activate, Enter, Map,
 |      ButtonPress, Button, Expose, Motion, ButtonRelease
 |      FocusIn, MouseWheel, Circulate, FocusOut, Property,
 |      Colormap, Gravity Reparent, Configure, KeyPress, Key,
 |      Unmap, Deactivate, KeyRelease Visibility, Destroy,
 |      Leave and DETAIL is the button number for ButtonPress,
 |      ButtonRelease and DETAIL is the Keysym for KeyPress and
 |      KeyRelease. Examples are
 |      <Control-Button-1> for pressing Control and mouse button 1 or
 |      <Alt-A> for pressing A and the Alt key (KeyPress can be omitted).
 |      An event pattern can also be a virtual event of the form
 |      <<AString>> where AString can be arbitrary. This
 |      event can be generated by event_generate.
 |      If events are concatenated they must appear shortly
 |      after each other.
 |
 |      FUNC will be called if the event sequence occurs with an
 |      instance of Event as argument. If the return value of FUNC is
 |      "break" no further bound function is invoked.
 |
 |      An additional boolean parameter ADD specifies whether FUNC will
 |      be called additionally to the other bound function or whether
 |      it will replace the previous function.
 |
 |      Bind will return an identifier to allow deletion of the bound function with
 |      unbind without memory leak.
 |
 |      If FUNC or SEQUENCE is omitted the bound function or list
 |      of bound events are returned.
 |
 |  bind_all(self, sequence=None, func=None, add=None)
 |      Bind to all widgets at an event SEQUENCE a call to function FUNC.
 |      An additional boolean parameter ADD specifies whether FUNC will
 |      be called additionally to the other bound function or whether
 |      it will replace the previous function. See bind for the return value.
 |
 |  bind_class(self, className, sequence=None, func=None, add=None)
 |      Bind to widgets with bindtag CLASSNAME at event
 |      SEQUENCE a call of function FUNC. An additional
 |      boolean parameter ADD specifies whether FUNC will be
 |      called additionally to the other bound function or
 |      whether it will replace the previous function. See bind for
 |      the return value.
 |
 |  bindtags(self, tagList=None)
 |      Set or get the list of bindtags for this widget.
 |
 |      With no argument return the list of all bindtags associated with
 |      this widget. With a list of strings as argument the bindtags are
 |      set to this list. The bindtags determine in which order events are
 |      processed (see bind).
 |
 |  cget(self, key)
 |      Return the resource value for a KEY given as string.
 |
 |  clipboard_append(self, string, **kw)
 |      Append STRING to the Tk clipboard.
 |
 |      A widget specified at the optional displayof keyword
 |      argument specifies the target display. The clipboard
 |      can be retrieved with selection_get.
 |
 |  clipboard_clear(self, **kw)
 |      Clear the data in the Tk clipboard.
 |
 |      A widget specified for the optional displayof keyword
 |      argument specifies the target display.
 |
 |  clipboard_get(self, **kw)
 |      Retrieve data from the clipboard on window's display.
 |
 |      The window keyword defaults to the root window of the Tkinter
 |      application.
 |
 |      The type keyword specifies the form in which the data is
 |      to be returned and should be an atom name such as STRING
 |      or FILE_NAME.  Type defaults to STRING, except on X11, where the default
 |      is to try UTF8_STRING and fall back to STRING.
 |
 |      This command is equivalent to:
 |
 |      selection_get(CLIPBOARD)
 |
 |  columnconfigure = grid_columnconfigure(self, index, cnf={}, **kw)
 |
 |  config = configure(self, cnf=None, **kw)
 |
 |  configure(self, cnf=None, **kw)
 |      Configure resources of a widget.
 |
 |      The values for resources are specified as keyword
 |      arguments. To get an overview about
 |      the allowed keyword arguments call the method keys.
 |
 |  deletecommand(self, name)
 |      Internal function.
 |
 |      Delete the Tcl command provided in NAME.
 |
 |  event_add(self, virtual, *sequences)
 |      Bind a virtual event VIRTUAL (of the form <<Name>>)
 |      to an event SEQUENCE such that the virtual event is triggered
 |      whenever SEQUENCE occurs.
 |
 |  event_delete(self, virtual, *sequences)
 |      Unbind a virtual event VIRTUAL from SEQUENCE.
 |
 |  event_generate(self, sequence, **kw)
 |      Generate an event SEQUENCE. Additional
 |      keyword arguments specify parameter of the event
 |      (e.g. x, y, rootx, rooty).
 |
 |  event_info(self, virtual=None)
 |      Return a list of all virtual events or the information
 |      about the SEQUENCE bound to the virtual event VIRTUAL.
 |
 |  focus = focus_set(self)
 |
 |  focus_displayof(self)
 |      Return the widget which has currently the focus on the
 |      display where this widget is located.
 |
 |      Return None if the application does not have the focus.
 |
 |  focus_force(self)
 |      Direct input focus to this widget even if the
 |      application does not have the focus. Use with
 |      caution!
 |
 |  focus_get(self)
 |      Return the widget which has currently the focus in the
 |      application.
 |
 |      Use focus_displayof to allow working with several
 |      displays. Return None if application does not have
 |      the focus.
 |
 |  focus_lastfor(self)
 |      Return the widget which would have the focus if top level
 |      for this widget gets the focus from the window manager.
 |
 |  focus_set(self)
 |      Direct input focus to this widget.
 |
 |      If the application currently does not have the focus
 |      this widget will get the focus if the application gets
 |      the focus through the window manager.
 |
 |  getboolean(self, s)
 |      Return a boolean value for Tcl boolean values true and false given as parameter.
 |
 |  getdouble(self, s)
 |
 |  getint(self, s)
 |
 |  getvar(self, name='PY_VAR')
 |      Return value of Tcl variable NAME.
 |
 |  grab_current(self)
 |      Return widget which has currently the grab in this application
 |      or None.
 |
 |  grab_release(self)
 |      Release grab for this widget if currently set.
 |
 |  grab_set(self)
 |      Set grab for this widget.
 |
 |      A grab directs all events to this and descendant
 |      widgets in the application.
 |
 |  grab_set_global(self)
 |      Set global grab for this widget.
 |
 |      A global grab directs all events to this and
 |      descendant widgets on the display. Use with caution -
 |      other applications do not get events anymore.
 |
 |  grab_status(self)
 |      Return None, "local" or "global" if this widget has
 |      no, a local or a global grab.
 |
 |  grid_anchor(self, anchor=None)
 |      The anchor value controls how to place the grid within the
 |      master when no row/column has any weight.
 |
 |      The default anchor is nw.
 |
 |  grid_bbox(self, column=None, row=None, col2=None, row2=None)
 |      Return a tuple of integer coordinates for the bounding
 |      box of this widget controlled by the geometry manager grid.
 |
 |      If COLUMN, ROW is given the bounding box applies from
 |      the cell with row and column 0 to the specified
 |      cell. If COL2 and ROW2 are given the bounding box
 |      starts at that cell.
 |
 |      The returned integers specify the offset of the upper left
 |      corner in the master widget and the width and height.
 |
 |  grid_columnconfigure(self, index, cnf={}, **kw)
 |      Configure column INDEX of a grid.
 |
 |      Valid resources are minsize (minimum size of the column),
 |      weight (how much does additional space propagate to this column)
 |      and pad (how much space to let additionally).
 |
 |  grid_location(self, x, y)
 |      Return a tuple of column and row which identify the cell
 |      at which the pixel at position X and Y inside the master
 |      widget is located.
 |
 |  grid_propagate(self, flag=['_noarg_'])
 |      Set or get the status for propagation of geometry information.
 |
 |      A boolean argument specifies whether the geometry information
 |      of the slaves will determine the size of this widget. If no argument
 |      is given, the current setting will be returned.
 |
 |  grid_rowconfigure(self, index, cnf={}, **kw)
 |      Configure row INDEX of a grid.
 |
 |      Valid resources are minsize (minimum size of the row),
 |      weight (how much does additional space propagate to this row)
 |      and pad (how much space to let additionally).
 |
 |  grid_size(self)
 |      Return a tuple of the number of column and rows in the grid.
 |
 |  grid_slaves(self, row=None, column=None)
 |      Return a list of all slaves of this widget
 |      in its packing order.
 |
 |  image_names(self)
 |      Return a list of all existing image names.
 |
 |  image_types(self)
 |      Return a list of all available image types (e.g. photo bitmap).
 |
 |  info_patchlevel(self)
 |      Returns the exact version of the Tcl library.
 |
 |  keys(self)
 |      Return a list of all resource names of this widget.
 |
 |  lift = tkraise(self, aboveThis=None)
 |
 |  lower(self, belowThis=None)
 |      Lower this widget in the stacking order.
 |
 |  mainloop(self, n=0)
 |      Call the mainloop of Tk.
 |
 |  nametowidget(self, name)
 |      Return the Tkinter instance of a widget identified by
 |      its Tcl name NAME.
 |
 |  option_add(self, pattern, value, priority=None)
 |      Set a VALUE (second parameter) for an option
 |      PATTERN (first parameter).
 |
 |      An optional third parameter gives the numeric priority
 |      (defaults to 80).
 |
 |  option_clear(self)
 |      Clear the option database.
 |
 |      It will be reloaded if option_add is called.
 |
 |  option_get(self, name, className)
 |      Return the value for an option NAME for this widget
 |      with CLASSNAME.
 |
 |      Values with higher priority override lower values.
 |
 |  option_readfile(self, fileName, priority=None)
 |      Read file FILENAME into the option database.
 |
 |      An optional second parameter gives the numeric
 |      priority.
 |
 |  pack_propagate(self, flag=['_noarg_'])
 |      Set or get the status for propagation of geometry information.
 |
 |      A boolean argument specifies whether the geometry information
 |      of the slaves will determine the size of this widget. If no argument
 |      is given the current setting will be returned.
 |
 |  pack_slaves(self)
 |      Return a list of all slaves of this widget
 |      in its packing order.
 |
 |  place_slaves(self)
 |      Return a list of all slaves of this widget
 |      in its packing order.
 |
 |  propagate = pack_propagate(self, flag=['_noarg_'])
 |
 |  quit(self)
 |      Quit the Tcl interpreter. All widgets will be destroyed.
 |
 |  register = _register(self, func, subst=None, needcleanup=1)
 |
 |  rowconfigure = grid_rowconfigure(self, index, cnf={}, **kw)
 |
 |  selection_clear(self, **kw)
 |      Clear the current X selection.
 |
 |  selection_get(self, **kw)
 |      Return the contents of the current X selection.
 |
 |      A keyword parameter selection specifies the name of
 |      the selection and defaults to PRIMARY.  A keyword
 |      parameter displayof specifies a widget on the display
 |      to use. A keyword parameter type specifies the form of data to be
 |      fetched, defaulting to STRING except on X11, where UTF8_STRING is tried
 |      before STRING.
 |
 |  selection_handle(self, command, **kw)
 |      Specify a function COMMAND to call if the X
 |      selection owned by this widget is queried by another
 |      application.
 |
 |      This function must return the contents of the
 |      selection. The function will be called with the
 |      arguments OFFSET and LENGTH which allows the chunking
 |      of very long selections. The following keyword
 |      parameters can be provided:
 |      selection - name of the selection (default PRIMARY),
 |      type - type of the selection (e.g. STRING, FILE_NAME).
 |
 |  selection_own(self, **kw)
 |      Become owner of X selection.
 |
 |      A keyword parameter selection specifies the name of
 |      the selection (default PRIMARY).
 |
 |  selection_own_get(self, **kw)
 |      Return owner of X selection.
 |
 |      The following keyword parameter can
 |      be provided:
 |      selection - name of the selection (default PRIMARY),
 |      type - type of the selection (e.g. STRING, FILE_NAME).
 |
 |  send(self, interp, cmd, *args)
 |      Send Tcl command CMD to different interpreter INTERP to be executed.
 |
 |  setvar(self, name='PY_VAR', value='1')
 |      Set Tcl variable NAME to VALUE.
 |
 |  size = grid_size(self)
 |
 |  slaves = pack_slaves(self)
 |
 |  tk_bisque(self)
 |      Change the color scheme to light brown as used in Tk 3.6 and before.
 |
 |  tk_focusFollowsMouse(self)
 |      The widget under mouse will get automatically focus. Can not
 |      be disabled easily.
 |
 |  tk_focusNext(self)
 |      Return the next widget in the focus order which follows
 |      widget which has currently the focus.
 |
 |      The focus order first goes to the next child, then to
 |      the children of the child recursively and then to the
 |      next sibling which is higher in the stacking order.  A
 |      widget is omitted if it has the takefocus resource set
 |      to 0.
 |
 |  tk_focusPrev(self)
 |      Return previous widget in the focus order. See tk_focusNext for details.
 |
 |  tk_setPalette(self, *args, **kw)
 |      Set a new color scheme for all widget elements.
 |
 |      A single color as argument will cause that all colors of Tk
 |      widget elements are derived from this.
 |      Alternatively several keyword parameters and its associated
 |      colors can be given. The following keywords are valid:
 |      activeBackground, foreground, selectColor,
 |      activeForeground, highlightBackground, selectBackground,
 |      background, highlightColor, selectForeground,
 |      disabledForeground, insertBackground, troughColor.
 |
 |  tk_strictMotif(self, boolean=None)
 |      Set Tcl internal variable, whether the look and feel
 |      should adhere to Motif.
 |
 |      A parameter of 1 means adhere to Motif (e.g. no color
 |      change if mouse passes over slider).
 |      Returns the set value.
 |
 |  tkraise(self, aboveThis=None)
 |      Raise this widget in the stacking order.
 |
 |  unbind(self, sequence, funcid=None)
 |      Unbind for this widget for event SEQUENCE  the
 |      function identified with FUNCID.
 |
 |  unbind_all(self, sequence)
 |      Unbind for all widgets for event SEQUENCE all functions.
 |
 |  unbind_class(self, className, sequence)
 |      Unbind for all widgets with bindtag CLASSNAME for event SEQUENCE
 |      all functions.
 |
 |  update(self)
 |      Enter event loop until all pending events have been processed by Tcl.
 |
 |  update_idletasks(self)
 |      Enter event loop until all idle callbacks have been called. This
 |      will update the display of windows but not process events caused by
 |      the user.
 |
 |  wait_variable(self, name='PY_VAR')
 |      Wait until the variable is modified.
 |
 |      A parameter of type IntVar, StringVar, DoubleVar or
 |      BooleanVar must be given.
 |
 |  wait_visibility(self, window=None)
 |      Wait until the visibility of a WIDGET changes
 |      (e.g. it appears).
 |
 |      If no parameter is given self is used.
 |
 |  wait_window(self, window=None)
 |      Wait until a WIDGET is destroyed.
 |
 |      If no parameter is given self is used.
 |
 |  waitvar = wait_variable(self, name='PY_VAR')
 |
 |  winfo_atom(self, name, displayof=0)
 |      Return integer which represents atom NAME.
 |
 |  winfo_atomname(self, id, displayof=0)
 |      Return name of atom with identifier ID.
 |
 |  winfo_cells(self)
 |      Return number of cells in the colormap for this widget.
 |
 |  winfo_children(self)
 |      Return a list of all widgets which are children of this widget.
 |
 |  winfo_class(self)
 |      Return window class name of this widget.
 |
 |  winfo_colormapfull(self)
 |      Return True if at the last color request the colormap was full.
 |
 |  winfo_containing(self, rootX, rootY, displayof=0)
 |      Return the widget which is at the root coordinates ROOTX, ROOTY.
 |
 |  winfo_depth(self)
 |      Return the number of bits per pixel.
 |
 |  winfo_exists(self)
 |      Return true if this widget exists.
 |
 |  winfo_fpixels(self, number)
 |      Return the number of pixels for the given distance NUMBER
 |      (e.g. "3c") as float.
 |
 |  winfo_geometry(self)
 |      Return geometry string for this widget in the form "widthxheight+X+Y".
 |
 |  winfo_height(self)
 |      Return height of this widget.
 |
 |  winfo_id(self)
 |      Return identifier ID for this widget.
 |
 |  winfo_interps(self, displayof=0)
 |      Return the name of all Tcl interpreters for this display.
 |
 |  winfo_ismapped(self)
 |      Return true if this widget is mapped.
 |
 |  winfo_manager(self)
 |      Return the window manager name for this widget.
 |
 |  winfo_name(self)
 |      Return the name of this widget.
 |
 |  winfo_parent(self)
 |      Return the name of the parent of this widget.
 |
 |  winfo_pathname(self, id, displayof=0)
 |      Return the pathname of the widget given by ID.
 |
 |  winfo_pixels(self, number)
 |      Rounded integer value of winfo_fpixels.
 |
 |  winfo_pointerx(self)
 |      Return the x coordinate of the pointer on the root window.
 |
 |  winfo_pointerxy(self)
 |      Return a tuple of x and y coordinates of the pointer on the root window.
 |
 |  winfo_pointery(self)
 |      Return the y coordinate of the pointer on the root window.
 |
 |  winfo_reqheight(self)
 |      Return requested height of this widget.
 |
 |  winfo_reqwidth(self)
 |      Return requested width of this widget.
 |
 |  winfo_rgb(self, color)
 |      Return a tuple of integer RGB values in range(65536) for color in this widget.
 |
 |  winfo_rootx(self)
 |      Return x coordinate of upper left corner of this widget on the
 |      root window.
 |
 |  winfo_rooty(self)
 |      Return y coordinate of upper left corner of this widget on the
 |      root window.
 |
 |  winfo_screen(self)
 |      Return the screen name of this widget.
 |
 |  winfo_screencells(self)
 |      Return the number of the cells in the colormap of the screen
 |      of this widget.
 |
 |  winfo_screendepth(self)
 |      Return the number of bits per pixel of the root window of the
 |      screen of this widget.
 |
 |  winfo_screenheight(self)
 |      Return the number of pixels of the height of the screen of this widget
 |      in pixel.
 |
 |  winfo_screenmmheight(self)
 |      Return the number of pixels of the height of the screen of
 |      this widget in mm.
 |
 |  winfo_screenmmwidth(self)
 |      Return the number of pixels of the width of the screen of
 |      this widget in mm.
 |
 |  winfo_screenvisual(self)
 |      Return one of the strings directcolor, grayscale, pseudocolor,
 |      staticcolor, staticgray, or truecolor for the default
 |      colormodel of this screen.
 |
 |  winfo_screenwidth(self)
 |      Return the number of pixels of the width of the screen of
 |      this widget in pixel.
 |
 |  winfo_server(self)
 |      Return information of the X-Server of the screen of this widget in
 |      the form "XmajorRminor vendor vendorVersion".
 |
 |  winfo_toplevel(self)
 |      Return the toplevel widget of this widget.
 |
 |  winfo_viewable(self)
 |      Return true if the widget and all its higher ancestors are mapped.
 |
 |  winfo_visual(self)
 |      Return one of the strings directcolor, grayscale, pseudocolor,
 |      staticcolor, staticgray, or truecolor for the
 |      colormodel of this widget.
 |
 |  winfo_visualid(self)
 |      Return the X identifier for the visual for this widget.
 |
 |  winfo_visualsavailable(self, includeids=False)
 |      Return a list of all visuals available for the screen
 |      of this widget.
 |
 |      Each item in the list consists of a visual name (see winfo_visual), a
 |      depth and if includeids is true is given also the X identifier.
 |
 |  winfo_vrootheight(self)
 |      Return the height of the virtual root window associated with this
 |      widget in pixels. If there is no virtual root window return the
 |      height of the screen.
 |
 |  winfo_vrootwidth(self)
 |      Return the width of the virtual root window associated with this
 |      widget in pixel. If there is no virtual root window return the
 |      width of the screen.
 |
 |  winfo_vrootx(self)
 |      Return the x offset of the virtual root relative to the root
 |      window of the screen of this widget.
 |
 |  winfo_vrooty(self)
 |      Return the y offset of the virtual root relative to the root
 |      window of the screen of this widget.
 |
 |  winfo_width(self)
 |      Return the width of this widget.
 |
 |  winfo_x(self)
 |      Return the x coordinate of the upper left corner of this widget
 |      in the parent.
 |
 |  winfo_y(self)
 |      Return the y coordinate of the upper left corner of this widget
 |      in the parent.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from Misc:
 |
 |  __dict__
 |      dictionary for instance variables (if defined)
 |
 |  __weakref__
 |      list of weak references to the object (if defined)
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from Pack:
 |
 |  forget = pack_forget(self)
 |
 |  info = pack_info(self)
 |
 |  pack = pack_configure(self, cnf={}, **kw)
 |
 |  pack_configure(self, cnf={}, **kw)
 |      Pack a widget in the parent widget. Use as options:
 |      after=widget - pack it after you have packed widget
 |      anchor=NSEW (or subset) - position widget according to
 |                                given direction
 |      before=widget - pack it before you will pack widget
 |      expand=bool - expand widget if parent size grows
 |      fill=NONE or X or Y or BOTH - fill widget if widget grows
 |      in=master - use master to contain this widget
 |      in_=master - see 'in' option description
 |      ipadx=amount - add internal padding in x direction
 |      ipady=amount - add internal padding in y direction
 |      padx=amount - add padding in x direction
 |      pady=amount - add padding in y direction
 |      side=TOP or BOTTOM or LEFT or RIGHT -  where to add this widget.
 |
 |  pack_forget(self)
 |      Unmap this widget and do not use it for the packing order.
 |
 |  pack_info(self)
 |      Return information about the packing options
 |      for this widget.
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from Place:
 |
 |  place = place_configure(self, cnf={}, **kw)
 |
 |  place_configure(self, cnf={}, **kw)
 |      Place a widget in the parent widget. Use as options:
 |      in=master - master relative to which the widget is placed
 |      in_=master - see 'in' option description
 |      x=amount - locate anchor of this widget at position x of master
 |      y=amount - locate anchor of this widget at position y of master
 |      relx=amount - locate anchor of this widget between 0.0 and 1.0
 |                    relative to width of master (1.0 is right edge)
 |      rely=amount - locate anchor of this widget between 0.0 and 1.0
 |                    relative to height of master (1.0 is bottom edge)
 |      anchor=NSEW (or subset) - position anchor according to given direction
 |      width=amount - width of this widget in pixel
 |      height=amount - height of this widget in pixel
 |      relwidth=amount - width of this widget between 0.0 and 1.0
 |                        relative to width of master (1.0 is the same width
 |                        as the master)
 |      relheight=amount - height of this widget between 0.0 and 1.0
 |                         relative to height of master (1.0 is the same
 |                         height as the master)
 |      bordermode="inside" or "outside" - whether to take border width of
 |                                         master widget into account
 |
 |  place_forget(self)
 |      Unmap this widget.
 |
 |  place_info(self)
 |      Return information about the placing options
 |      for this widget.
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from Grid:
 |
 |  grid = grid_configure(self, cnf={}, **kw)
 |
 |  grid_configure(self, cnf={}, **kw)
 |      Position a widget in the parent widget in a grid. Use as options:
 |      column=number - use cell identified with given column (starting with 0)
 |      columnspan=number - this widget will span several columns
 |      in=master - use master to contain this widget
 |      in_=master - see 'in' option description
 |      ipadx=amount - add internal padding in x direction
 |      ipady=amount - add internal padding in y direction
 |      padx=amount - add padding in x direction
 |      pady=amount - add padding in y direction
 |      row=number - use cell identified with given row (starting with 0)
 |      rowspan=number - this widget will span several rows
 |      sticky=NSEW - if cell is larger on which sides will this
 |                    widget stick to the cell boundary
 |
 |  grid_forget(self)
 |      Unmap this widget.
 |
 |  grid_info(self)
 |      Return information about the options
 |      for positioning this widget in a grid.
 |
 |  grid_remove(self)
 |      Unmap this widget but remember the grid options.
 |
 |  location = grid_location(self, x, y)

空了,再补上按键的事件函数,今晚就写到这里。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年阿里云优惠券和代金券领取,活动整理服务器价格表

2024阿里云优惠活动&#xff0c;免费领取阿里云优惠代金券&#xff0c;阿里云优惠活动大全和云服务器优惠价格表&#xff0c;阿里云ECS服务器优惠价99元一年起&#xff0c;轻量服务器优惠价61元一年&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云优惠券免费领取、优惠活…

GCC 内联汇编

LINUX下的汇编入门 AT&T风格 汇编 和GCC风格汇编 汇编代码的调试 前面写了三篇,是自我摸索三篇,摸着石头过河,有些或许是错误的细节,不必在意! 今天我们直接用GCC编译C语言代码,且在C语言里面内嵌AT&T风格的汇编! 前三篇大家了解即可,我们重点放在内嵌汇编里,简单快…

Java设计模式-单例模式(2)

大家好&#xff0c;我是馆长&#xff01;从今天开始馆长开始对java设计模式的创建型模式中的单例、原型、工厂方法、抽象工厂、建造者的单例模式进行讲解和说明。 单例模式&#xff08;Singleton&#xff09; 定义 某个类只能生成一个实例&#xff0c;该类提供了一个全局访问…

houdini rnn

1.3.RNN模型_哔哩哔哩_bilibili 此公式来自于吴恩达P1.3视频 按公式推测rnn内部结构,如有错误&#xff0c;敬请指正

解决系统开发中的跨域问题:CORS、JSONP、Nginx

文章目录 一、概述1.问题场景2.浏览器的同源策略3.解决思路 二、一点准备工作1.创建前端工程12.创建后端工程3.创建前端工程24.跨域问题 三、方法1&#xff1a;使用CORS四、方法2&#xff1a;JSONP五、方法3&#xff1a;Nginx1.安装和启动&#xff08;windows&#xff09;2.使用…

初识VUE

文章目录 Vue是什么1.创建一个Vue实例2.插值表达式{{ }}3.Vue的响应式特性4.开发者工具的安装 Vue是什么 概念&#xff1a;Vue是一个用于构建用户界面的渐进式框架 ①构建用户界面&#xff1a;基于数据渲染出用户看到的界面 ②渐进式&#xff1a;循序渐进 ③ 框架&#xff1…

6.4.4释放音频

6.4.4释放音频 许多Flash动画里的音乐或歌曲非常好听&#xff0c;能不能在没有源文件的情况下把里面的声音文件取出来呢&#xff1f;利用Swf2VideoConverter2可以轻松做到这一点。 1&#xff0e;单击“添加”按钮&#xff0c;在弹出的下拉菜单中选择“添加文件”&#xff0c;…

金蝶云星空表单插件获取单据体数据

文章目录 金蝶云星空表单插件获取单据体数据 金蝶云星空表单插件获取单据体数据 使用标识报错 var thisEntry this.View.Model.DataObject["FEntity"] as DynamicObjectCollection;应该使用实体属性 var thisEntry this.View.Model.DataObject["BillEntry&q…

搜索经典题——填充 9*9矩阵

题目&#xff1a;给定一个九行九列矩阵&#xff0c;填充矩阵元素&#xff0c;要求&#xff1a; 1、每一行每一列&#xff0c;每个小九宫格&#xff08;图片画粗的地方就是&#xff09;不能包含相同元素 2、每一行&#xff0c;每一列&#xff0c;每个小九宫格均会完整出现1-9的数…

【Python爬虫】项目案例讲解,一步步教你爬取淘宝商品数据!

前言 随着互联网时代的到来&#xff0c;人们更加倾向于互联网购物&#xff0c;某宝又是电商行业的巨头&#xff0c;在某宝平台中有很多商家数据&#xff0c;今天带大家使用pythonselenium工具获取这些公开的商家数据 环境介绍&#xff1a; python 3.6pycharmseleniumcsvtime…

vue3 项目中 arguments 对象获取失败问题

问题 在 vue3 项目中 获取到的 arguments 对象与传入实参不符&#xff0c;打印出函数中的 arguments 对象显示如下&#xff1a; 原因 作者仔细回看代码才发现&#xff0c;自己一直用的是 vue3 的组合式写法&#xff0c;函数都是箭头函数&#xff0c;而箭头函数不存在 argumen…

cetos7搭建部署k8s 版本1.28

主机分配 内存最少是4G cpu个数最少两个 IP内存CPU主机名192.168.231.12044K1 192.168.231.12144K2192.168.231.12244K3 关闭防火墙 systemctl stop firewalled 关闭swap vim /etc/fstab 设置主机名称 hostnameset 安装docker 三个主机 初始化集群 在mas…

1432 - 走出迷宫的最少步数-广度优先搜索BFS

代码 #include<bits/stdc.h> using namespace std; char a[51][51]; int r,c; int fx[4]{0,0,1,-1}; int fy[4]{1,-1,0,0}; int tx,ty; struct Node{int x,y,step; }; int bfs(int x,int y){a[x][y]#;queue<Node> q;q.push({x,y,1});while(!q.empty()){Node Curre…

第五篇:其他窗口部件 QAbstractButton

QAbstractButton QAbstractButton 类是按钮部件的抽象基类&#xff0c;提供了按钮的通用功能。它的子类包括标准按钮 QPushButton、工具按钮 QToolButton、复选框 QCheckBox和单选按钮 QRadioButton 等。 QPushButton QPushButton 提供了创建交互按钮的基本功能。它可以包含…

css3+javaScript实现一个左右钟摆-摇晃的红灯笼网页特效

css3javaScript实现一个左右钟摆-摇晃的红灯笼网页特效&#xff01;前天逛博客时无意中看见了&#xff0c;别人的博客顶部有一个会左右钟摆的摇晃的红灯笼&#xff0c;产生了想法&#xff0c;我也想给自己做一个&#xff0c;但是网上找了很多方案&#xff0c;都没有实现。终于在…

论文阅读笔记AI篇 —— Transformer模型理论+实战 (三)

论文阅读笔记AI篇 —— Transformer模型理论实战 &#xff08;三&#xff09; 第三遍阅读&#xff08;精读&#xff09;3.1 Attention和Self-Attention的区别&#xff1f;3.2 Transformer是如何进行堆叠的&#xff1f;3.3 如何理解Positional Encoding&#xff1f;3.x 文章涉及…

【C++入门到精通】智能指针 shared_ptr 简介及C++模拟实现 [ C++入门 ]

阅读导航 引言一、简介二、成员函数三、使用示例四、C模拟实现五、std::shared_ptr的线程安全问题六、总结温馨提示 引言 在 C 动态内存管理中&#xff0c;除了 auto_ptr 和 unique_ptr 之外&#xff0c;还有一种智能指针 shared_ptr&#xff0c;它可以让多个指针共享同一个动…

钉钉副总裁李智勇:AI超级助理,提升大模型时代生产力

微软比尔盖茨此前曾预言:“五年内&#xff0c;每个人都将拥有AI私人助理Agent&#xff0c;Agent将颠覆软件行业 。” 近日以来&#xff0c;在GPT store正式上线点爆情绪之后&#xff0c;无论国内外&#xff0c;Agent都是创业圈里炙手可热的新贵。一场关于Agent创业比拼大赛&am…

S2-04 ESP-IDF开发 : IIC

IIC IIC(Inter&#xff0d;Integrated Circuit)总线是一种由NXP&#xff08;原PHILIPS&#xff09;公司开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备。多用于主机和从机在数据量不大且传输距离短的场合下的主从通信&#xff0c;在小数据量场合使用&#xff…

【Linux第二课-权限】操作系统、Linux用户、Linux权限、Linux文件类型、粘滞位

目录 操作系统shell外壳为什么有shell外壳shell外壳是什么shell外壳工作原理 Linux用户root用户与非root用户root用户与普通用户的切换普通用户 --> root用户root用户 --> 普通用户普通用户 --> 普通用户对一条指令提升为root权限进行执行 Linux权限Linux中的权限角色…