0

私はプログラムを書いていcursesますが、プログラムを開いたままにして他の端末タブをしばらく使用すると、プログラムを再度使用すると、何かが更新されて何かが消えているように見えることがあります...できませんいつ、どのように起こるのかまだよくわからないので、写真やスクリーンショットを見せてください... これを防ぐ方法や修正する方法はありますか?

4

1 に答える 1

0

screen.getchから読み取り、stdscr(画面上の変更により)リフレッシュすると、 が上書きされますboxespython curses を使用してページごとまたは行ごとbox.getchにスクロールしたように、それを に変更できます

のマニュアルページはgetch言う

ウィンドウがパッドではなく、最後に wrefreshを呼び出してから移動または変更されている場合、 別の文字が読み取られる前にwrefresh が呼び出されます。

使用したサンプルプログラムで

screen.keypad( 1 )

これは、標準画面からの読み取りにのみ適用されます。boxウィンドウから読み取る場合は、キーパッドフラグを設定する必要があります。

box.keypad( 1 )

のマニュアルページはkeypad言う

キーパッドのデフォルト値は FALSE です

つまり、ウィンドウのデフォルトです。

複数のウィンドウを持つ curses プログラムは、異なる時間に異なるウィンドウから読み取ることを選択できます。各screenには入力バッファーが 1 つしかありませんが、現在のウィンドウを更新することの副作用により、ウィンドウの更新の管理が簡単になります。(ウィンドウの重なり順が複雑な場合は、panelこの副作用に頼るのではなく、ライブラリを使用します)。

于 2015-06-17T00:11:11.590 に答える