diff --git a/20_app_struct/browser/browser.py b/20_app_struct/browser/browser.py new file mode 100644 index 0000000000000000000000000000000000000000..294de0f0334921d878311027b8373a79bdd70614 --- /dev/null +++ b/20_app_struct/browser/browser.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a browser UI. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx +from wx.lib.buttons import GenBitmapTextButton + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.CreateMenuBar() + + panel = wx.Panel(self) + # panel.SetBackgroundColour('white') + + vbox = wx.BoxSizer(wx.VERTICAL) + hbox1 = wx.BoxSizer(wx.HORIZONTAL) + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + + line1 = wx.StaticLine(panel) + vbox.Add(line1, 0, wx.EXPAND) + + toolbar1 = wx.Panel(panel, size=(-1, 30)) + + back = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/back.png'), + style=wx.NO_BORDER) + forward = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/forw.png'), + style=wx.NO_BORDER) + refresh = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/refresh.png'), + style=wx.NO_BORDER) + stop = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/stop.png'), + style=wx.NO_BORDER) + home = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/home.png'), + style=wx.NO_BORDER) + address = wx.ComboBox(toolbar1, size=(50, -1)) + go = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/play.png'), + style=wx.NO_BORDER) + text = wx.TextCtrl(toolbar1, size=(150, -1)) + + hbox1.Add(back) + hbox1.Add(forward) + hbox1.Add(refresh) + hbox1.Add(stop) + hbox1.Add(home) + hbox1.Add(address, 1, wx.TOP, 3) + hbox1.Add(go, 0, wx.TOP | wx.LEFT, 3) + hbox1.Add(text, 0, wx.TOP | wx.RIGHT, 3) + + toolbar1.SetSizer(hbox1) + vbox.Add(toolbar1, 0, wx.EXPAND) + line = wx.StaticLine(panel) + vbox.Add(line, 0, wx.EXPAND) + + toolbar2 = wx.Panel(panel, size=(-1, 30)) + bookmark1 = wx.BitmapButton(toolbar2, bitmap=wx.Bitmap('images/love.png'), + style=wx.NO_BORDER) + bookmark2 = wx.BitmapButton(toolbar2, bitmap=wx.Bitmap('images/book.png'), + style=wx.NO_BORDER) + bookmark3 = wx.BitmapButton(toolbar2, bitmap=wx.Bitmap('images/sound.png'), + style=wx.NO_BORDER) + + hbox2.Add(bookmark1, flag=wx.RIGHT, border=5) + hbox2.Add(bookmark2, flag=wx.RIGHT, border=5) + hbox2.Add(bookmark3) + + toolbar2.SetSizer(hbox2) + vbox.Add(toolbar2, 0, wx.EXPAND) + + line2 = wx.StaticLine(panel) + vbox.Add(line2, 0, wx.EXPAND) + + panel.SetSizer(vbox) + + self.CreateStatusBar() + + self.SetTitle("Browser") + self.Centre() + + def CreateMenuBar(self): + + menubar = wx.MenuBar() + file = wx.Menu() + file.Append(wx.ID_ANY, '&Quit', '') + edit = wx.Menu() + view = wx.Menu() + go = wx.Menu() + bookmarks = wx.Menu() + tools = wx.Menu() + help = wx.Menu() + + menubar.Append(file, '&File') + menubar.Append(edit, '&Edit') + menubar.Append(view, '&View') + menubar.Append(go, '&Go') + menubar.Append(bookmarks, '&Bookmarks') + menubar.Append(tools, '&Tools') + menubar.Append(help, '&Help') + + self.SetMenuBar(menubar) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/20_app_struct/browser/images/back.png b/20_app_struct/browser/images/back.png new file mode 100644 index 0000000000000000000000000000000000000000..08b87faf060785babd7e73d4cb636782c53d6c55 Binary files /dev/null and b/20_app_struct/browser/images/back.png differ diff --git a/20_app_struct/browser/images/book.png b/20_app_struct/browser/images/book.png new file mode 100644 index 0000000000000000000000000000000000000000..39a9865d9f2b8a1d283d98b4971ae6965a8b0725 Binary files /dev/null and b/20_app_struct/browser/images/book.png differ diff --git a/20_app_struct/browser/images/forw.png b/20_app_struct/browser/images/forw.png new file mode 100644 index 0000000000000000000000000000000000000000..9f85b8d5819f019c18f07a67072151abee0d7c8f Binary files /dev/null and b/20_app_struct/browser/images/forw.png differ diff --git a/20_app_struct/browser/images/home.png b/20_app_struct/browser/images/home.png new file mode 100644 index 0000000000000000000000000000000000000000..0335bdeee1ff2fda0d46567b6d7253a1ff275324 Binary files /dev/null and b/20_app_struct/browser/images/home.png differ diff --git a/20_app_struct/browser/images/love.png b/20_app_struct/browser/images/love.png new file mode 100644 index 0000000000000000000000000000000000000000..74f1c59c0a6bc59886861e354a7d6efd3cbf81f5 Binary files /dev/null and b/20_app_struct/browser/images/love.png differ diff --git a/20_app_struct/browser/images/play.png b/20_app_struct/browser/images/play.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5d460d40b0a8b971cb68ae4568eeab67f19c0e Binary files /dev/null and b/20_app_struct/browser/images/play.png differ diff --git a/20_app_struct/browser/images/refresh.png b/20_app_struct/browser/images/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..b7038c7cbc498de4071c45e12c51d508c4294e30 Binary files /dev/null and b/20_app_struct/browser/images/refresh.png differ diff --git a/20_app_struct/browser/images/sound.png b/20_app_struct/browser/images/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..f6d27d03afc1bf49961dd8e98276d04cf0f20e55 Binary files /dev/null and b/20_app_struct/browser/images/sound.png differ diff --git a/20_app_struct/browser/images/stop.png b/20_app_struct/browser/images/stop.png new file mode 100644 index 0000000000000000000000000000000000000000..54b3f590a4d8968ed11b0ea46f0b2097c5739515 Binary files /dev/null and b/20_app_struct/browser/images/stop.png differ diff --git a/20_app_struct/player/images/back.png b/20_app_struct/player/images/back.png new file mode 100644 index 0000000000000000000000000000000000000000..8ed46e5c987815ac1c5779bbb382989ed72cb77d Binary files /dev/null and b/20_app_struct/player/images/back.png differ diff --git a/20_app_struct/player/images/forw.png b/20_app_struct/player/images/forw.png new file mode 100644 index 0000000000000000000000000000000000000000..4a197f9914cf5848fe430a8c63d7ef71da678f92 Binary files /dev/null and b/20_app_struct/player/images/forw.png differ diff --git a/20_app_struct/player/images/pause.png b/20_app_struct/player/images/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a562091d6e88a55c86743694e9451aae86ee71 Binary files /dev/null and b/20_app_struct/player/images/pause.png differ diff --git a/20_app_struct/player/images/play.png b/20_app_struct/player/images/play.png new file mode 100644 index 0000000000000000000000000000000000000000..60e801c84d663cf1fe95cf17ba0e50f2bdc1d445 Binary files /dev/null and b/20_app_struct/player/images/play.png differ diff --git a/20_app_struct/player/images/volume.png b/20_app_struct/player/images/volume.png new file mode 100644 index 0000000000000000000000000000000000000000..da669972241392ea7466b7d8cf503447ab1bb35f Binary files /dev/null and b/20_app_struct/player/images/volume.png differ diff --git a/20_app_struct/player/player-demo.png b/20_app_struct/player/player-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..b37de342b58cb913ada0706208a55e5c4003d8c0 Binary files /dev/null and b/20_app_struct/player/player-demo.png differ diff --git a/21_gm/tetris.py b/21_gm/tetris.py index 4b84fe5232d8dc70982a248083c65ed5f101a4fc..ec4e4659a148ab45a8c7db4fc57fc33834a3f660 100644 --- a/21_gm/tetris.py +++ b/21_gm/tetris.py @@ -42,8 +42,8 @@ class Board(wx.Panel): ID_TIMER = 1 def __init__(self, *args, **kw): - - super(Board, self).__init__(*args, **kw) + # Windows 用户注意事项:如果您不能使用箭头键,请将 `style = wx.WANTS_CHARS` 添加到 board 的构造函数中 + super(Board, self).__init__(*args, **kw, style = wx.WANTS_CHARS) self.initBoard()