2012-03-16 18 views
1

具体的な例は表示されていませんが、私はCベースのファイルから、TCPソケットからQTextEditボックスにテキストを書き込みます(読み取り専用です)。QTextEditボックスにC関数からテキストを書き込む

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

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

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

答えて

0

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

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のシグナルとスロットメカニズムhere

これは、C++ソリューションのよりオーバーになりますわからないんだけど、私はあなたがQtのを送ることができるのか分かりませんクラスを持たない信号。

関連する問題