1

私は単純な QStandardItem と QTableView と QStyledItemDelegate を持っています。彼らにはデリゲートがあり、ユーザーがテーブルの列の内容を変更する可能性を無効にし、選択とコピーのみを許可したいと思います。に関係していると思われQStyledItemDelegate::createEditorます。

0 を返すように設定すると、すべてが無効になります。

QWidget *InfoTableItemDelegate::createEditor(QWidget *parent,
                                    const QStyleOptionViewItem &option,
                                    const QModelIndex &index) const
{
    // return QStyledItemDelegate::createEditor(parent, option, index);
    return 0;
}

私の質問は、どのように定義して、テキストを削除または変更するなどの編集オプションを無効にして、選択してコピーすることしかできないようにすることです

4

1 に答える 1

1

データを単純なテキストとして表示できる場合は、読み取り専用モードで QLineEdit を返すことができます。画像やその他のタイプのデータがある場合は、HTML を含む選択可能な QLabel を使用できます (QLabel を選択可能にするには、ラベルの相互作用フラグQt::TextSelectableByMouseにまたはを含める必要があります)。Qt::TextSelectableByKeyboard

于 2012-11-28T18:55:34.460 に答える