問題タブ [wxwidgets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3487 参照

python - 外部 GUI ライブラリを使用して Autodesk Maya でユーザ インタフェースを作成する

Autodesk Maya でツールを開発しています。私が構築するツールの多くには、アニメーターやモデラーが使用するためのシンプルなウィンドウ GUI があります。これらの GUI には、多くの場合、基本的なウィンドウで通常表示されると予想されるものが含まれています。ラベル、リスト、メニュー、ボタン、テキストフィールドなど。ただし、利用可能なツールで構築できる UI の複雑さには制限があり、特に利用可能なウィジェットの種類には制限があります。

ListView (グリッド)、ツリーなど、より高度な wxPython ウィジェットの使用に興味があります。これには、完全な wxFrame (ウィンドウ) を使用して UI 全体を表示することが含まれます。これは、基本的に、ウィンドウがもはや存在しないことを意味します。マヤと結ばれます。大した問題ではありませんが、Maya が最小化されている場合、ウィンドウがそれに追随しません。

テストとして tkinter を使用して以前にこのようなことを試したことがありますが、独自のスレッドで実行するには MainLoop が必要であることがわかりました。これは論理的ですが、私の場合、Maya 自体のスレッドと競合するため、基本的にウィンドウが閉じられるまで Maya がハングアップします。これは、MEL であれ Python であれ、Maya がすべてのスクリプトをメインの Maya GUI が共有する単一のスレッドで実行するためです。これは、別のスクリプトが同じオブジェクトに対して作業を行おうとしているときに、あるスクリプトがオブジェクトを削除することを防ぐためです。

wxPython には、これと同じ「メインループ」方法論があります。Maya 内で機能するように回避する方法があるかどうか疑問に思っていますか?

0 投票する
1 に答える
1760 参照

udp - wxWidgets で UDP ブロードキャスト メッセージを送信する

Mac/Win/Linux で wxWidgets 2.8.9 を使用して、UDP ブロードキャスト メッセージを送信するにはどうすればよいですか? 受信は wxDatagramSocket を使用して動作していますが、UDP ブロードキャスト メッセージを送信する方法がわかりません。

0 投票する
2 に答える
1846 参照

wxwidgets - wxWidgets での通知?

私は C++/wxWidgets を使用して小さなアプリケーションに取り組んでおり、受信した UDP データグラムなどに基づいて GUI のいくつかの部分を更新する必要があります。より具体的には、セカンダリ スレッドは、ネットワーク内で利用可能な「クライアント」のリストを保持しようとします (これは出入りする可能性があります)。たとえば、UI の対応するコンボボックスを更新して、変更を反映する必要があります。

ドキュメントには、この種のことには E​​VT_UPDATE_UI が適切な選択であることが記載されています。まばらなドキュメントから理解できる限り、このイベントはシステムによって自動的に送信され、UI の変更を支援するためのサポートを提供します。

ただし、より直接的なアプローチを使用する方が快適だと思います。たとえば、特定のイベントで通知 (イベントまたはコールバック) を受信するためにウィンドウ オブジェクトを登録/サブスクライブし、必要に応じてコードの別の部分がこれらの通知を送信する場合です。独自のコードを使用して C++ でこれを行うこともできますが、wxWidgets が既にそのようなものをサポートしている場合は、それを利用する必要があると思います。しかし、私はその点で何も見つけていません。

質問は、wxWidgets はこの種の通知システム (または同様の代替手段) をサポートしていますか? それとも、自分でコーディングするのが最善でしょうか?

0 投票する
5 に答える
1993 参照

python - MainLoop 例外をキャッチして MessageDialogs に表示する

外部構成ファイルに依存する wxPython アプリケーションがあります。構成エラーがある場合に表示されるわかりやすいメッセージ ダイアログを提供したいと考えています。app.MainLoop() 呼び出しを try/except ステートメントでラップすることで、これを機能させようとしました。

以下のコードは、私の MainWindow フレーム クラスの init コードに対して機能しますが、MainLoop 内で発生する例外をキャッチしません。これらの例外をキャッチするにはどうすればよいですか?

wx.App クラスでオーバーライドできる OnExceptionInMainLoop メソッドについての言及を読んだことがありますが、wx.App にはその名前のメソッドがないように見えるため、読んだソースは古くなっている (2004 年) に違いありません。

編集:

メインループ中に未処理の例外をキャッチできるようにする必要があります。これにより、それらをさらに処理してエラー ダイアログに表示し、黙って渡したり、アプリを終了したりできなくなります。

sys.excepthook ソリューションはレベルが低すぎて、wxPython のメインループ スレッドでは適切に機能しません。他の回答へのリンクは同じ try/except を実行しますが、メインループをラップすることは機能しませんが、これは wxPython が app/ui の別のスレッドを生成するためです。

0 投票する
3 に答える
3820 参照

python - wxツールバーのボタンを大きくするには?

wx.Toolbar があり、ボタンを大きくしたいと思います。私は検索しましたが、これを行う方法に関する具体的なドキュメントが見つからないようです。

また、これがプラットフォーム間でどの程度うまく変換されるのかも気になります。OSX のボタンとアイコンはどうなりますか?

0 投票する
5 に答える
30492 参照

python - wxPython に最適なリアルタイム プロット ウィジェットは何ですか?

Python と wxPython を使用して、1 つまたは 2 つの曲線と 1 秒あたり最大 50 サンプルのリアルタイム グラフを表示したいと思います。ウィジェットは、Win32 と Linux の両方のプラットフォームをサポートする必要があります。

どんなヒントでも大歓迎です。

追加するために編集:

ディスプレイを 50 fps で更新する必要はありませんが、両方の曲線に最大 50 サンプルのデータを表示する必要があり、ディスプレイの適切な更新レート (5..10 fps で問題ありません) が必要です。

追加するために編集:

プロジェクトで mathplotlib を使用して成功しました。その後、他のプロジェクト用に wx.lib.plot に落ち着きました。これは、よりシンプルであることがわかりましたが、やや使いやすく、CPU サイクルの消費が少ないことがわかりました。wx.lib は標準の wxPython ディストリビューションの一部として提供されるため、特に使いやすいです。

0 投票する
1 に答える
550 参照

wxpython - wxWidgets のウィンドウ オーバーフロー ウィジェット

Linux の wxPython でこのデザインを実装する方法を探しています...
ボタン付きのツールバーがあり、ボタンを押すとポップアップが表示され、ツールバーの拡張 (メニューなど) を模倣します。ポップアップには、2 列のラジオ ボタン (たとえば 2x5) とテキスト ボックスが表示されるはずです... 私の主な問題は、ツールバーの高さが小さいため、ポップアップがウィンドウ/クライアント領域の境界からはみ出さなければならないことです..

私は2つの可能な実装を考えました:

  • メニューはクライアント領域の外に描画できるため、wxMenu を使用します。レイアウトの可能性が私の目標に対して十分に柔軟ではないのではないかと心配しています
  • シェイプされたフレームを使用。ボタンを押すと、フレームが再形成され、要求に応じて必要なウィジェットが描画されます。

私の質問は次のとおりです。何かが足りない/何かが間違っていますか? :)これはまったく実行可能ですか?

0 投票する
7 に答える
20544 参照

python - Qt は現在 LGPL の下でリリースされていますが、wxWidgets よりも Qt をお勧めしますか?

ライセンス上の理由もあって、私は wxWidgets のかなりのヘビー ユーザーです。

  • Qt が LGPL の下でリリースされるという最近の発表を踏まえて、wxWidgets の将来をどのように見ていますか?
  • wxwidget は今でも新しいプロジェクトに適した技術的な選択肢だと思いますか? それとも、Qt が事実上の標準になるため、Qt を採用することをお勧めしますか。
  • また、これが最も一般的なスクリプト言語 (PyQt、wxPython、wxRuby など) とのバインディングに与える可能性のある影響についても興味があります。プロ級のデザイナーがいるのにwxPythonがいないのに、なぜPyQtがあまり使われていないのでしょうか?

関連している:

https://stackoverflow.com/questions/443546/qt-goes-lgpl-on-windows-is-it-good-enough-to-use-instead-of-mfc

0 投票する
2 に答える
705 参照

event-handling - 開いている wx.ComboCtrl でキーストロークを受け取る

この質問から来て、ラジオボタンの束を持つパネルで作られたカスタムポップアップを備えた wxComboCtrl があります。私の問題は、イベントがパネル自体によって処理されるため、ポップアップを開いたときにコンボがキーストロークを取得しないことです。 .. これらの KeyEvents をコンボの textctrl にリダイレクトしたいのですが、それを機能させる方法が見つかりません :/
間違った方向に進んでいますか? ユーザーがキーを押したときに textctrl 値を手動で処理する必要がありますか? 私はそれが少し面倒だと思います..おそらくtextctrlはすでにそれらのイベントを処理する方法を知っているので..

これが私のテストケース(Linux上のwxPython 2.8)です。「on_key」メソッドが原因であるはずです:

編集:
同じトピックに関するこれらの (未解決の) ディスカッションを見つけまし

0 投票する
2 に答える
1294 参照

python - wx.StaticBox で StaticText アイテムが消える

垂直サイザーで staticbox と staticboxsizer を作成しています。私にとってはすべてうまくいきますが、顧客の環境ではうまくいきません。

staticbox 内のすべてが表示されますが、ラベルのみが表示されます。以下のスニペットは、staticboxsizer の作成方法を示しています。

comp.MinMaxLabel_* は、wx.StaticText(label='blah') を返します。派手なものはなく、単なるラッパーです。これは、他のサイザーの他の ~400 個のアイテムに対して正常に機能します。ただし、StaticBox または StaticBoxSizers では、顧客のセットアップで StaticText が表示されません。

通常、私の設定では次のように表示されます: 代替テキスト http://img152.imageshack.us/img152/8758/normalnu9.jpg

これは私が顧客のセットアップで得たものです: 代替テキスト http://img258.imageshack.us/img258/2351/problematiczo2.jpg

どちらのセットアップも同じ wxpython バージョン 2.8.9.1 を使用しています。しかし、私の環境では 2.8.* も表示されます。助言がありますか?