亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sheet.py

?? Wxpython Implemented on Windows CE, Source code
?? PY
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
# sheet.py
# CSheet - A wxPython spreadsheet class.
# This is free software.  Feel free to adapt it as you like.
# Author: Mark F. Russo (russomf@hotmail.com) 2002/01/31
#---------------------------------------------------------------------------
# 12/11/2003 - Jeff Grimmett (grimmtooth@softhome.net)
#
# o 2.5 compatability update.
# o Untested.
#

import  string
import  wx
import  wx.grid

#---------------------------------------------------------------------------
class CTextCellEditor(wx.TextCtrl):
    """ Custom text control for cell editing """
    def __init__(self, parent, id, grid):
        wx.TextCtrl.__init__(self, parent, id, "", style=wx.NO_BORDER)
        self._grid = grid                           # Save grid reference
        self.Bind(wx.EVT_CHAR, self.OnChar)

    def OnChar(self, evt):                          # Hook OnChar for custom behavior
        """Customizes char events """
        key = evt.GetKeyCode()
        if   key == wx.WXK_DOWN:
            self._grid.DisableCellEditControl()     # Commit the edit
            self._grid.MoveCursorDown(False)        # Change the current cell
        elif key == wx.WXK_UP:
            self._grid.DisableCellEditControl()     # Commit the edit
            self._grid.MoveCursorUp(False)          # Change the current cell
        elif key == wx.WXK_LEFT:
            self._grid.DisableCellEditControl()     # Commit the edit
            self._grid.MoveCursorLeft(False)        # Change the current cell
        elif key == wx.WXK_RIGHT:
            self._grid.DisableCellEditControl()     # Commit the edit
            self._grid.MoveCursorRight(False)       # Change the current cell

        evt.Skip()                                  # Continue event

#---------------------------------------------------------------------------
class CCellEditor(wx.grid.PyGridCellEditor):
    """ Custom cell editor """
    def __init__(self, grid):
        wx.grid.PyGridCellEditor.__init__(self)
        self._grid = grid                           # Save a reference to the grid

    def Create(self, parent, id, evtHandler):
        """ Create the actual edit control.  Must derive from wxControl.
            Must Override
        """
        self._tc = CTextCellEditor(parent, id, self._grid)
        self._tc.SetInsertionPoint(0)
        self.SetControl(self._tc)
        if evtHandler:
            self._tc.PushEventHandler(evtHandler)

    def SetSize(self, rect):
        """ Position/size the edit control within the cell rectangle. """
        # Size text control to exactly overlay in-cell editing
        self._tc.SetDimensions(rect.x+3, rect.y+3, rect.width-2, rect.height-2)

    def Show(self, show, attr):
        """ Show or hide the edit control.  Use the attr (if not None)
            to set colors or fonts for the control.

            NOTE: There is no need to everride this if you don't need
            to do something out of the ordinary.
        """
        super(CCellEditor, self).Show(show, attr)

    def PaintBackground(self, rect, attr):
        """ Draws the part of the cell not occupied by the edit control.  The
            base class version just fills it with background colour from the
            attribute.

            NOTE: There is no need to everride this if you don't need
            to do something out of the ordinary.
        """
        # Call base class method.
        super(CCellEditor, self).PaintBackground(self, rect, attr)

    def BeginEdit(self, row, col, grid):
        """ Fetch the value from the table and prepare edit control to begin editing.
            Set the focus to the edit control.  Must Override.
        """
        self._startValue = grid.GetTable().GetValue(row, col)
        self._tc.SetValue(self._startValue)
        self._tc.SetFocus()

        # Select the text when initiating an edit so that subsequent typing
        # replaces the contents.
        self._tc.SetSelection(0, self._tc.GetLastPosition())

    def EndEdit(self, row, col, grid):
        """ Commit editing the current cell. Returns True if the value has changed.
            If necessary, the control may be destroyed. Must Override.
        """
        changed = False                             # Assume value not changed
        val = self._tc.GetValue()                   # Get value in edit control
        if val != self._startValue:                 # Compare
            changed = True                          # If different then changed is True
            grid.GetTable().SetValue(row, col, val) # Update the table
        self._startValue = ''                       # Clear the class' start value
        self._tc.SetValue('')                       # Clear contents of the edit control

        return changed

    def Reset(self):
        """ Reset the value in the control back to its starting value. Must Override. """
        self._tc.SetValue(self._startValue)
        self._tc.SetInsertionPointEnd()

    def IsAcceptedKey(self, evt):
        """ Return True to allow the given key to start editing.  The base class
            version only checks that the event has no modifiers.  F2 is special
            and will always start the editor.
        """
        return (not (evt.ControlDown() or evt.AltDown())
                and  evt.GetKeyCode() != wx.WXK_SHIFT)

    def StartingKey(self, evt):
        """ If the editor is enabled by pressing keys on the grid, this will be
            called to let the editor react to that first key.
        """
        key = evt.GetKeyCode()              # Get the key code
        ch = None                           # Handle num pad keys
        if key in [ wx.WXK_NUMPAD0, wx.WXK_NUMPAD1, wx.WXK_NUMPAD2, wx.WXK_NUMPAD3, 
                    wx.WXK_NUMPAD4, wx.WXK_NUMPAD5, wx.WXK_NUMPAD6, wx.WXK_NUMPAD7, 
                    wx.WXK_NUMPAD8, wx.WXK_NUMPAD9]:
            ch = chr(ord('0') + key - wx.WXK_NUMPAD0)

        elif key == wx.WXK_BACK:               # Empty text control when init w/ back key
            ch = ""
                                            # Handle normal keys
        elif key < 256 and key >= 0 and chr(key) in string.printable:
            ch = chr(key)
            if not evt.ShiftDown():
                ch = ch.lower()

        if ch is not None:                  # If are at this point with a key,
            self._tc.SetValue(ch)           # replace the contents of the text control.
            self._tc.SetInsertionPointEnd() # Move to the end so that subsequent keys are appended
        else:
            evt.Skip()

    def StartingClick(self):
        """ If the editor is enabled by clicking on the cell, this method will be
            called to allow the editor to simulate the click on the control.
        """
        pass

    def Destroy(self):
        """ Final cleanup
        
            NOTE: There is no need to everride this if you don't need
            to do something out of the ordinary.
        """
        super(CCellEditor, self).Destroy()

    def Clone(self):
        """ Create a new object which is the copy of this one. Must Override. """
        return CCellEditor()

#---------------------------------------------------------------------------
class CSheet(wx.grid.Grid):
    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent, -1)

        # Init variables
        self._lastCol = -1              # Init last cell column clicked
        self._lastRow = -1              # Init last cell row clicked
        self._selected = None           # Init range currently selected
                                        # Map string datatype to default renderer/editor

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
性做久久久久久免费观看| 亚洲丝袜自拍清纯另类| 99久久精品一区| 麻豆91精品91久久久的内涵| 中文字幕在线一区免费| 欧美一区二区精品在线| 色88888久久久久久影院按摩| 国产伦精品一区二区三区免费迷 | 久久99国产精品久久99果冻传媒| 中文字幕在线播放不卡一区| 日韩午夜精品视频| 欧美日韩不卡在线| 欧洲视频一区二区| 91亚洲永久精品| 国产91精品久久久久久久网曝门| 日本aⅴ精品一区二区三区 | 日韩av不卡一区二区| 亚洲欧美日韩国产综合| 欧美经典一区二区| 久久夜色精品国产噜噜av| 91 com成人网| 欧美福利电影网| 欧美无人高清视频在线观看| 91片黄在线观看| av午夜一区麻豆| 成人性视频免费网站| 国产一区二区在线看| 日韩va亚洲va欧美va久久| 亚洲成人免费视频| 亚洲综合一区在线| 亚洲一区在线观看免费观看电影高清 | 26uuu久久综合| 日韩免费视频一区| 精品少妇一区二区三区日产乱码| 一区二区三区精品| 最好看的中文字幕久久| 国产精品福利一区二区三区| 欧美激情一区不卡| 国产精品久久久久影院色老大| 亚洲国产精品成人综合色在线婷婷 | 日韩**一区毛片| 日韩av中文字幕一区二区三区| 日韩福利视频网| 日本在线播放一区二区三区| 奇米影视一区二区三区| 蜜桃精品在线观看| 国产精品一区二区久久不卡 | 欧美一区二区三区免费视频| 7777精品伊人久久久大香线蕉的| 91麻豆精品国产91久久久资源速度| 337p亚洲精品色噜噜噜| 日韩天堂在线观看| 精品国产91亚洲一区二区三区婷婷| 日韩欧美不卡一区| 国产欧美日韩视频一区二区 | 亚洲少妇最新在线视频| 亚洲一区二区成人在线观看| 午夜激情久久久| 极品少妇一区二区三区精品视频| 国产高清亚洲一区| 91免费精品国自产拍在线不卡| 在线观看免费成人| 欧美电影免费观看高清完整版 | 亚洲第一福利视频在线| 免费一级欧美片在线观看| 国精品**一区二区三区在线蜜桃| 成人av在线看| 欧美丰满一区二区免费视频| 久久久久高清精品| 亚洲靠逼com| 六月婷婷色综合| zzijzzij亚洲日本少妇熟睡| 色8久久精品久久久久久蜜| 欧美一区二区视频网站| 中文字幕欧美激情一区| 亚洲成人av电影在线| 久久成人羞羞网站| 91社区在线播放| 欧美va亚洲va在线观看蝴蝶网| 国产精品毛片久久久久久久| 五月激情综合网| 国产成人免费视| 欧美日本一道本在线视频| 国产欧美日韩在线视频| 亚洲超碰精品一区二区| 国产很黄免费观看久久| 欧美日韩一二区| 国产日韩欧美综合一区| 午夜精品久久一牛影视| 成人av在线一区二区| 日韩欧美一区二区视频| 国产精品久久久久影视| 久久精品国产亚洲aⅴ| 91麻豆.com| 久久久久久一二三区| 亚洲国产cao| 9色porny自拍视频一区二区| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产午夜精品福利| 五月综合激情网| 成人av资源下载| 精品国产1区2区3区| 日日摸夜夜添夜夜添精品视频| 不卡的av在线| 26uuu精品一区二区在线观看| 亚洲va中文字幕| 91亚洲国产成人精品一区二区三| 欧美mv和日韩mv的网站| 午夜精品福利视频网站| 色88888久久久久久影院野外| 久久综合视频网| 蜜臀av性久久久久av蜜臀妖精| 欧美性三三影院| 亚洲人成小说网站色在线| 狠狠色综合播放一区二区| 欧美一区二区精美| 偷窥少妇高潮呻吟av久久免费| 色综合久久久久综合体桃花网| 国产精品福利在线播放| 国产精品资源在线| 久久午夜羞羞影院免费观看| 麻豆精品蜜桃视频网站| 91精品国产综合久久小美女| 亚洲国产一区二区三区| 91福利区一区二区三区| 亚洲另类色综合网站| 91浏览器在线视频| 亚洲激情欧美激情| 91久久精品一区二区| 一区二区三区国产精华| 91福利国产成人精品照片| 一区二区三区毛片| 欧美色综合网站| 午夜久久电影网| 欧美一区二区三区系列电影| 日韩在线播放一区二区| 制服丝袜亚洲精品中文字幕| 日本中文字幕一区二区有限公司| 91精品国产91久久综合桃花| 日本女优在线视频一区二区| 欧美一区二区三区视频| 麻豆国产精品777777在线| 精品久久久久久最新网址| 国产成人在线网站| 成人欧美一区二区三区| 一本大道久久a久久精品综合| 亚洲精品国产无套在线观| 欧美中文字幕久久| 日本亚洲欧美天堂免费| 精品国产乱码久久久久久牛牛| 国产精品99久| 综合久久久久综合| 欧美日韩精品系列| 六月婷婷色综合| 国产精品天干天干在观线| 91色在线porny| 五月婷婷综合激情| 精品美女一区二区| av综合在线播放| 五月天亚洲精品| 国产无遮挡一区二区三区毛片日本| av影院午夜一区| 日韩电影在线观看电影| 久久中文字幕电影| 99精品视频一区二区三区| 性欧美大战久久久久久久久| 精品日韩一区二区三区| av综合在线播放| 日本不卡视频一二三区| 欧美激情一区二区三区四区| 欧美三级视频在线播放| 韩国在线一区二区| 伊人开心综合网| 欧美sm极限捆绑bd| 97se亚洲国产综合自在线观| 免费观看91视频大全| 国产精品萝li| 日韩小视频在线观看专区| av中文字幕亚洲| 久久99最新地址| 亚洲综合男人的天堂| 久久综合九色综合97婷婷| 欧美在线综合视频| 粉嫩av一区二区三区在线播放| 亚洲国产美国国产综合一区二区| 国产亚洲精品资源在线26u| 欧美日韩国产天堂| av亚洲精华国产精华| 国内成+人亚洲+欧美+综合在线| 亚洲黄色片在线观看| 久久在线观看免费| 欧美日韩高清在线| 成人av在线影院| 国产一区999| 免费在线成人网| 亚洲福利一二三区| 亚洲欧美在线另类| 国产午夜精品久久久久久免费视| 欧美日韩一区中文字幕| av午夜精品一区二区三区|