Qlistwidget双击编辑的时候 如何控制编辑框大小
2023-12-22 13:06:46
1 默认的时候比较编辑框比较小,当设置
ListWidget->editItem(item);的时候会出现一个比较lineedit的,通过设置qss,可以控制lineedit的宽度,但是高度控制不了。通过qss设置lineedit border: 0px;勉强可以看到item的文字。
2 如何将lineedit 设置为整个item为编辑呢。
我们需要实现下面几个函数
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
QWidget *CListItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QLineEdit *editor=new QLineEdit(parent);
editor->setFrame(false);
editor->setStyleSheet("border:1px solid red;");
//editor->setText(index.data(Qt::DisplayRole).toString());
return editor;
}
void CListItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
QLineEdit *edit = static_cast<QLineEdit*>(editor);
edit->setText(index.data(Qt::DisplayRole).toString());
}
void CListItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{
QLineEdit *edit = static_cast<QLineEdit*>(editor);
model->setData(index,edit->text(),Qt::DisplayRole);
}
//option更新由 index 指定的项目的编辑器
void CListItemDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QRect rect = option.rect;
editor->setGeometry(rect);
}
通过这些函数可以控制文件编辑器的大小。
文章来源:https://blog.csdn.net/foxgod/article/details/135147671
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!