python±í¸ñ ÏÂÔØ±¾ÎÄ

17 grid.SetColSize(1, 125) 18 grid.SetRowSize(1, 100) 19

20 app = wx.PySimpleApp() 21 frame = TestFrame() 22 frame.Show() 23 app.MainLoop()

¸Ä±äµ¥Ôª¸ñµÄ³ß´ç

Ò»¸ö×÷ÓÃÓÚµ¥Ôª¸ñ³ß´çµÄ»ù±¾µÄ·½·¨ÊÇʹËü¿ç¶àÐлò¶àÁУ¬ÀàËÆÓÚHTMLµÄrowspanºÍcolspan¡£Òª´ïµ½ÕâÖÖЧ¹û£¬ÔÚwxPythonÖпÉÒÔʹÓ÷½·¨SetCellSize(row, col, num_rows, num_cols)¡£¸Ã·½·¨ÉèÖÃ×ø±êrow,col´¦µÄµ¥Ôª¸ñ¿çnum_rowsÐкÍnum_colsÁС£ÔÚͨ³£µÄÇéÐÎÏ£¬Ã¿¸öµ¥Ôª¸ñÕ¼¾ÝÒ»ÐкÍÒ»ÁУ¬ÒªÊ¹Óõ¥Ôª¸ñ²»Ö¹Õ¼¾ÝÒ»ÐлòÒ»ÁУ¬ÄãÐèÒª¸ø²ÎÊýnum_rows, num_cols´óÓÚ1µÄÖµ¡£²ÎÊýnum_rows, num_colsµÄֵСÓÚµÈÓÚ0»áµ¼Ö´íÎó¡£Èç¹ûÄãµÄÉèÖÃʹµÃÒ»¸öµ¥Ôª¸ñµÄ³ß´çÓëÁíÒ»¸öÔçÏÈÉùÃ÷Ϊ¿çÔ½µÄµ¥Ôª¸ñµÄ³ß´çÏàÖØµþʱ£¬ÔçÏȵÄÕâ¸öµ¥Ôª¸ñµÄ³ß´ç»áÖØÖÃΪռ¾ÝÒ»ÐкÍÒ»ÁС£ÄãÒ²Äܹ»Ê¹Ó÷½·¨SetCellOverflow(row, col, allow)·½·¨À´¹Ø±Õµ¥Ôª¸ñµÄ¿çÔ½ÏÔʾ¡£Ö»ÒªÔڸ÷½·¨ÖÐʹÓÃpass¾Í¿ÉÒÔ×èÖ¹µ¥Ôª¸ñ¿çÔ½ÁË£¬¼´Ê¹ÒѾ­Ê¹ÓÃÁËSetCellSize()·½·¨À´ÉèÖÃËüµÄ³ß´ç¡£

µ÷ÕûÍø¸ñµÄ³ß´çµÄÒ»¸ö¸ü¼ÓµäÐ͵ķ½·¨ÊÇ»ùÓÚÒ»ÐлòÒ»ÁÐÀ´´¦ÀíÆäÏñËØ³ß´ç¡£Äã¿ÉÒÔʹÓÃ

SetColSize(col, width)ºÍSetRowSize(row, height)·½·¨À´¸Ä±äÒ»ÁлòÒ»ÐеĿí¶È¡£µ±È»£¬Äã¿ÉÒÔʹÓÃGetColSize(col)»òGetRowSize(row)À´È·¶¨Ò»ÁлòÒ»Ðеĵ±Ç°

³ß´ç¡£ ÉèÖÃĬÈϳߴç

Äã¿ÉÒÔͨ¹ý¸Ä±äËùÓеÄÐкÍÁеÄĬÈϳߴçÀ´¸Ä±äÕû¸öÍø¸ñµÄ³ß´ç¡£·½·¨ÈçÏ£º

SetDefaultColSize(width, resizeExistingCols=False) SetDefaultRowSize(height, resizeExistingRows=False)

ÆäÖеĵÚÒ»¸ö²ÎÊýÊÇÒÔÏñËØÎªµ¥Î»µÄеÄĬÈϳߴ硣Èç¹ûµÚ¶þ¸ö²¼¶û²ÎÊýµÄÖµÊÇTrue£¬ÄÇôµ±Ç°´æÔÚµÄËùÓÐÐлòÁÐÁ¢¼´±»µ÷Õûµ½ÐµÄĬÈϳߴ硣Èç¹ûµÚ¶þ¸ö²ÎÊýµÄֵΪFalse£¬ÄÇôÕâ¸öеÄĬÈϳߴç½ö±»Ó¦ÓÃÓÚÐÂÌí¼ÓµÄÐлòÁС£Í¨³££¬ÉèÖÃеÄĬÈÏÖµÊÇÔÚ³õʼ»¯µÄ¿ªÍ·£¬ÉõÖÁÊÇÔÚµ÷ÓÃCreateGrid()»òSetTable()֮ǰ¡£Äã¿ÉÒÔʹÓÃGetDefaultColSize()ºÍGetDefaultRowSize()·½·¨À´µÃµ½µ±Ç°µÄĬÈϳߴ硣

ÉèÖÃĬÈϳߴçÓëΪµ¥¸öÐлòÁÐÉèÖóߴçÏà±È£¬ÓÐÒ»¸öÐÔÄÜÉϵÄÎÊÌâ¡£¶ÔÓڴ洢ĬÈÏÖµ£¬

wxPythonÖ»ÐèÒª´æ´¢ÕâÁ½¸öÕûÊý¡£Èç¹ûÄ㽫µ¥¸öÐлòÁÐÉèÖõ½Ò»¸ö·ÇĬÈϵijߴ磬

wxPythonÇл»²¢½«Ã¿¸öÐлòÁÐµÄ³ß´ç´æ´¢µ½Ò»¸öÊý×éÖС£Èç¹ûÄãµÄ±íÊǷdz£µÄ´óµÄ»°£¬Õâ

½«Ã÷ÏÔµØÕ¼ÓúܶàµÄÄڴ棬Òò´ËÕâÊÇÐèҪעÒâµÄ¡£

ÓÐʱ£¬ÄãÏëΪһÐлòÒ»ÁÐÉèÖÃÒ»¸ö×îСµÄ³ß´ç£¬ÒԱ㲻Óõ£ÐijÌÐòµÄij¸ö·½·¨µÄµ÷ÓûòÓû§¶ÔÍø¸ñÏßµÄÍ϶¯»áÖÂʹ¸ÃÐлòÁбäµÃ¸üС¡£

ÔÚwxPythonÖУ¬Äã¿ÉÒÔ¶ÔÒ»¸öÍø¸ñµÄ¿í¶ÈÉèÖÃ×îСֵ»òΪµ¥¶ÀµÄÐкÍÁзֱðÉèÖÃ×îС³ß´çÖµ¡£Òª¸Ä±äÕû¸öÍø¸ñµÄ×îС³ß´ç£¬¿ÉÒÔʹÓ÷½·¨

SetColMinimalAcceptableWidth(width)»ò

SetRowMinimalAcceptableHeight(height)¡£ÆäÖеIJÎÊýÊÇÕë¶ÔËùÓÐÐлòÁеÄ×îСµÄÏñËØ³ß´ç¡£ÒªÒ»ÐÐÒ»ÐеÄÉèÖÃ×îС³ß´ç£¬Ê¹Ó÷½·¨SetColMinimalWidth(col, width)»òSetRowMinimalHeight(row, height)¡£ÆäÖеÚÒ»¸ö²ÎÊýÊÇÒªµ÷Õû³ß´çµÄÏîÄ¿µÄË÷Òý£¬

µÚ¶þ¸ö²ÎÊýÊÇÒÔÏñËØÎªµ¥Î»µÄеijߴ硣µ¥¸öµÄÐеÄ×îС³ß´ç±ØÐë±È×îСµÄÍø¸ñ³ß´ç´ó£¬Èç¹ûµ¥¸öµÄÐеÄ×îС³ß´ç±»ÉèÖÃÁ˵ϰ¡£ÉÏÃæµÄset*·½·¨¶¼ÓÐÒ»¸öÏàÓ¦µÄget*·½·¨£º * GetColMinimalAcceptableWidth() * GetRowMinimalAcceptableHeight() * GetColMinimalWidth(col) * GetRowMinimalHeight(row) ÉèÖñêÇ©µÄ³ß´ç

Íø¸ñÉϵıêÇ©ÇøÓòÓÐÒ»Ì×µ¥¶ÀµÄµ÷Õû³ß´çµÄº¯Êý¡£ÔÚÕâÖÖÇé¿öÏ£¬ÄãÊÇÔÚÉèÖÃÐбêÇ©µÄ¿í¶ÈºÍÁбêÇ©µÄ¸ß¶È£¬Òâ˼¾ÍÊÇ£¬°ÑÁбêÇ©×÷Ϊһ¸öÌØÊâµÄÐУ¬°ÑÐбêÇ©×÷Ϊһ¸öÌØÊâµÄÁС£

set*·½·¨ÓÐSetRowLabelSize(width)£¬ËüÉèÖÃÐбêÇ©µÄ¿í¶È£¬

SetColLabelSize(height)£¬ËüÉèÖÃÁбêÇ©µÄ¸ß¶È¡£Äã¿ÉÒÔʹÓÃÏàÓ¦µÄGetRowLabelSize()ºÍGetColLabelSize()·½·¨À´µÃµ½ÕâЩ³ß´ç¡£

ͨ³££¬Äã²»»á¹ØÐĵ¥Ôª¸ñµÄʵ¼ÊµÄÏñËØ³ß´ç£¬ÄãÏ£ÍûËüÃDZ»×Ô¶¯µ÷Õûµ½×ã¹»ÏÔʾÄãµÄÊý¾ÝµÄ´óС¡£ÔÚwxPythonÖУ¬Äã¿ÉÒÔͨ¹ýʹÓÃAutoSize()·½·¨À´×Ô¶¯µ÷ÕûÕû¸öÍø¸ñµÄ³ß´ç¡£¸Ã·½·¨Ê¹µÃËùÓеÄÐкÍÁеijߴçÓëËüÃÇÖеÄÄÚÈÝÏàÊÊÓ¦¡£ÄãÒ²¿ÉÒÔ¶Ôµ¥¸öµÄÐлòÁÐʹÓÃ

AutoSizeColumn(col, setAsMin=True)ºÍAutoSizeRow(row, setAsMin=True)À´Ê¹ËüÃǵijߴç×Ô¶¯ÓëÆäÖеÄÄÚÈÝÏàÊÊÓ¦¡£Èç¹û²ÎÊýsetAsMinΪTrue£¬ÄÇôеÄ×Ô¶¯µÄ³ß´ç½«×÷Ϊ¸ÃÐлòÁеÄ×îС³ß´ç¡£AutoSizeColumns(setAsMin=True)ºÍAutoSizeRows(setAsMin=True)×Ô¶¯µ÷ÕûËùÓеÄÁкÍÐеijߴ硣

ÄãÒ²¿ÉÒÔÈÃÓû§Í¨¹ýÍ϶¯±êÇ©µ¥Ôª¸ñµÄ±ß¿òÀ´µ÷ÕûÐеijߴ硣ÓÃÓÚʵÏÖÕâÖÖÐÐΪµÄÖ÷ÒªµÄ·½·¨ÈçÏ£º

? ? ?

EnableDragColSize(enable=True)£º¿ØÖÆÓû§ÄÜ·ñͨ¹ýÍ϶¯±ß¿òÀ´¸Ä±ä±êÇ©µÄ

¿í¶È

EnableDragRowSize(enable=True)£º¿ØÖÆÓû§ÄÜ·ñͨ¹ýÍ϶¯±ß¿òÀ´¸Ä±ä±êÇ©µÄ

¸ß¶È

EnableDragGridSize(enable=True)£º¿ØÖÆÓû§ÄÜ·ñͨ¹ýÍ϶¯±ß¿òÒ»´ÎÐԸıä

±êÇ©µÄ¿í¶ÈºÍ¸ß¶È

ÏÂÃæµÄ·½·¨ÊÇÉÏÃæ·½·¨µÄÏàÓ¦µÄʹÍ϶¯ÎÞЧµÄ¼ò±ãµÄ·½·¨£º

? ?

DisableDragColSize() DisableDragRowSize()

?

DisableDragGridSize()

ÏÂÃæµÄÒ»Ì×·½·¨ÓÃÒÔÅжÏÄÜ·ñÍ϶¯£º

? ? ?

CanDragColSize() CanDragRowSize() CanDragGridSize()

ÈçºÎ¹ÜÀíÄÄЩµ¥Ôª¸ñ´¦ÓÚÑ¡Ôñ»ò¿É¼û״̬£¿

ÔÚÍø¸ñ¿Ø¼þÖУ¬Óû§¿ÉÒÔÑ¡ÔñÒ»¸ö»ò¶à¸öµ¥Ôª¸ñ¡£ÔÚwxPythonÖУ¬Óм¸¸ö·½·¨ÈÃÄãÄܹ»´¦Àí¶àÑ¡µÄÇé¿ö¡£

ÔÚÏÂÃæµÄ¼¸¸öÇé¿öÖУ¬Íø¸ñ¿Ø¼þÖеı»Ñ¡ÔñµÄÏî¿ÉÒÔÊÇ0¸ö»ò¶à¸ö£º

? ? ? ?

µ¥¸öµÄ´¦ÓÚÑ¡Ôñ״̬µÄµ¥Ôª¸ñ ±»Ñ¡ÔñµÄÐÐ ±»Ñ¡ÔñµÄÐÐ

±»Ñ¡ÔñµÄÓɵ¥Ôª¸ñ×é³ÉµÄ¿é

Óû§¿ÉÒÔͨ¹ýÃüÁî»òÔÚµ¥Ôª¸ñ¡¢ÐлòÁбêÇ©ÉϵÄÇû÷£¬»òÍ϶¯Êó±êÀ´Ñ¡Ôñ¶à×éµ¥Ôª¸ñ¡£ÒªÈ·¶¨Íø¸ñÖÐÊÇ·ñÓб»Ñ¡ÔñµÄµ¥Ôª¸ñ£¬¿ÉÄÜʹÓ÷½·¨IsSelection()£¬Èç¹ûÓÐÔò¸Ã·½·¨·µ»ØTrue¡£Äã¿ÉÒÔͨ¹ýʹÓÃIsInSelection(row, col)·½·¨À´²éѯÈÎÒâÒ»¸öÌØ¶¨µÄµ¥Ôª¸ñµ±Ç°ÊÇ·ñ´¦ÓÚÑ¡Ôñ״̬ÖУ¬Èç¹ûÊÇÔò·µ»ØTrue¡£

±í14.2ÏÔʾÁ˼¸¸ö·½·¨£¬ËüÃǵõ½µ±Ç°±»Ñ¡ÔñµÄÄÚÈݲ¢·µ»Ø¸øÄã¡£ ±í14.2 ·µ»Øµ±Ç°±»Ñ¡ÔñµÄµ¥Ôª¸ñµÄ¼¯µÄ·½·¨

GetSelectedCells() ·µ»Ø°üº¬Ò»Ð©µ¥¸öµÄ´¦ÓÚÑ¡Ôñ״̬µÄµ¥Ôª¸ñµÄÒ»¸öPythonÁÐ±í¡£ÔÚÕâ¸öÁбíÖеÄÿ¸öÏîÄ¿¶¼ÊÇÒ»¸ö(row, col)Ôª×é¡£ ·µ»ØÓÉͨ¹ýÇû÷ÁеıêÇ©¶ø±»Ñ¡ÔñµÄÁеÄË÷Òý×é³ÉµÄÒ»¸öPythonÁÐ±í¡£ ·µ»ØÓÉͨ¹ýÇû÷ÐеıêÇ©¶ø±»Ñ¡ÔñµÄÁеÄË÷Òý×é³ÉµÄÒ»¸öPythonÁÐ±í¡£ ·µ»Ø°üº¬Ò»Ð©±»Ñ¡ÔñµÄÓɵ¥Ôª¸ñ×é³ÉµÄ¿éµÄÒ»¸öPythonÁÐ±í¡£ÆäÖеÄÿ¸öÔªËØ¶¼Ê±Ò»¸ö(row, col)Ôª×飬(row, col)Ôª×éÊÇÿ¿éµÄ×óÉϽǡ£ ·µ»Ø°üº¬Ò»Ð©±»Ñ¡ÔñµÄÓɵ¥Ôª¸ñ×é³ÉµÄ¿éµÄÒ»¸öPythonÁÐ±í¡£ÆäÖеÄÿ¸öÔªËØ¶¼Ê±GetSelectedCols() GetSelectedRows() GetSelectionBlockTopLeft() GetSelectionBlockBottomRight() Ò»¸ö(row, col)Ôª×飬(row, col)Ôª×éÊÇÿ¿éµÄÓÒϽǡ£ Õâ¶ùÒ²Óм¸¸öÓÃÓÚÉèÖûòÐÞ¸ÄÑ¡Ôñ״̬µÄ·½·¨¡£µÚÒ»¸öÊÇClearSelection()£¬ËüÇå³ýµ±Óеı»Ñ¡×´Ì¬¡£Ôڸ÷½·¨±»µ÷ÓÃÒÔºó£¬IsSelection()·µ»ØFalse¡£ÄãÒ²¿ÉÒÔ×öÒ»¸öÏà·´µÄ¶¯×÷£¬¾ÍÊÇʹÓÃSelectAll()Ñ¡ÔñËùÓеĵ¥Ôª¸ñ¡£ÄãÒ²¿ÉÒÔʹÓ÷½·¨SelectCol(col, addToSelected=False)ºÍ

SelectRow(row, addToSelected=False)À´Ñ¡ÔñÕûÁлòÕûÐС£ÔÚÕâÁ½¸ö·½·¨ÖУ¬µÚÒ»¸ö²ÎÊýÊÇҪѡÔñµÄÐлòÁеÄË÷Òý¡£Èç¹û²ÎÊýaddToSelectedΪTrue£¬ËùÓÐÁíÍⱻѡÔñµÄµ¥Ôª¸ñÈÔÈ»´¦ÓÚ±»Ñ¡×´Ì¬£¬²¢ÇÒ¸ÃÐлòÁÐÒ²±»Ôö¼Óµ½ÒÑÓеÄÑ¡ÔñÖС£Èç¹û²ÎÊý

addToSelectedΪFalse£¬ÄÇôËùÓÐÁíÍⱻѡÔñµÄµ¥Ôª¸ñ½â³ý±»Ñ¡×´Ì¬£¬¶øÐµÄÐлòÁдú

ÌæËüÃÇ×÷Ϊ±»Ñ¡Ôñ¶ÔÏó¡£Í¬ÑùµØ£¬ÄãÒ²¿ÉÒÔʹÓ÷½·¨

SelectBlock(topRow, leftCol, bottomRow, rightCol, addToSelected=False)À´Ôö¼ÓÒ»¸ö¶ÔÒ»¿é·¶Î§µÄÑ¡Ôñ£¬Ç°ÃæËĸö²ÎÊýÊÇËùÑ¡µÄ·¶Î§µÄ¶Ô½Ç£¬addToSelected

²ÎÊýµÄ×÷ÓÃͬǰһÑù¡£

ÄãÒ²¿ÉÒÔʹÓÃIsVisible(row, col, wholeCellVisible=True)·½·¨À´µÃµ½Ò»¸öÌØ¶¨µÄµ¥Ôª¸ñÔÚµ±Ç°µÄÏÔʾÖÐÊÇ·ñÊǿɼûµÄ¡£Èç¹û¸Ãµ¥Ôª¸ñµ±Ç°ÏÔʾÔÚÆÁÄ»ÉÏÁË£¨Ïà¶ÔÓÚ´¦ÔÚÒ»¸ö¿É¹ö¶¯µÄÈÝÆ÷µÄ²»¿É¼û²¿·Ö¶øÑÔ£©£¬ÄÇô¸Ã·½·¨·µ»ØTrue¡£Èç¹û²ÎÊýwholeCellVisibleΪTrue£¬ÄÇôµ¥Ôª¸ñÒªÕû¸ö¶¼ÊǿɼûµÄ£¬·½·¨²Å·µ»ØTrue£¬Èç¹û²ÎÊýwholeCellVisibleΪFalse£¬Ôòµ¥Ôª¸ñ²¿·Ö¿É¼û£¬·½·¨¾Í»á·µ»ØTrue¡£·½·¨MakeCellVisible(row, col)ͨ¹ý¹ö¶¯È·±£ÁËÖ¸¶¨Î»Öõĵ¥Ôª¸ñÊǿɼûµÄ¡£

³ýÁ˱»Ñ¡µÄµ¥Ôª¸ñÍâ£¬Íø¸ñ¿Ø¼þÒ²ÓÐÒ»¸ö¹â±êµ¥Ôª¸ñ£¬Ëü´ú±í»ñµÃµ±Ç°Óû§½¹µãµÄµ¥Ôª¸ñ¡£Äã¿ÉÒÔʹÓÃGetGridCursorCol()ºÍGetGridCursorRow()·½·¨À´È·¶¨¹â±êµÄµ±Ç°Î»Öã¬ÕâÁ½¸ö·½·¨·µ»ØÕûÊýµÄË÷ÒýÖµ¡£Äã¿ÉÒÔʹÓÃSetGridCursor(row, col)·½·¨À´ÏÔʽµØ·ÅÖÃÒ»¸ö¹â±ê¡£¸Ã·½·¨³ýÁËÒÆµ½¹â±êÍ⣬Ëü»¹ÒþʽµØ¶ÔеĹâ±êλÖõ÷ÓÃÁË

MakeCellVisible¡£

±í14.3˵Ã÷ÁËÔÚÍø¸ñ×ø±êºÍÏÔʾÆ÷×ø±êÖ®¼ä×÷ת»»µÄÍø¸ñ¿Ø¼þµÄ·½·¨¡£ ±í14.3 ×ø±êת»»·½·¨

²ÎÊýtopLeft, bottomRightÊǵ¥Ôª¸ñµÄ×ø±ê£¨(row, col)Ôª×éµÄÐÎʽ£©¡£·µ»ØÖµÊÇÒ»¸öBlockToDeviceRect(topLeft, bottomRight) wx.Rect£¬wx.RectʹÓøø¶¨µÄÍø¸ñ×ø±êËù°üΧµÄ¾ØÐεÄÉ豸ÏñËØ×ø±ê¡£ ·µ»ØÒ»¸öwx.Rect£¬wx.RectµÄ×ø±êÊÇÏà¶ÔÍø¸ñ×ø±ê(row, col)´¦µÄµ¥Ôª¸ñµÄÈÝÆ÷µÄ×ø±ê¡£ CellToRect(row, col)