問題タブ [ncurses]
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.
c++ - stdscr (ncurses) 使用時のリンカー警告
さて、pdcurses で stdscr を使用しようとすると、次の警告が表示されます。
これを修正するにはどうすればよいですか? それらは単なる警告ですが、プログラムを実行するとクラッシュするため、おそらく何か関係があります。特に、クラッシュする行がstdscrを使用する行であるという事実を考慮すると...
c - ncurses を使用してディスプレイ内のテキストを取得する
ncurses の変数に出力された文字を戻す方法はありますか?
私がそうしているとしましょう:
それから私はできるようにしたい:
画面上のすべての文字を変数に戻す関数が必要です。scr_dump get は閉じますが、出力形式は判読できません。
perl - Perlを使ったcursesアプリケーションの作成に関する優れた本はどこにありますか?
私は呪いのアプリを書くための良い方法を探していました。これまでのところ、Curses::UIとCurses::Toolkitを見つけましたが、どれも私が望むほど男性的ではありません。今、私はCurses自体だけでアプリを作成し、その過程でそれについて何かを学びたいと思っています。良い本/チュートリアルなどはありますか?それは私にCursesとPerlでアプリを書くことの根性を教えてくれるでしょうか?(Cのような別の言語で書かれていてもかまいません。読んだものをPerlに翻訳できる限り、問題ありません!)
ありがとうございました、
c - ncursesの有無にかかわらず、Linuxコンソールでキーボードの繰り返し遅延を変更するにはどうすればよいですか?
ncursesとCを使用して小さなポンクローンを作成しています。プレーヤーがパドルを動かしやすくするために、キーボードの繰り返し遅延を設定する方法を見つける必要があります。そうしないと、ダウンキーを押して約50ミリ秒待機します。キーが繰り返され始めるまで。
ncursesのマニュアルページとドキュメントを確認しましたが、キーボードの繰り返し遅延を変更するための参照が見つからないようです。また、ゲームが要求するのは少し奇妙なので、プログラムkbdrateは私の使用には適していません。ルートとして実行されます。
ありがとう、エマニュエル
python - ncurses と黒地に白
カラー モードの場合、黒地に白を curses で動作させることができないようです。を呼び出さないとstart_color
、黒地に白になります。を呼び出すとすぐにstart_color
、物事は黒地にグレーで出力され始めます。
このスクリプトを実行すると:
...きれいな色がたくさん出てくるはずです。私が欲しくて手に入れることができないのは、最後の行です:「...そしてこれは正常です。」カラー ペア 0 を要求するか、COLOR_WHITE を要求すると、COLOR_BLACK はスクリプトから明るくない #37 を取得します。
参考までに、これは Gnome ターミナルに表示されるものです。
http://rpi.edu/~wellir/random/colors.png
私は Python で (curses ライブラリを使用して) プログラミングしているので、コードは次のようになります。
...これで 37、37-ブライト、37 になります。
c - C - ncurses ui から外部プログラムに行き、戻る
ncurses に情報を表示し、vim を開いて (を使用してsystem
) ユーザーがファイルを編集できるようにするプログラムを作成しています。ただし、vim が終了すると、ncurses の画面は再描画されません。 何もしないと、美しいメニューが完全に破棄されますrefresh
。wrefresh
そのため、コマンドラインに送り返されます。メニュー項目に移動すると、メニュー項目が再描画されます。少し移動すると、次のようになります。
ご覧のとおり、私はもうきれいな ncurses 環境ではありません。
ncurses を完全に破棄して再度設定することはできますが、(メニュー位置などの) いくつかのものは保持されません。
これを正しく行うにはどうすればよいですか?外部プログラムを呼び出して、ここに優雅に戻るより良い方法はありますか?
c - def_prog_mode と reset_prog_mode、refresh の後に curses キーボードが機能しない
ncurses UI からsystem
呼び出しを介してエディターに移動し、再び戻ろうとしています。ここにいる数人のフレンドリーなプログラマーの助けを借りて、ユーザーがエディターから戻った後にターミナル UI の使用方法def_prog_mode
と状態を復元する方法を学びました。refresh
したがって、私のコードは次のようになります。
これにより、UI が非常にうまく復元されますが、その後、プログラムがキーボード入力を受け付けなくなったり、応答しなくなったりすることがよくあります。これがどのような状況で発生するかはわかりませんが、ほとんどの場合発生します。
これはここの問題に似ているようですが、説明されている修正 (再呼び出しkeypad
) は機能していないようです。
cursor - ncursesカーソルとスレッドのヘルプが必要
ncursesを使用して、Cでテキストベースのクライアントを記述しています。プログラムのメインループは、キーが押されたことが検出されるまでブロックし、それを処理して、別のキーが押されるのを待ち続けます。
サーバーからの入力を(selectを使用して)ブロックする単一のスレッドを起動し(以下に投稿)、サーバーからの入力を受信すると、それをチャットログバッファーに追加し、バッファーを画面に出力します。それは完璧に動作します。
ncursesはスレッドセーフではないことは知っていますが、スレッドについての私の理解は、一度に1つのスレッドだけがncursesを呼び出していることを100%確認している限り、正常に機能するということです。
私の問題はカーソル位置にあります。
この行で変更され、move(height+1, curx);
どの値を渡しても、ncursesは呼び出しを完全に無視し、カーソルを別の位置に置きます。私はそれに影響を与えることができないようです。
問題をさらに説明するために、私のメインスレッド(キープレスループ)では、同じミューテックスブロッキングを使用しています。コードのこれらのセクションでカーソルが更新されると、計画どおりに機能します。以下の受信スレッドから更新される場合、カーソル呼び出しは無視されます。
何か案は?
receive thread
terminal - Ncurses で倍角文字を印刷する
多くの端末エミュレーター (xterm、Konsole) は、倍角文字をサポートしています。Ncurses はこれをサポートしておらず、私の知る限り、ncurses はエスケープ文字を出力しません (\033 はエスケープされず、平文で出力されます)。
ncurses アプリケーションで 2 倍の大きさの文字を印刷することはまったく可能ですか?
c - ncurses をプログラムに静的にリンクする
ncurses を自分のプログラムの 1 つに静的にリンクする際に問題が発生しています
これは非常に単純なサンプル プログラムです。
でコンパイルすると
次のエラーが表示されます。
なぜこれが機能しないのか、少し混乱しています。ここで何が欠けていますか?