問題タブ [wxtextctrl]
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.
python - GUIをブロックせずに、wxpythonでインポートされたモジュールからstdoutをキャプチャし、textctrlに送信します
これには非常によく似た質問がたくさんありますが、私がやろうとしていることに特に当てはまる質問は見つかりません。
GUI を作成しているシミュレーション (SimPy で作成) があります。シミュレーションの主な出力は、'print' ステートメントからコンソールへのテキストです。今、最も簡単な方法は、別のモジュール GUI.py を作成し、シミュレーション プログラムをそこにインポートすることだと思いました。
すべての print ステートメントを GUI でキャプチャし、Textctrl 内に表示する必要があります。ここには、次の行に沿って数え切れないほどの例があります。
また、「Go」ボタンからシミュレーションを開始しています。
これはすべて正常に動作し、シミュレーション モジュールからの出力は TextCtrl によってキャプチャされますが、GUI がロックされて応答しなくなります。アクセスできるようにする必要があります (少なくとも [停止] ボタンが必要です)。ここで行った新しいスレッドの作成が失敗した試みであるかどうかはわかりませんが、このプロセスのある段階で新しいスレッドが必要になると思います。
人々は wx.CallAfter の使用を提案していますが、インポートされたモジュールが wx を認識していないことを考えると、どうすればよいかわかりません。また、シミュレーション アーキテクチャ全体を現実的に調べて、すべての print ステートメントを wx に変更することもできません。インポートされたシミュレーション プログラム内からシェルをキャプチャしようとすると、プログラムがクラッシュします。
これをどのように達成するのが最善かについて、誰かアイデアはありますか? したがって、私が本当に必要としているのは、すべてのコンソール テキストが TextCtrl によってキャプチャされ、GUI の応答性が維持され、すべてのテキストがインポートされたモジュールからのみ取得されることだけです。
(また、停止ボタンに関する二次的な質問 - シミュレーション スレッドを単に強制終了するのは悪い形式ですか?)
ありがとう、
ダンカン
python - Python wxTextCtrlは、タブキーを押してテキストを4スペース移動しますか?
私は wxTextCtrl を持っていて、カーソルをタブキーの下に 4 スペース移動させます。しかし、何も入力していない場合、タブを押してもカーソルは移動せず、テキストも移動しません。
カーソルの前に何も入力せず、カーソルの前にテキストを入力していなくても、誰かがカーソルを動かすのを手伝ってくれたら。
また、特定のキーワードを入力すると色が変わるようにしたいと考えています。誰かがそれを手伝ってくれるなら、私はとても感謝しています。
python - TextCtrlにキーワードを入力すると、その単語の色が変わるwxPython
私はwxTextCtrlを持っていますが、特定のキーワードを入力するときに、単語の入力が終了するとキーワードの色が変わるようにしたいと思います。
c++ - wxTextCtrl で挿入ポイントを設定する際の問題
wxWidgets (バージョン 2.8.12) にカスタム ウィジェットを実装しようとしています。基本的には、変更された単一行の wxTextCtrl です。スペースで区切られた 8 桁の 16 進数の 2 つのセットで構成されるテキスト入力を受け取り、コントロールがそのスペースを自動的に処理するようにします。たとえば、ユーザーが 1 ~ 8 を 2 回入力した場合 (スペース バーを押す必要はありません)、結果のテキスト コントロールの内容は次のようになります。
ユーザーが最初の '3' の後にカーソルを置き、バックスペースを 3 回押すと、編集時にそのスペースが自動的に調整され、次のようになります。
基本的に、スペースはユーザーに対して完全に透過的である必要があります。
ほとんどの場合、これで完了です。コードをここに貼り付けるには少し長いので、Gist を次に示します:
https://gist.github.com/036c1a90f77521a8653c
ただし、修正できないバグが 1 つあります。9 桁目を入力すると、自動的にスペースが挿入されますが、カーソルはスペースの直後、9 桁目のすぐ後ろで終了します。
wxTextCtrl::SetInsertionPoint()
使用しようとするすべての試みwxTextCtrl::SetInsertionPointEnd()
は成功を収めていないため、誰かが私が間違っていることを指摘できることを期待して、最後の手段としてここに来ました.
このウィジェットのテストを支援するために、ウィジェットを含む非常に簡単で汚いアプリケーションを用意しました:
https://gist.github.com/cf3219eb47e2bfe85b38
または、ここをクリックしてコードを tarball としてダウンロードします:
https://gist. github.com/gists/cf3219eb47e2bfe85b38/download
make
実行して、コードを一度にクリーンアップ、コンパイル、実行するだけです。もちろん、コンパイルするには wxWidgets 2.8.12 がインストールされている必要があります。
このウィジェットの他のほとんどすべての側面は、私が望んでいるように正確に機能します。これが機能しないのは、この 1 つの非常に大きな問題だけです。ただし、気になる小さなバグが 1 つあります。大きな問題ではありませんが、いつか修正したいと考えています。
選択範囲を削除しても、文字を削除してもスペースは自動的に処理されますが、削除した選択範囲が 9 桁目で終わる場合は、削除後にコントロールの内容が再フォーマットされません。
誰かがその原因を特定できれば幸いですが、挿入ポイントの問題は明らかに私の主な関心事です。
助けてくれる人に感謝します。できる限り多くの情報と説明を提供しようとしました。何か見落としがあればお知らせください。
wxpython - 複数行の任意の行を置き換える最良の方法 wxTextCtrl
GetLineText は特定の行を取得するのに最適ですが、対応する SetLineText はありません。存在する場合、それが私が探しているものです。見えないので、これを処理する最良の方法は何ですか?
注: パフォーマンスが心配なので、毎回すべてのテキストを置き換えたくありません。私の使用例では、別のコントロールで文字が変更されるたびに行 (または行の範囲) を置き換える必要があります。したがって、 SetValue を呼び出すソリューションは、私が探しているものではありません。
python - wxPython でテキストのサイズを見つける正しい方法
wxPython で開発中のアプリケーションがあります。アプリケーションの一部は、グリッド内に多数の TextCtrls を作成して、任意の大規模な人のリストの曜日ごとに 4 文字のコードを入力します。
私はそれを機能させることができましたが、何か厄介なことをしなければなりません。具体的には、テキストのビットの大きさ (ピクセル単位) を把握する良い方法を見つけられなかったので、最大 (4 文字) のコードにちょうど収まるように TextCtrls のサイズを推測する必要があります。私の懸念は、テキストのサイズが変更された場合、またはアプリケーションが MSW 以外に移植された場合、私のレイアウトが壊れる可能性があることです。
私が見つけた解決策は、StaticText オブジェクトを作成し、4 つの大きな文字で埋め、そのサイズを取得してから、.Destroy() することでした。これは機能しますが、実際には厄介なソリューションのようです。任意のテキスト文字列が TextCtrl でどれだけ大きくなるかを把握するためのより直接的な方法を誰かが持っていますか? 私はドキュメントを調べましたが、何も見つけることができませんでした。また、私がやろうとしていることを正確に行う例も見たことがありません。
小さなコード サンプル (テスト メソッドを示す) は次のとおりです。
(+ (4,4) の部分は、TextCtrl のクライアント領域にカーソルと小さな境界線を収容するために、コントロールにもう少しスペースを追加することです。これは、私が直接やりたくないもう 1 つのことです。)
python - wxPython wx.TextCtrl タブの幅
wx.TextCtrl でタブ幅を 8 ではなく 4 に設定するには?
不可能な場合、wx.TextCtrl の代わりに使用する代替手段は何ですか?
注:
mytxtCtrl.setDefaultStyle(wx.TextAttr().setTabs([...]) が機能しません!
python - wxTextCtrlでテキストを動的に整列させる方法は?
wxTextCtrl
選択したテキストを左または右に揃えたいのですが。これは私のプログラム全体のコードです。テキストを右に揃え、ボタンをクリックすると左に揃える必要があります。
python - Wx TxtCtrl でエラーが発生する
私はマラヤーラム語のテキストエディターに取り組んでいます。ボタンのクリック時に WxPython のテキスト コントロールを使用して、選択したテキストを太字にする必要があります。動作環境は Ubuntu 10.04 と WxPython 2.8 です。
これが私のコードです:
エラー