<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 菜單和工具欄 > 原文: [http://zetcode.com/wxpython/menustoolbars/](http://zetcode.com/wxpython/menustoolbars/) GUI 應用中的常見部分是菜單欄。 菜單欄由稱為菜單的對象組成。 頂層菜單在菜單欄上帶有其標簽。 菜單具有菜單項。 菜單項是在應用內部執行特定操作的命令。 菜單也可以具有子菜單,這些子菜單具有自己的菜單項。 以下三個類用于在 wxPython 中創建菜單欄:`wx.MenuBar`,`wx.Menu`和`wx.MenuItem`。 ## 簡單菜單 在第一個示例中,我們將創建一個帶有一個文件菜單的菜單欄。 該菜單將只有一個菜單項。 通過選擇項目,應用退出。 `simple_menu.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ZetCode wxPython tutorial This example shows a simple menu. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 """ import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): menubar = wx.MenuBar() fileMenu = wx.Menu() fileItem = fileMenu.Append(wx.ID_EXIT, 'Quit', 'Quit application') menubar.Append(fileMenu, '&File') self.SetMenuBar(menubar) self.Bind(wx.EVT_MENU, self.OnQuit, fileItem) self.SetSize((300, 200)) self.SetTitle('Simple menu') self.Centre() def OnQuit(self, e): self.Close() def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 這是一個最小的菜單欄功能示例。 ```py menubar = wx.MenuBar() ``` 首先,我們創建一個菜單欄對象。 ```py fileMenu = wx.Menu() ``` 接下來,我們創建一個菜單對象。 ```py fileItem = fileMenu.Append(wx.ID_EXIT, 'Quit', 'Quit application') ``` 我們將菜單項添加到菜單對象中。 第一個參數是菜單項的 ID。 標準 ID 將自動添加圖標和快捷方式,在本例中為 `Ctrl + Q` 。 第二個參數是菜單項的名稱。 最后一個參數定義了選擇菜單項時在狀態欄上顯示的簡短幫助字符串。 在這里,我們沒有明確創建一個`wx.MenuItem`。 它是通過`Append()`方法在后臺創建的。 該方法返回創建的菜單項。 稍后將使用此引用來綁定事件。 ```py self.Bind(wx.EVT_MENU, self.OnQuit, fileItem) ``` 我們將菜單項的`wx.EVT_MENU`綁定到自定義`OnQuit()`方法。 此方法將關閉應用。 ```py menubar.Append(fileMenu, '&File') self.SetMenuBar(menubar) ``` 之后,我們將菜單添加到菜單欄中。 &字符創建一個加速鍵。 帶下劃線的&后面的字符。 這樣,可以通過 `Alt + F` 快捷方式訪問菜單。 最后,我們調用`SetMenuBar()`方法。 該方法屬于`wx.Frame`小部件。 它設置菜單欄。 ![A simple menu example](https://img.kancloud.cn/df/15/df15995d75d23d643305ac993d2e6d3d_308x228.jpg) 圖:簡單菜單 example ## 圖標和快捷方式 下一個示例與上一個示例基本相同。 這次,我們手動創建一個`wx.MenuItem`。 `icons_shortcuts.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ZetCode wxPython tutorial In this example, we manually create a menu item. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 """ import wx APP_EXIT = 1 class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): menubar = wx.MenuBar() fileMenu = wx.Menu() qmi = wx.MenuItem(fileMenu, APP_EXIT, '&Quit\tCtrl+Q') qmi.SetBitmap(wx.Bitmap('exit.png')) fileMenu.Append(qmi) self.Bind(wx.EVT_MENU, self.OnQuit, id=APP_EXIT) menubar.Append(fileMenu, '&File') self.SetMenuBar(menubar) self.SetSize((350, 250)) self.SetTitle('Icons and shortcuts') self.Centre() def OnQuit(self, e): self.Close() def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 在此示例中,我們創建一個退出菜單項。 我們為菜單項選擇一個自定義圖標和快捷方式。 ```py qmi = wx.MenuItem(fileMenu, APP_EXIT, '&Quit\tCtrl+Q') qmi.SetBitmap(wx.Bitmap('exit.png')) fileMenu.Append(qmi) ``` 我們創建一個`wx.MenuItem`對象。 &字符指定加速鍵。 帶`&`號后面的字符帶有下劃線。 實際的快捷方式由字符組合定義。 我們指定了 `Ctrl + Q` 字符。 因此,如果我們按 `Ctrl + Q` ,我們將關閉應用。 我們在&字符和快捷方式之間放置一個制表符。 這樣,我們設法在它們之間留出一些空間。 為了提供菜單項的圖標,我們調用`SetBitmap()`方法。 通過調用`AppendItem()`方法將手動創建的菜單項附加到菜單。 ```py self.Bind(wx.EVT_MENU, self.OnQuit, id=APP_EXIT) ``` 當我們選擇創建的菜單項時,將調用`OnQuit()`方法。 ![Icons and shortcuts](https://img.kancloud.cn/2d/a6/2da64543c94a2a068494d568055d9fd4_258x228.jpg) 圖:圖標 s and shortcuts ## 子菜單和分隔符 每個菜單也可以有一個子菜單。 這樣,我們可以將類似的命令分組。 例如,我們可以將隱藏/顯示各種工具欄(例如個人欄,地址欄,狀態欄或導航欄)的命令放置在稱為工具欄的子菜單中。 在菜單中,我們可以使用分隔符來分隔命令。 這是一條簡單的線。 通常的做法是使用單個分隔符將“新建”,“打開”,“保存”等命令與“打印”,“打印預覽”等命令分開。 在我們的示例中,我們將看到如何創建子菜單和菜單分隔符。 `submenu.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ZetCode wxPython tutorial In this example, we create a submenu and a menu separator. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 """ import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): menubar = wx.MenuBar() fileMenu = wx.Menu() fileMenu.Append(wx.ID_NEW, '&New') fileMenu.Append(wx.ID_OPEN, '&Open') fileMenu.Append(wx.ID_SAVE, '&Save') fileMenu.AppendSeparator() imp = wx.Menu() imp.Append(wx.ID_ANY, 'Import newsfeed list...') imp.Append(wx.ID_ANY, 'Import bookmarks...') imp.Append(wx.ID_ANY, 'Import mail...') fileMenu.AppendMenu(wx.ID_ANY, 'I&mport', imp) qmi = wx.MenuItem(fileMenu, wx.ID_EXIT, '&Quit\tCtrl+W') fileMenu.AppendItem(qmi) self.Bind(wx.EVT_MENU, self.OnQuit, qmi) menubar.Append(fileMenu, '&File') self.SetMenuBar(menubar) self.SetSize((350, 250)) self.SetTitle('Submenu') self.Centre() def OnQuit(self, e): self.Close() def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 在上面的示例中,我們創建了“新建”,“打開”和“保存”標準菜單項。 這些與帶有水平分隔符的子菜單分開。 子菜單具有其他三個菜單項。 ```py fileMenu.Append(wx.ID_NEW, '&New') fileMenu.Append(wx.ID_OPEN, '&Open') fileMenu.Append(wx.ID_SAVE, '&Save') ``` 在這里,我們有三個常見的菜單項:新建,打開和保存。 ```py fileMenu.AppendSeparator() ``` 菜單分隔符隨`AppendSeparator()`方法附加。 ```py imp = wx.Menu() imp.Append(wx.ID_ANY, 'Import newsfeed list...') imp.Append(wx.ID_ANY, 'Import bookmarks...') imp.Append(wx.ID_ANY, 'Import mail...') fileMenu.AppendMenu(wx.ID_ANY, 'I&mport', imp) ``` 子菜單也是`wx.Menu`。 三個菜單項附加到菜單。 子菜單通過`AppenMenu()`方法附加到文件菜單。 ![A submenu example](https://img.kancloud.cn/ff/27/ff27c6d1311959cb871f9560586dd14d_427x290.jpg) 圖:一個子菜單示例 ## 復選菜單項 有樹形菜單項。 * 普通項目 * 復選項目 * 單選項目 在下面的示例中,我們將演示復選菜單項。 復選菜單項在菜單中由刻度線直觀地表示。 `checkmenu_item.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ZetCode wxPython tutorial This example creates a checked menu item. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 """ import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): menubar = wx.MenuBar() viewMenu = wx.Menu() self.shst = viewMenu.Append(wx.ID_ANY, 'Show statusbar', 'Show Statusbar', kind=wx.ITEM_CHECK) self.shtl = viewMenu.Append(wx.ID_ANY, 'Show toolbar', 'Show Toolbar', kind=wx.ITEM_CHECK) viewMenu.Check(self.shst.GetId(), True) viewMenu.Check(self.shtl.GetId(), True) self.Bind(wx.EVT_MENU, self.ToggleStatusBar, self.shst) self.Bind(wx.EVT_MENU, self.ToggleToolBar, self.shtl) menubar.Append(viewMenu, '&View') self.SetMenuBar(menubar) self.toolbar = self.CreateToolBar() self.toolbar.AddTool(1, '', wx.Bitmap('texit.png')) self.toolbar.Realize() self.statusbar = self.CreateStatusBar() self.statusbar.SetStatusText('Ready') self.SetSize((450, 350)) self.SetTitle('Check menu item') self.Centre() def ToggleStatusBar(self, e): if self.shst.IsChecked(): self.statusbar.Show() else: self.statusbar.Hide() def ToggleToolBar(self, e): if self.shtl.IsChecked(): self.toolbar.Show() else: self.toolbar.Hide() def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 我們有一個視圖菜單,其中有兩個復選菜單項。 這兩個菜單項將顯示和隱藏狀態欄和工具欄。 ```py self.shst = viewMenu.Append(wx.ID_ANY, 'Show statusbar', 'Show Statusbar', kind=wx.ITEM_CHECK) self.shtl = viewMenu.Append(wx.ID_ANY, 'Show toolbar', 'Show Toolbar', kind=wx.ITEM_CHECK) ``` 如果要附加復選菜單項,請將`kind`參數設置為`wx.ITEM_CHECK`。 默認參數是`wx.ITEM_NORMAL`。 `Append()`方法返回`wx.MenuItem`。 ```py viewMenu.Check(self.shst.GetId(), True) viewMenu.Check(self.shtl.GetId(), True) ``` 當應用啟動時,狀態欄和工具欄都可見。 因此,我們使用`Check()`方法檢查兩個菜單項。 ```py def ToggleStatusBar(self, e): if self.shst.IsChecked(): self.statusbar.Show() else: self.statusbar.Hide() ``` 我們根據復選菜單項的狀態顯示或隱藏狀態欄。 我們使用`IsChecked()`方法找出復選菜單項的狀態。 與工具欄相同。 ![Check menu item](https://img.kancloud.cn/bf/79/bf79d2d3ca08601a0478ba28cec77572_450x350.jpg) 圖:選中菜單項 ## 上下文菜單 上下文菜單是在某些上下文下顯示的命令列表。 例如,在 Firefox Web 瀏覽器中,當我們右鍵單擊網頁時,將獲得一個上下文菜單。 在這里,我們可以重新加載頁面,返回或查看頁面源代碼。 如果右鍵單擊工具欄,則將獲得另一個用于管理工具欄的上下文菜單。 上下文菜單有時稱為彈出菜單。 `context_menu.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ZetCode wxPython tutorial In this example, we create a context menu. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 """ import wx class MyPopupMenu(wx.Menu): def __init__(self, parent): super(MyPopupMenu, self).__init__() self.parent = parent mmi = wx.MenuItem(self, wx.NewId(), 'Minimize') self.Append(mmi) self.Bind(wx.EVT_MENU, self.OnMinimize, mmi) cmi = wx.MenuItem(self, wx.NewId(), 'Close') self.Append(cmi) self.Bind(wx.EVT_MENU, self.OnClose, cmi) def OnMinimize(self, e): self.parent.Iconize() def OnClose(self, e): self.parent.Close() class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown) self.SetSize((350, 250)) self.SetTitle('Context menu') self.Centre() def OnRightDown(self, e): self.PopupMenu(MyPopupMenu(self), e.GetPosition()) def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 在示例中,我們為主窗口創建一個上下文菜單。 它有兩個項目。 一個將最小化應用,另一個將終止它。 ```py class MyPopupMenu(wx.Menu): def __init__(self, parent): super(MyPopupMenu, self).__init__() ``` 我們創建一個單獨的`wx.Menu`類。 ```py mmi = wx.MenuItem(self, wx.NewId(), 'Minimize') self.Append(mmi) self.Bind(wx.EVT_MENU, self.OnMinimize, mmi) ``` 將創建一個菜單項并將其附加到上下文菜單。 事件處理器綁定到此菜單項。 ```py self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown) ``` 如果我們右鍵單擊框架,我們將調用`OnRightDown()`方法。 為此,我們使用`wx.EVT_RIGHT_DOWN`事件綁定器。 ```py def OnRightDown(self, e): self.PopupMenu(MyPopupMenu(self), e.GetPosition()) ``` 在`OnRightDown()`方法中,我們稱為`PopupMenu()`方法。 此方法顯示上下文菜單。 第一個參數是要顯示的菜單。 第二個參數是上下文菜單出現的位置。 上下文菜單出現在鼠標光標的位置。 為了獲得鼠標的實際位置,我們調用提供的事件對象的`GetPosition()`方法。 ![Context menu](https://img.kancloud.cn/dc/a6/dca66602197b7a641592bc037a0caecb_258x228.jpg) 圖:上下文菜單 ## 工具欄 菜單將我們可以在應用中使用的所有命令分組。 使用工具欄可以快速訪問最常用的命令。 要創建工具欄,我們調用框架窗口小部件的`CreateToolBar()`方法。 `toolbar.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ZetCode wxPython tutorial This example creates a simple toolbar. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 """ import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): toolbar = self.CreateToolBar() qtool = toolbar.AddTool(wx.ID_ANY, 'Quit', wx.Bitmap('texit.png')) toolbar.Realize() self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) self.SetSize((350, 250)) self.SetTitle('Simple toolbar') self.Centre() def OnQuit(self, e): self.Close() def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 在我們的示例中,我們有一個帶有一個工具的工具欄。 當我們單擊該工具時,它將關閉該應用。 ```py toolbar = self.CreateToolBar() ``` 我們創建一個工具欄。 默認情況下,工具欄是水平的,沒有邊框并且顯示圖標。 ```py qtool = toolbar.AddTool(wx.ID_ANY, 'Quit', wx.Bitmap('texit.png')) ``` 要創建工具欄工具,我們調用`AddTool()`方法。 第二個參數是工具的標簽,第三個參數是工具的圖像。 請注意,標簽不可見,因為默認樣式僅顯示圖標。 ```py toolbar.Realize() ``` 將項目放入工具欄后,我們調用`Realize()`方法。 在 Linux 上,不必強制調用此方法。 在 Windows 上是。 ```py self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) ``` 為了處理工具欄事件,我們使用`wx.EVT_TOOL`事件綁定器。 ![Simple toolbar](https://img.kancloud.cn/fc/1c/fc1cff078fe0e17b148924070c23e953_258x228.jpg) 圖:簡單 toolbar 如果我們要創建多個工具欄,則必須以不同的方式進行。 `toolbars.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' ZetCode wxPython tutorial In this example, we create two horizontal toolbars. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 ''' import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): vbox = wx.BoxSizer(wx.VERTICAL) toolbar1 = wx.ToolBar(self) toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('tnew.png')) toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('topen.png')) toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('tsave.png')) toolbar1.Realize() toolbar2 = wx.ToolBar(self) qtool = toolbar2.AddTool(wx.ID_EXIT, '', wx.Bitmap('texit.png')) toolbar2.Realize() vbox.Add(toolbar1, 0, wx.EXPAND) vbox.Add(toolbar2, 0, wx.EXPAND) self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) self.SetSizer(vbox) self.SetSize((350, 250)) self.SetTitle('Toolbars') self.Centre() def OnQuit(self, e): self.Close() def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 在上面的示例中,我們創建了兩個水平工具欄。 ```py toolbar1 = wx.ToolBar(self) ... toolbar2 = wx.ToolBar(self) ``` 我們創建兩個工具欄對象。 并將它們放入垂直盒中。 ![Toolbars](https://img.kancloud.cn/9f/92/9f92691768b1a046c72fcd7df8a9919a_308x278.jpg) 圖:工具欄 s ## 啟用和禁用 在下面的示例中,我們展示了如何啟用和禁用工具欄按鈕。 我們還添加了分隔線。 `undo_redo.py` ```py #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ZetCode wxPython tutorial In this example, we create two horizontal toolbars. author: Jan Bodnar website: www.zetcode.com last modified: April 2018 """ import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): self.count = 5 self.toolbar = self.CreateToolBar() tundo = self.toolbar.AddTool(wx.ID_UNDO, '', wx.Bitmap('tundo.png')) tredo = self.toolbar.AddTool(wx.ID_REDO, '', wx.Bitmap('tredo.png')) self.toolbar.EnableTool(wx.ID_REDO, False) self.toolbar.AddSeparator() texit = self.toolbar.AddTool(wx.ID_EXIT, '', wx.Bitmap('texit.png')) self.toolbar.Realize() self.Bind(wx.EVT_TOOL, self.OnQuit, texit) self.Bind(wx.EVT_TOOL, self.OnUndo, tundo) self.Bind(wx.EVT_TOOL, self.OnRedo, tredo) self.SetSize((350, 250)) self.SetTitle('Undo redo') self.Centre() def OnUndo(self, e): if self.count > 1 and self.count <= 5: self.count = self.count - 1 if self.count == 1: self.toolbar.EnableTool(wx.ID_UNDO, False) if self.count == 4: self.toolbar.EnableTool(wx.ID_REDO, True) def OnRedo(self, e): if self.count < 5 and self.count >= 1: self.count = self.count + 1 if self.count == 5: self.toolbar.EnableTool(wx.ID_REDO, False) if self.count == 2: self.toolbar.EnableTool(wx.ID_UNDO, True) def OnQuit(self, e): self.Close() def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() ``` 在我們的示例中,我們有三個工具欄按鈕。 一個按鈕用于退出應用。 其他兩個按鈕是撤消和重做按鈕。 它們模擬應用中的撤消/重做功能。 (有關真實示例,請參見技巧)。我們進行了 4 個更改。 撤消和重做按鈕相應地被禁用。 ```py self.toolbar.EnableTool(wx.ID_REDO, False) self.toolbar.AddSeparator() ``` 首先,重做按鈕被禁用。 我們通過調用`EnableTool()`方法來實現。 我們可以在工具欄中創建一些邏輯組。 我們可以用一條小的垂直線將各種按鈕組分開。 為此,我們調用`AddSeparator()`方法。 ```py def OnUndo(self, e): if self.count > 1 and self.count <= 5: self.count = self.count - 1 if self.count == 1: self.toolbar.EnableTool(wx.ID_UNDO, False) if self.count == 4: self.toolbar.EnableTool(wx.ID_REDO, True) ``` 我們模擬撤消和重做功能。 我們有四個變化。 如果沒有什么可撤消的,撤消按鈕將被禁用。 撤消第一個更改后,我們啟用重做按鈕。 相同的邏輯適用于`OnRedo()`方法。 ![Undo redo](https://img.kancloud.cn/6e/70/6e703c260e545eb668ae2275b0f4f020_258x228.jpg) 圖:撤銷和重做 在 wxPython 教程的這一部分中,我們使用了菜單和工具欄。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看