良い一日!
はじめに
Ruby / Tkバンドルについて話したことがあります。 今日は、「高速インターフェース」についての知識を継続します。 今回は
wxPythonについて説明し、
Pythonで記述します。
実際、
wxPythonは
wxWidgetsライブラリの単なるラッパーであり、これはクロスプラットフォームアプリケーションを作成できるグラフィカルツールキットを表します。
xWidgetsとは
wxWidgets (以前は
wxWindowsとして知られていました)は、特にグラフィカルユーザーインターフェイス(GUI)を構築するために、ソースコードレベルでクロスプラットフォームアプリケーションを開発するためのオープンソースツールのクロスプラットフォームライブラリです。
GUIを作成するだけではありません。 また、グラフィックイメージ、HTML、XMLドキュメント、アーカイブ、ファイルシステム、プロセス、印刷サブシステム、マルチメディア、ネットワーク、マルチスレッドを整理するためのクラス、デバッグ、ダンプの送信などのツールを操作するための一連のクラスがあります。
それでは始めましょう
さあ、始めましょう。 順番に始めましょう
-wxPythonを使用してアプリケーションを構築する基本原則を理解するために、
Hello、Worldを作成します。 ここで彼はあなたの前
に君主です。
import wx app = wx.App() wnd = wx.Frame(None, wx.ID_ANY, "I'm the title") wnd.Show(True) app.MainLoop()
ソースコードをダウンロードできます。
まず、アプリケーションを実行して、何が得られるかを見てみましょう。 すぐに言ってやった。
デブリーフィング
さて、このコードが何をするのかを理解する時が来ました。
オートミール、先生! import wx
ここではすべてが明らかです。 ここで、
wxPythonパッケージをインポートします。
app = wx.App()
ここで、プログラムのインスタンスを作成しています。このインスタンスは、後で起動されます。
wnd = wx.Frame(None, wx.ID_ANY, "I'm the title")
ここで少し停止してコードを確認する必要があると思います。実際、ここでフォームのインスタンスを作成します(用語
wxWidgetsではこのウィンドウ)。
指定されたパラメーターを見てみましょう。
- 親は最初のパラメーターです。 現時点では、彼はこれがプログラムのメインウィンドウであり、他から継承されないことを示しています。
- Idは、ウィンドウのシーケンス番号にすぎない識別子です。 ここでは、すべてを処理するwx.ID_ANYを指定するだけで、番号を手動で書き留める必要はありません。
- タイトル -コメントなし...
これはウィンドウのタイトルです 。
wnd.Show(True)
ここで、ウィンドウが表示されることを示します。
app.MainLoop()
そして最後に、プログラムを起動します。 それだけです...
構築を開始
既に
クラスリファレンスに精通しており、
wxPythonで利用可能なGUI要素を知っていることを前提としています。 全体論的で機能的なものを取り上げて書くことをお勧めします。 いいね ミニチュアテキストエディターを作成しましょう。
テキストフィールドを追加する
ご存じのとおり、
wxPythonのテキストフィールドは
TextCtrlクラスで表されます。 デフォルトでは、作成するテキストボックスは単一行です。 テキストは1行で記述されます。
これを修正して、値
TE_MULTILINEを持つ
スタイル属性を
TextCtrlオブジェクトに追加しましょう。 最初のテキストエディターのコードは次のようになります。
import wx class Window(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title = title, size = (300,250)) self.control = wx.TextCtrl(self, style = wx.TE_MULTILINE) self.Show(True) app = wx.App() wnd = Window(None, "pyNote") app.MainLoop()
ソースコードをダウンロードできます。
プログラムを実行して、すべてが機能することを確認しましょう。
注 :完全に忘れました。 私はあなたがPythonのOOPに精通していると仮定して、
自己または
クラスWindow(wx.Frame)が何であるかを説明するつもりはありません。
ウェイター、メニューください
私たちの編集者とあなたは少しドライに見えますよね? もちろん、メニューさえありません。 状況を修正してメニューを作成しましょう。 これは複雑なことではありません。
import wx class Window(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title = title, size = (300,250)) self.control = wx.TextCtrl(self, style = wx.TE_MULTILINE)
ソースコードをダウンロードできます。
そして、ここにメニューのあるエディターがあります:
イベント処理
しかし、それは何ですか? [終了]をクリックしても、プログラムは終了しません。 さて、かなり重要な段階に移りましょう。イベントを処理する方法をプログラムに教えるためです。 これを実現するにはいくつかの方法があります。 たとえば、次のように:
def __init__(self, parent, title): self.Bind(wx.EVT_MENU, self.OnAbout, aboutItem)
この式は、「About」項目をクリックすると、プログラムが
OnAbout関数を呼び出すことを
意味します。
さて、この関数を宣言しましょう。 次のようになります。
def OnAbout(self, e): dlg = wx.MessageDialog(self, "This is a mini editor keeping your text","About pyNote", wx.OK)
以上です。 「About」をクリックすると、次のメッセージが表示されます。
完全なコードを提供するわけではありませんが、私はそれを言うだけです...
ソースコードをダウンロードできます。
独白? 対話なし!
何らかのテキストエディタを作成していることを忘れないでください。 したがって、ファイルを開く/閉じるプロセスを整理する必要があります。
ChipとDale FileDialogが助けになります。 まず、ファイルを開くダイアログを呼び出すためのメニューに「開く」項目を作成する必要があり
ます (
OnOpen関数)。
次に、いくつかのパラメーターを使用して
FileDialogのインスタンスを作成する必要があります。 これですべてが表示されます。
import wx import os class Window(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title = title, size = (300,250)) self.control = wx.TextCtrl(self, style = wx.TE_MULTILINE) self.Show(True) menu = wx.Menu() openItem = menu.Append(wx.ID_ANY, "Open", "Push the button to open the file") aboutItem = menu.Append(wx.ID_ABOUT,"About","Push the button to get an information about this application") exitItem = menu.Append(wx.ID_EXIT,"Exit","Push the button to leave this application") bar = wx.MenuBar() bar.Append(menu,"File") self.SetMenuBar(bar) self.Bind(wx.EVT_MENU, self.OnOpen, openItem) self.Bind(wx.EVT_MENU, self.OnAbout, aboutItem) self.Bind(wx.EVT_MENU, self.OnExit, exitItem) def OnAbout(self, e): aboutDlg = wx.MessageDialog(self, "This is a mini editor keeping your text","About pyNote", wx.OK) aboutDlg.ShowModal() def OnOpen(self, e): self.dirname = " " openDlg = wx.FileDialog(self, "Choose a file to open", self.dirname, " ", "*.*", wx.OPEN)
ソースコードをダウンロードできます。
以上です。 作成を実行しましょう。 そして、注意...ドラムロール...「開く」をクリックして参照してください...
そしてファイルを開き......
おわりに
今のところすべてです。 今日は、最小限の労力で素晴らしいアプリケーションを作成できる
wxPythonという素晴らしいツールキットに出会いました。
何を読む
wxWidgets-ウィキペディア 。
はじめに-wxPyWiki 。
公式サイトwxPythonZetcodeのwxPython続く!