差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| python:wxpython [2021/06/11 21:15] – 以前のリビジョンを復元 (2021/06/11 21:03) ともやん | python:wxpython [2021/06/12 12:32] (現在) – [distutils.msvc9compiler の find_vcvarsall() の実装 (Python 3.8)] ともやん | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | |||
| ====== wxPython ====== | ====== wxPython ====== | ||
| {{python: | {{python: | ||
| 行 16: | 行 15: | ||
| **wxPython Phoenix 4**系\\ | **wxPython Phoenix 4**系\\ | ||
| <code powershell> | <code powershell> | ||
| - | PS > pip install wxpython | + | $ pip install wxpython |
| </ | </ | ||
| <WRAP prewrap 100% #result> | <WRAP prewrap 100% #result> | ||
| < | < | ||
| Collecting wxpython | Collecting wxpython | ||
| - | Downloading wxPython-4.0.7.post2-cp38-cp38-win_amd64.whl (22.9 MB) | + | Downloading wxPython-4.1.1-cp39-cp39-win_amd64.whl (18.1 MB) |
| - | | + | |
| Collecting six | Collecting six | ||
| - | Downloading six-1.14.0-py2.py3-none-any.whl (10 kB) | + | Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) |
| - | Collecting numpy; python_version >= " | + | |
| - | Downloading numpy-1.18.1-cp38-cp38-win_amd64.whl (12.8 MB) | + | |
| - | | + | |
| Collecting pillow | Collecting pillow | ||
| - | Downloading Pillow-7.0.0-cp38-cp38-win_amd64.whl (2.0 MB) | + | Downloading Pillow-8.2.0-cp39-cp39-win_amd64.whl (2.2 MB) |
| - | | + | |
| - | Installing collected packages: six, numpy, pillow, wxpython | + | Collecting numpy; python_version >= " |
| - | Successfully installed numpy-1.18.1 pillow-7.0.0 six-1.14.0 wxpython-4.0.7.post2 | + | Downloading numpy-1.20.3-cp39-cp39-win_amd64.whl (13.7 MB) |
| + | | ||
| + | Installing collected packages: six, pillow, numpy, wxpython | ||
| + | Successfully installed numpy-1.20.3 pillow-8.2.0 six-1.16.0 wxpython-4.1.1 | ||
| </ | </ | ||
| </ | </ | ||
| 行 186: | 行 185: | ||
| ==== distutils.msvccompiler の get_build_version() の実装 (Python 3.8) ==== | ==== distutils.msvccompiler の get_build_version() の実装 (Python 3.8) ==== | ||
| - | <WRAP prewrap 100% #result> | + | <WRAP prewrap 100% #result_long> |
| <code python> | <code python> | ||
| def get_build_version(): | def get_build_version(): | ||
| 行 239: | 行 238: | ||
| ==== distutils.msvc9compiler の find_vcvarsall() の実装 (Python 3.8) ==== | ==== distutils.msvc9compiler の find_vcvarsall() の実装 (Python 3.8) ==== | ||
| - | <WRAP prewrap 100% #result> | + | <WRAP prewrap 100% #result_long> |
| <code python> | <code python> | ||
| def find_vcvarsall(version): | def find_vcvarsall(version): | ||
| 行 278: | 行 277: | ||
| </ | </ | ||
| - | ===== 最小のwxPythonアプリケーション ===== | + | ===== 最小の wxPython アプリケーション ===== |
| - | UTF-8で保存すること。 | + | <wrap em> |
| + | |||
| + | ==== wx.Frame サンプル ==== | ||
| + | {{: | ||
| <WRAP prewrap 100% # | <WRAP prewrap 100% # | ||
| <code python PyWxHelloMain.py> | <code python PyWxHelloMain.py> | ||
| 行 285: | 行 288: | ||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
| import wx | import wx | ||
| + | |||
| # PyWxHelloFrame クラス(wxFrame から派生) | # PyWxHelloFrame クラス(wxFrame から派生) | ||
| class PyWxHelloFrame(wx.Frame): | class PyWxHelloFrame(wx.Frame): | ||
| 行 293: | 行 296: | ||
| panel = wx.Panel(self, | panel = wx.Panel(self, | ||
| # Panel に [閉じる] ボタンを追加 | # Panel に [閉じる] ボタンを追加 | ||
| - | btnClose = wx.Button(panel, | + | btnClose = wx.Button(panel, |
| # ボタンの位置を設定 | # ボタンの位置を設定 | ||
| - | btnClose.SetPosition((50, 35)) | + | btnClose.SetPosition((100, 35)) |
| # クリックイベントにイベントハンドラをバインド | # クリックイベントにイベントハンドラをバインド | ||
| self.Bind(wx.EVT_BUTTON, | self.Bind(wx.EVT_BUTTON, | ||
| + | |||
| # [閉じる] ボタンクリック時 | # [閉じる] ボタンクリック時 | ||
| def btnClose_Click(self, | def btnClose_Click(self, | ||
| # 閉じる | # 閉じる | ||
| self.Close(True) | self.Close(True) | ||
| + | |||
| # PyWxHelloApp クラス(wxApp から派生) | # PyWxHelloApp クラス(wxApp から派生) | ||
| class PyWxHelloApp(wx.App): | class PyWxHelloApp(wx.App): | ||
| def OnInit(self): | def OnInit(self): | ||
| # PyWxHelloFrame クラスを生成(タイトル、サイズを指定) | # PyWxHelloFrame クラスを生成(タイトル、サイズを指定) | ||
| - | mainFrame = PyWxHelloFrame(None, | + | mainFrame = PyWxHelloFrame(None, |
| # トップウインドウとして設定 | # トップウインドウとして設定 | ||
| self.SetTopWindow(mainFrame) | self.SetTopWindow(mainFrame) | ||
| 行 315: | 行 318: | ||
| # 正常終了 | # 正常終了 | ||
| return True | return True | ||
| + | |||
| # メイン処理 | # メイン処理 | ||
| def main(): | def main(): | ||
| 行 322: | 行 325: | ||
| # メインループを開始 | # メインループを開始 | ||
| app.MainLoop() | app.MainLoop() | ||
| + | |||
| # スクリプト起動時にmain()を実行 | # スクリプト起動時にmain()を実行 | ||
| if __name__ == " | if __name__ == " | ||
| 行 328: | 行 331: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | サンプルアプリケーションの実行。\\ | ||
| + | <WRAP prewrap 100%> | ||
| + | < | ||
| + | $ python PyWxHelloMain.py | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== wx.html2.WebView サンプル ==== | ||
| + | {{: | ||
| <WRAP prewrap 100% # | <WRAP prewrap 100% # | ||
| 行 335: | 行 348: | ||
| import wx | import wx | ||
| import wx.html2 | import wx.html2 | ||
| - | + | ||
| - | # PyWxWebViewDialog | + | # PyWxWebViewDialog (wxDialog ) |
| class PyWxWebViewDialog(wx.Dialog): | class PyWxWebViewDialog(wx.Dialog): | ||
| def __init__(self, | def __init__(self, | ||
| wx.Dialog.__init__(self, | wx.Dialog.__init__(self, | ||
| - | # BoxSizer | + | # BoxSizer |
| sizer = wx.BoxSizer(wx.VERTICAL) | sizer = wx.BoxSizer(wx.VERTICAL) | ||
| - | # WebView | + | # WebView |
| - | self.browser = wx.html2.WebView.New(self) | + | self.browser = wx.html2.WebView.New(self, backend=wx.html2.WebViewBackendIE) |
| - | # BoxSizer | + | # |
| + | # BoxSizer | ||
| sizer.Add(self.browser, | sizer.Add(self.browser, | ||
| - | # Dialog | + | # Dialog |
| self.SetSizer(sizer) | self.SetSizer(sizer) | ||
| - | # Dialog | + | # Dialog |
| self.SetSize((1024, | self.SetSize((1024, | ||
| - | # Dialog | + | # Dialog |
| self.SetMinSize((600, | self.SetMinSize((600, | ||
| - | # Dialog | + | # Dialog |
| self.Center() | self.Center() | ||
| + | |||
| if __name__ == ' | if __name__ == ' | ||
| - | # wxApp クラスを生成 | + | # wxApp |
| app = wx.App() | app = wx.App() | ||
| - | # PyWxWebViewDialog | + | # PyWxWebViewDialog |
| dialog = PyWxWebViewDialog(None, | dialog = PyWxWebViewDialog(None, | ||
| - | # WebView | + | # WebView |
| dialog.browser.LoadURL(' | dialog.browser.LoadURL(' | ||
| - | # Dialog | + | # Dialog |
| dialog.Show() | dialog.Show() | ||
| - | # メインループを開始 | + | # |
| app.MainLoop() | app.MainLoop() | ||
| </ | </ | ||
| + | </ | ||
| + | |||
| + | サンプルアプリケーションの実行。\\ | ||
| + | <WRAP prewrap 100%> | ||
| + | < | ||
| + | $ python PyWxWebView.py</ | ||
| </ | </ | ||
| 行 430: | 行 450: | ||
| [[https:// | [[https:// | ||
| [[https:// | [[https:// | ||
| + | |||
| + | ==== 付録 ==== | ||
| + | [[tw> | ||
| + | |||