1

2 つの別々のターミナル ウィンドウで curses を制御する単一の Python スクリプトを作成したいと思います。単一の端末内でウィンドウを呪うのではなく、Xウィンドウマネージャーのurxvtなどの2つの異なるインスタンス。

このようなもの:

class myprogam():

    controlterm1()
    controlterm2()

    def controlterm1():
        Create a new (could be current) urxvt terminal window.
        In the urxvt window setup curses with curses.initscr(), etc.
        racergame()

    def controlterm2():
        Create another urxvt terminal window.
        Setup curses.initscr, borders, size, etc. in window, leaving the old one alone.
        typewriter()  

    def racecargame():
        Racing game in curses

    def typwritter()
        Boring program for writing

myprogram()

コマンド「tty」を使用すると、疑似端末ウィンドウに名前が付けられることがわかります。これにより、/dev/pts/somenumber への参照が得られます。最初の端末エミュレータにはゼロが割り当てられ、次に 1、2 などが割り当てられます。新しい端末用。これを行うための基礎としてこの識別子を使用できますか?

スクリプトは、urxvt の新しいインスタンスを実際にロードする必要はありません。既に開いているインスタンスを制御できれば幸いです。

4

2 に答える 2

3

原則として、1 つのスクリプトから複数のデバイスを開いて I/O を実行することに問題はありません。ただし、私が見たほとんどの curses ソフトウェアは、プログラムに関連付けられた 1 つの端末に対して I/O を行うことを前提としています。たとえば、initscr はパラメーターを取りません。環境変数を調べて、端末の特性を判断します。

そのため、プログラムを 2 つに分割し、各端末で 1 つずつ実行し、メッセージ パッシングを介して通信する方が簡単な場合があります。

于 2012-04-19T01:43:39.597 に答える