2009-05-27 18 views
1

私がWxPythonで見つけたチュートリアルはすべてLinuxの例を使用していますが、いくつかの細部に違いがあるようです。WxPythonのWindowsとLinuxの違い

たとえば、ウィジェットの背後にあるパネルは、背景を正しく表示するために必須です。さらに、チュートリアルでよく見えるいくつかの例は、私のコンピュータでは機能しません。

重要な違いがあるのか​​、それともWindowsに焦点を当てた良いチュートリアルがあるのでしょうか?

EDIT:私はこのことを思い出し:wx.Appをサブクラス化する際のOnInit()メソッドは、むしろ複数の論理__init__(よりも、必要とされる理由は誰もが)知っていますか?

答えて

2

私は小さなGUIで奇妙なことに気付きましたが、私はしばらく前に書きましたが、詳細にしようとしたのはかなり遠い記憶です。いくつか具体的な例がありますか?私たちはそれらを改善してバグを修正できるのでしょうか?

the official wxPython tutorialsを試しましたか? ...もっと具体的なものを後にしていたのですか?

r.e. - wx.Appをサブクラス化する(つまり、PythonではなくwxWidgetsのために)サブクラス化するため、OnInit()を使用し、wxPythonの実装は可能な限りwxWidgetsのラッパーにする必要があります。

[編集]ゼットコードはa fairly lengthy tutorial on wxPythonです。私はそれをすべて見ていないが、何か助けになるかもしれない?

wxWidgets::wxApp::OnInit()ドキュメントはかなり明確である:

これは、アプリケーションによって提供されている必要があり、通常は任意でwxApp :: SetTopWindowを呼び出して、アプリケーションのメインウィンドウを作成します。この関数がtrueを返す場合、OnExitを使用してここで初期化されたものをクリーンアップすることができます。

wxWidgetsが共通のインターフェイスを提供しなかった場合、C++(コンストラクタを使用)ではPythonの__init__(self,...)とは異なる処理を行う必要があります。言語に依存しない初期化を使用すると、wxWidgetsのポートを他の言語に似せることができます。 :-)

+0

すべてのオブジェクト指向言語にコンストラクタがあるので、なぜOnInit()が必要ですか? – Javier

+0

ところで、そのチュートリアルは非常に短いです。 – Javier

+0

これは私が話していたチュートリアルの1つですが、とにかく感謝しています。それはまだ有用です。 – Javier

0

EDIT:私はこのことを思い出し:wx.Appをサブクラス化する際のOnInit()メソッドは、むしろ複数の論理__init__()よりも、必要とされる理由は誰もが知っていますか?

私はOnInit()を対称に使用しています:OnExit()メソッドもあります。

編集:私は間違っているかもしれませんが、私はOnInit()が必要と思わないです。

+1

ドキュメントには必要なことが示唆されています... –

0

多くの小さな違いがありますが、それらのすべてを覚えているわけではありません。

1)レイアウトが多少異なる場合があります。たとえば、あるOSのウィンドウに完全に収まらないことがあります。私はこれの理由を調査していないが、事柄を整理するためにサイザーではなくポジションを使うときに最も頻繁に起こる。

2)Windowsで明示的にRefreshを呼び出す必要があります。たとえば、あるパネルを別のパネルの上に置くと、Refreshを呼び出すまでWindowsの上パネルが表示されません。

私は一般的に、Linuxでアプリケーションを作成してWindowsで実行しています。これは妥当なアプローチですが、OSの切り替え後に何かがゲートから完全にまっすぐに実行されるのはまれです。

+0

ドキュメンテーションでは、フレームには1つのウィジェットしか含まれていないと明示的に記載されているため、さらにパネルを追加する必要があります。 レイアウトに関しては、ほとんどの「最近の」ウィンドウイングAPIでは、フォームを準自動レイアウトするためにサイザーを使用することをお勧めしているようです。アイデアに慣れると、実際には非常に便利です。ユーザーが持つ可能性のある広範囲の画面サイズをサポートするための作業が少ないことを意味します。どのサイズを最適化しても、ほとんどのユーザーは異なるフォントサイズとサイズのウィンドウを使い分けるので、細心の注意が無駄になります。 – CyberFonic

関連する問題