0

私はここでプロジェクトに取り組んでいますが、現在、次の問題に悩まされています。「説明」という列を持つ QTableView に関するもので、この列のセルには QPlainTextEditDelegate が含まれています。入力するたびに QPlainTextEdit の高さを設定できません。現在、QTableView の行 (その時点でアクティブな行) を大きくドラッグするまで、QLineEdit のように動作します。

私がやりたいのは、入力したらQPlainTextEditの高さを変更することです。あなたの提案は何ですか?どうすればこのことを成し遂げることができますか?

よろしくお願いします!

ところで、私の下手な英語でごめんなさい:/

編集:

私はそれを解決しましたが、sizeHint なしで updateEditorGeometry を使用しました:

void updateEditorGeometry( QWidget* editor, const QStyleOptionViewItem & option, const QModelIndex & index ) const;

そして、このメソッド内で、必要に応じて幅または高さを設定できます

editor->setGeometry(option.rect.x(),option.rect.y(),<your_width>,<your_height>);

でもとにかくありがとう!

4

1 に答える 1

1

エディターを作成するときに、期待される高さを返すように QAbstractItemDelegate::sizeHint メソッドを再実装する必要があります。エディターを作成した後に QAbstractItemDelegate::sizeHintChanged シグナルを発行する必要はないと思いますが、ドキュメントには何も書かれていません。これがないと機能しない場合は、作成されたエディター ウィジェットを返した後に sizeHintChanged を発行して、行の高さを変更する必要があることをビューに通知する必要があります。

于 2011-09-19T13:46:55.537 に答える