2

そこで、QTDesigner と C++ を使用してモデル ビュー ウィンドウを構築しようとしました。

そのため、モデルとして QOBject 派生クラスを作成しました。setFileName(QString) または fileNameChanged(QString) のようにアクセスするためのスロットとシグナルを提供します。

QTDesigner で信号のドラッグ アンド ドロップを使用することに少し慣れましたが、VA-Smalltalk のように非常に優れていることがわかりました。しばらくして、自分のモデルもこれに接続できるかどうか疑問に思いました。したがって、モデル オブジェクトをウィンドウ/GUI に何らかの方法で導入し、QTDesigner に信号とスロットをモデル オブジェクトから GUI に接続させることは可能ですか。

本質的に:私のために書いてください:

connect( model, SIGNAL(fileNameChanged(QString)), ui->labelFn, SLOT(setText(QString)))
connect( ui-textEdit2, SIGNAL(textChanged(QString)), model, SLOT(setFileName(QString)))

説明してくれてありがとう

4

3 に答える 3

1

jopa が言ったように、Designer でそれを行いたい場合は、Designer にコンポーネントを認識させる必要があります。これは、頻繁に再利用するものである場合にのみ価値があります。私見ですが、Designer は初期の UI デザインのプロトタイピングや作成には適していますが、長期的なメンテナンスには適していません。Designer は非常に強力ですが、インターフェイスを介して公開されていない多くのオプションがあります。

Qt の自動接続機能を調べることをお勧めします。純粋にスロットの命名規則によって接続を試みます。詳細はこちらをご覧ください。私はこれを試してみたいと思っていましたが、Qt 4 変換プロジェクトに取り掛かったばかりで、まだチャンスがありません。

于 2010-06-17T03:22:46.477 に答える
0

新しいタイプのオブジェクトを Designer に導入する唯一の方法はプラグインを使用することですが、これはQDesignerCustomWidgetCollectionInterface. Apple の Interface Builder が許可するように、Designer が他のオブジェクトへの接続を許可するとよいのですが、それは不可能です。今のところ、フォームのコンストラクターでそのようなシグナルを接続したままです。

于 2010-06-17T02:14:46.940 に答える
0

Qt Creator のシグナルとスロット エディターは使用せず、常に接続を使用します。すべての信号とスロットの接続を 1 か所で行う方がはるかに簡単で、それらが使用されているライブラリ (QIODevice の readyRead() など) または GUI (indexChanged(int) など) を考慮している場合とは無関係です。

これにより、コードが読みやすくなります + シグナルとスロット エディターで多くの問題を経験しました。

于 2011-09-23T12:12:08.380 に答える