0

QTreeViewを使用してオブジェクトのプロパティを視覚化します。QtDesignerのプロパティエディタのようなものです。私はあらゆる種類の値、bool、text、colorvalues、enum、float、int、filenamesなどを持っています。

すべてのオブジェクト値を保持するためにcoustomモデルを使用し、coustomデリゲートを介して表示します。したがって、デリゲートはデータの種類を検出し、編集用の特別な表現を持ちます。たとえば、int / floatの場合はスピンボックス、boolの場合はチェックボックスです。現時点では、Delegateはスピンボックスなどのエディターを作成し、値をチェックボックスとして表すためにpaint()関数をオーバーライドします。

ここで、ユーザーが2つの方法で値を編集できるようにします。ユーザーは、編集、コピー/貼り付けなどに通常のテキストフィールドを使用して値を変更するか、ボタンを押してQFileDialogを開き、正しいファイルを選択する必要があります。
次のようになります。

画像

どうすればこれを達成できますか?
QFileDialogを開くには、テキストフィールドとボタンが必要です。

Qt5.0を使用しています。ヘルプのためのThx

4

1 に答える 1

0

カスタムウィジェットを使用する必要があります。デリゲートのcreateEditor()関数で次のようなコードでウィジェットを作成できます/これらの行に沿った何か:

QFrame *frame = new QFrame();
frame->setLayout( new QHBoxLayout() );
frame->layout()->addWidget( new QLineEdit() );
frame->layout()->addWidget( new QToolButton() );
return frame;

または、デザイナーでカスタムウィジェットを作成し、そのうちの1つを返すこともできます。

于 2013-03-27T15:09:58.940 に答える