1

表示する特定の例はありません...しかし、私がやろうとしているのは、Cベースのファイルから、TCPソケットからQTextEditボックス(読み取り専用)にテキストを書き込むことです。

Linux 用に C で記述した TCP サーバーから着信データを読み取る小さな TCP クライアントを作成しています。現在、ユーザーがサーバーからテキストを送受信できるように、QT GUI ベースのクライアントを作成しようとしています。基本的にはチャットサーバーです。

ac ファイルから QTextEdit コントロールに直接書き込む方法がわかりません。私のソケット コードは厳密に C ベースであり、ソケットなどを開く関数を QT にトリガーさせることができます。今のところ、サーバーが応答するものを読み取る方法を見つけようとしています。

入力データがある場合、そのバッファを QT フレームワークを介して QTextEdit コントロールに渡すにはどうすればよいですか? C 関数 recv() を使用しています。

4

2 に答える 2

0

C++ クラスを別のファイルに記述して、それを c ファイルに含めることができると思います。そのクラスは次のようにする必要があります。

class MySignalClass : public QObject
{
Q_OBJECT
public:
    void send_message(char *x)
    {
         emit message_to_write(x);
    }
signals:

    void message_to_write(char * x);

};
MySignalClass obj;

また、QEditBox があるクラスにスロットを作成する必要があります。その後、この信号をそのスロットに接続すると。作成したスロットは、QEditBox の内容をシグナルで送信した内容で変更します。

シグナルを送信するには、recv() を呼び出した後、次の行を挿入するだけです。

obj.send_message(バッファ); // buffer は recv() で取得したものです。

これで十分かどうかはわかりませんが、ここでQt シグナルとスロット メカニズムをもう少し調べることができます。

これはよりC++のソリューションです。クラスがなくてもQtシグナルを送信する方法がわかりません。

于 2012-03-16T09:14:11.030 に答える
0

QTextEdit には、表示するテキストを変更できる setPlainText API があります。QTextEditオブジェクトまたはQTextEditでsetPlainText APIを呼び出す関数を公開することにより、CコードからこのAPIにアクセスする必要がある方法。

于 2012-03-16T03:47:32.663 に答える