Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¿ìËÙѧ»áPython tkinterµÄPack²¼¾Ö
 
×÷Õߣº Àî¸Õ
  23028  次浏览      28
 2019-12-12
 
±à¼­ÍƼö:
±¾ÎÄʹÓüòµ¥µÄʾÀýÏêϸ½éÉÜÁËPython tkinter±à³ÌµÄpack²¼¾Ö£¬½«³ÌÐò½çÃæ½øÐзֽ⣬ϣÍû¶Ô´ó¼ÒÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖÚºÅ- ·è¿ñÈí¼þÀî¸Õ £¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­£¬ÍƼö¡£

GUI±à³Ì¾ÍÏ൱ÓÚСº¢×Ó´î»ýľ£¬Ã¿¸ö»ýľ¿éÓ¦¸Ã·ÅÔÚÄÄÀÿ¸ö»ýľ¿éÏÔʾΪ¶à´ó£¿Ò²¾ÍÊÇÕâЩ´óСºÍλÖö¼ÐèÒª½øÐйÜÀí£¬¶ø²¼¾Ö¹ÜÀíÆ÷ÕýÊǸºÔð¹ÜÀí¸÷×é¼þµÄ´óСºÍλÖ㬴ËÍ⣬µ±Óû§µ÷ÕûÁË´°¿ÚµÄ´óС֮ºó£¬²¼¾Ö¹ÜÀíÆ÷»¹»á×Ô¶¯µ÷Õû´°¿ÚÖи÷×é¼þµÄ´óСºÍλÖá£

Èç¹ûʹÓÃPack²¼¾Ö£¬Òâζ×ŵ±³ÌÐòÏòÈÝÆ÷ÖÐÌí¼Ó×é¼þʱ£¬ÕâЩ×é¼þ»áÒÀ´ÎÏòºóÅÅÁУ¬ÅÅÁз½Ïò¼È¿ÉÊÇˮƽÅÅÁУ¬Ò²¿ÉÊÇ´¹Ö±ÅÅÁС£

ÏÂÃæ³ÌÐò¼òµ¥Ê¾·¶ÁËPack²¼¾ÖµÄÓ÷¨£¬¸Ã³ÌÐòÏò´°¿ÚÖÐÌí¼ÓÁË3¸öLabel×é¼þ£¬³ÌÐòÈçÏ¡£

# Python 2.xʹÓÃÕâÐÐ
#from Tkinter import *
# Python 3.xʹÓÃÕâÐÐ
from tkinter import *
# ´´½¨´°¿Ú²¢ÉèÖô°¿Ú±êÌâ
root = Tk()
# ÉèÖô°¿Ú±êÌâ
root.title('Pack²¼¾Ö')
for i in range(3):
lab = Label(root, text="µÚ%d¸öLabel" % (i + 1), bg='#eeeeee')
# µ÷ÓÃpack½øÐв¼¾Ö
lab.pack()
# Æô¶¯Ö÷´°¿ÚµÄÏûϢѭ»·
root.mainloop()

ÉÏÃæ³ÌÐò´´½¨ÁËÒ»¸ö´°¿Ú£¬È»ºóʹÓÃÑ­»·´´½¨ÁË3¸öLabel£¬²¢¶Ô3¸öLabelʹÓÃÁËpack()·½·¨½øÐÐĬÈϵÄPack²¼¾Ö¡£ÔËÐиóÌÐò£¬¿É¿´µ½Èçͼ1ËùʾµÄ½çÃæ¡£

ͼ1ʹÓõÄÊÇĬÈϵÄPack²¼¾Ö£¬Êµ¼ÊÉϳÌÐòÔÚµ÷ÓÃpack()·½·¨Ê±Í¬Ñù¿É´«Èë¶à¸öÑ¡ÏÀýÈçͨ¹ýhelp(tkinter.Label.pack)ÃüÁîÀ´²é¿´pack()·½·¨Ö§³ÖµÄÑ¡Ïî¿É¿´µ½ÈçÏÂÊä³ö¡£

>>> help(tkinter.Label.pack)
Help on function pack_configure in module tkinter:
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()·½·¨Í¨³£¿ÉÖ§³ÖÈçÏÂÑ¡Ï

anchor£ºµ±¿ÉÓÿռä´óÓÚ×é¼þµÄÐèÇóµÄ´óСʱ£¬¸ÃÑ¡Ïî¾ö¶¨×é¼þ±»·ÅÖÃÓÚÈÝÆ÷µÄºÎ´¦£¬¸ÃÑ¡ÏîÖ§³ÖN£¨±±´ú±íÉÏ£©¡¢E£¨¶«´ú±íÓÒ£©¡¢S£¨ÄÏ´ú±íÏ£©¡¢W£¨Î÷´ú±í×󣩡¢NW£¨Î÷±±´ú±í×óÉÏ£©¡¢NE£¨¶«±±´ú±íÓÒÉÏ£©¡¢SW£¨Î÷ÄÏ´ú±í×óÏ£©¡¢SE£¨¶«ÄÏ´ú±íÓÒÏ£©¡¢CENTER£¨ÖС¢Ä¬ÈÏֵΪCENTER£©ÕâЩֵ¡£

expand£º¸ÃboolÖµÖ¸¶¨µ±¸¸ÈÝÆ÷Ôö´óʱÊÇ·ñÀ­Éì¸Ã×é¼þ¡£

fill£ºÉèÖÃ×é¼þÊÇ·ñÑØË®Æ½»ò´¹Ö±·½ÏòÌî³ä£¬¸ÃÑ¡ÏîÖ§³ÖNONE¡¢X¡¢Y»òBOTHËĸöÖµ£¬ÆäÖÐNONE±íʾ²»Ìî³ä£¬BOTH±íÊ¾ÑØ×ÅÁ½¸ö·½ÏòÌî³ä¡£

ipadx£ºÖ¸¶¨¸Ã×é¼þÔÚx·½Ïò£¨Ë®Æ½£©ÉϵÄÄÚ²¿Áô°×£¨padding£©¡£

ipady£ºÖ¸¶¨¸Ã×é¼þÔÚy·½Ïò£¨Ë®Æ½£©ÉϵÄÄÚ²¿Áô°×£¨padding£©¡£

padx£ºÖ¸¶¨¸Ã×é¼þÔÚx·½Ïò£¨Ë®Æ½£©ÓëÆäËû×é¼þµÄ¼ä¾à¡£

pady£ºÖ¸¶¨¸Ã×é¼þÔÚy·½Ïò£¨Ë®Æ½£©ÓëÆäËû×é¼þµÄ¼ä¾à¡£

side£ºÉèÖøÃ×é¼þµÄÌí¼ÓλÖ㬿ÉÉèÖÃΪTOP¡¢BOTTOM¡¢LEFT»òRIGHTÕâËĸöÖµµÄÆäÖÐÖ®Ò»¡£

µ±³ÌÐòÇ°Ãæ±È½Ï¸´ÔÓʱ£¬³ÌÐò¾ÍÐèҪʹÓöà¸öÈÝÆ÷£¨Frame£©½øÐзֿª²¼¾Ö£¬È»ºóÔÙ½«FrameÌí¼Óµ½´°¿ÚÖС£ÀýÈçÈçϳÌÐò¡£

# Python 2.xʹÓÃÕâÐÐ
#from Tkinter import *
# Python 3.xʹÓÃÕâÐÐ
from tkinter import *
class App:
def __init__(self, master):
self.master = master
self.initWidgets()
def initWidgets(self):
# ´´½¨µÚÒ»¸öÈÝÆ÷
fm1 = Frame(self.master)
# ¸ÃÈÝÆ÷·ÅÔÚ×ó±ßÅÅÁÐ
fm1.pack(side=LEFT, fill=BOTH, expand=YES)
# Ïòfm1ÖÐÌí¼Ó3¸ö°´Å¥
# ÉèÖð´Å¥´Ó¶¥²¿¿ªÊ¼ÅÅÁУ¬ÇÒ°´Å¥Ö»ÄÜÔÚ´¹Ö±£¨X£©·½ÏòÌî³ä
Button(fm1, text='µÚÒ»¸ö').pack(side=TOP, fill=X, expand=YES)
Button(fm1, text='µÚ¶þ¸ö').pack(side=TOP, fill=X, expand=YES)
Button(fm1, text='µÚÈý¸ö').pack(side=TOP, fill=X, expand=YES)
# ´´½¨µÚ¶þ¸öÈÝÆ÷
fm2 = Frame(self.master)
# ¸ÃÈÝÆ÷·ÅÔÚ×ó±ßÅÅÁУ¬¾Í»á°¤×Åfm1
fm2.pack(side=LEFT, padx=10, expand=YES)
# Ïòfm2ÖÐÌí¼Ó3¸ö°´Å¥
# ÉèÖð´Å¥´ÓÓұ߿ªÊ¼ÅÅÁÐ
Button(fm2, text='µÚÒ»¸ö').pack(side=RIGHT, fill=Y, expand=YES)
Button(fm2, text='µÚ¶þ¸ö').pack(side=RIGHT, fill=Y, expand=YES)
Button(fm2, text='µÚÈý¸ö').pack(side=RIGHT, fill=Y, expand=YES)
# ´´½¨µÚÈý¸öÈÝÆ÷
fm3 = Frame(self.master)
# ¸ÃÈÝÆ÷·ÅÔÚÓÒ±ßÅÅÁУ¬¾Í»á°¤×Åfm1
fm3.pack(side=RIGHT, padx=10, fill=BOTH, expand=YES)
# Ïòfm3ÖÐÌí¼Ó3¸ö°´Å¥
# ÉèÖð´Å¥´Óµ×²¿¿ªÊ¼ÅÅÁУ¬ÇÒ°´Å¥Ö»ÄÜÔÚ´¹Ö±£¨Y£©·½ÏòÌî³ä
Button(fm3, text='µÚÒ»¸ö').pack(side=BOTTOM, fill=Y, expand=YES)
Button(fm3, text='µÚ¶þ¸ö').pack(side=BOTTOM, fill=Y, expand=YES)
Button(fm3, text='µÚÈý¸ö').pack(side=BOTTOM, fill=Y, expand=YES)
root = Tk()
root.title("Pack²¼¾Ö")
display = App(root)
root.mainloop()

ÉÏÃæ³ÌÐò´´½¨ÁË3¸öFrameÈÝÆ÷£¬ÆäÖеÚÒ»¸öFrameÈÝÆ÷ÄÚ°üº¬ÁË3¸ö´Ó¶¥²¿£¨TOP£©¿ªÊ¼ÅÅÁеİ´Å¥£¬ÕâÒâζ×ÅÕâ3¸ö°´Å¥»á´ÓÉϵ½ÏÂÒÀ´ÎÅÅÁУ¬ÇÒÕâ3¸ö°´Å¥ÄÜÔÚˮƽ£¨X£©·½ÏòÉÏÌî³ä£»µÚ¶þ¸öFrameÈÝÆ÷ÄÚ°üº¬ÁË3¸ö´ÓÓұߣ¨RIGHT£©¿ªÊ¼ÅÅÁеİ´Å¥£¬ÕâÒâζ×ÅÕâ3¸ö°´Å¥»á´ÓÓÒÏò×óÒÀ´ÎÅÅÁУ»µÚÈý¸öFrameÈÝÆ÷ÄÚ°üº¬3¸ö´Óµ×²¿£¨BOTTOM£©¿ªÊ¼ÅÅÁеİ´Å¥£¬ÔòÒâζ×ÅÕâ3¸ö°´Å¥»á´Óϵ½ÉÏÒÀ´ÎÅÅÁУ¬ÇÒÕâ3¸ö°´Å¥ÄÜÔÚ´¹Ö±£¨Y£©·½ÏòÉÏÌî³ä¡£

ÔËÐÐÉÏÃæ³ÌÐò£¬¿´µ½Èçͼ2ËùʾµÄ½çÃæ¡£

ͼ2ΪÔËÐÐЧ¹ûÌí¼ÓÁË3¸ö¿ò£¬·Ö±ð´ú±ífm1¡¢fm2¡¢fm3£¨Êµ¼ÊÉÏÈÝÆ÷ÊÇ¿´²»µ½µÄ£©£¬´Ëʱ¿ÉÒÔ¿´µ½fm1ÄÚµÄÈý¸ö°´Å¥´ÓÉϵ½ÏÂÅÅÁУ¬²¢ÇÒ¿ÉÒÔÔÚˮƽ·½ÏòÌî³ä£»fm3ÄÚÈý¸ö°´Å¥´Óϵ½ÉÏÅÅÁУ¬²¢¿ÉÒÔÔÚ´¹Ö±·½ÏòÌî³ä¡£

¿ÉÄÜÓжÁÕß»áÓÐÒÉÎÊ£ºfm2ÄÚµÄÈý¸ö°´Å¥Ò²¶¼ÉèÖÃÁËfill=Y, expand=YES£¬Õâ˵Ã÷ËüÃÇÒ²Ó¦¸ÃÄÜÔÚ´¹Ö±·½ÏòÌî³ä°¡£¬ÎªÉ¶¿´²»µ½ÄØ£¿×Ðϸ¿´fm2.pack(side=LEFT, padx=10, expand=YES)ÕâÐдúÂ룬ÕâÐдúÂë˵Ã÷fm2±¾Éí²»ÔÚÈκη½ÏòÉÏÌî³ä£¬Òò´Ëfm2ÄÚµÄÈý¸ö°´Å¥¶¼²»ÄÜÌî³ä¡£

Èç¹ûÏ£Íû¿´µ½fm2ÄÚÈý¸ö°´Å¥Ò²ÄÜÔÚ´¹Ö±·½ÏòÌî³ä£¬¿É½«fm2µÄpack()·½·¨¸ÄΪÈçÏ´úÂë¡£

fm2.pack(side=LEFT, padx=10, fill=BOTH, expand=YES)

ͨ¹ýÉÏÃæ²»ÄÑ·¢ÏÖ£¬Pack²¼¾ÖÆäʵ»¹ÊǷdz£Áé»îµÄ£¬ËüÍêÈ«¿ÉÒÔʵÏֺܸ´ÔÓµÄÓû§½çÃæ£¬ÒòΪÕâÀïÓÐÒ»¸ö½çÃæ·Ö½âµÄ³£Ê¶ÐèҪ˵Ã÷£ºÎÞÂÛ¿´ÉÏÈ¥¶àô¸´ÔÓ¡¢¹Å¹ÖµÄ½çÃæ£¬Æäʵ´ó¶à¿É·Ö½âΪˮƽÅÅÁкʹ¹Ö±ÅÅÁУ¬¶øPack²¼¾Ö¼´¿ÉʵÏÖˮƽÅÅÁУ¬Ò²¿ÉÊÇʵÏÖ´¹Ö±ÅÅÁУ¬È»ºóÔÙͨ¹ý¶à¸öÈÝÆ÷½øÐÐ×éºÏ£¬ÕâÑù¾Í¿ÉÒÔ¿ª·¢³ö¸ü¸´ÔӵĽçÃæÁË¡£

¶ÔÓÚ´òËãʹÓÃPack²¼¾ÖµÄ¿ª·¢ÕßÀ´Ëµ£¬Ê×ÏÈÒª×öµÄÊÂÇéÊǽ«³ÌÐò½çÃæ½øÐзֽ⣬·Ö½â³ÉˮƽÅÅÁеÄÈÝÆ÷ºÍ´¹Ö±ÅÅÁеÄÈÝÆ÷¡ª¡ªÓÐʱºòÉõÖÁÒªÈÝÆ÷ǶÌ×ÈÝÆ÷£¬È»ºóʹÓöà¸öPack²¼¾ÖµÄÈÝÆ÷½«ËüÃÇ×éºÏÔÚÒ»Æð¡£

 

 
   
23028 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ