• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: 其他
  • 标签:

资源简介

QT中delegate自定义委托的小例子,有注释说明和源码 简单基础部件的委托可以继承QItemDelegate,并使用这些函数的默认实现,委托编辑器可以通过使用小工具来管理编辑过程或直接处理事件来实现。 使用Delegate的原因:Qt中当用到QTreeView和QTableView等用于显示item的视图时,你要编辑一个item用到的编辑工具可能是除了默认文字编辑lineEdit以外的工具,例如button,spinBox,甚至Slider,ProgressBar,也有可能是自定义的widget。所以Qt提供了一个委托类,用来处理View中的数据展示方式

资源截图

代码片段和文件信息

#pragma execution_character_set(“utf-8“)
#include “comboxdelegate.h“

#include 

ComBoxDelegate::ComBoxDelegate(Qobject *parent)
    :QItemDelegate(parent)
{       

}

//创建委托控件
QWidget *ComBoxDelegate::createEditor(QWidget *parent const QstyleOptionViewItem &option const QModelIndex &index) const
{
    Q_UNUSED(index);
    Q_UNUSED(option);

    QComboBox *box = new QComboBox(parent);

    //设置下拉列表的选线内容
    QStringList strList;
    strList<
    box->addItems(strList);

    return box;
}

//设置控件数据
void ComBoxDelegate::setEditorData(QWidget *editorconst QModelIndex &index) const
{
    //获取单元格内容
    QString str = index.data().toString();

    QComboBox *box = static_cast(editor);

    int currentIndex = box->findText(str);

    if(currentIndex >= 0)
    {
        box->setCurrentIndex(currentIndex);
    }
}

//设置模型数据
void ComBoxDelegate::setModelData(QWidget *editorQAbstractItemModel *modelconst QModelIndex &index) const
{
    //获取编辑控件的内容
    QString str = static_cast(editor)->currentText();

    //设置模型数据
    model->setData(indexstr);
}

//设置控件位置
void ComBoxDelegate::updateEditorGeometry(QWidget *editorconst QstyleOption &optionconst QModelIndex &index)
{
    Q_UNUSED(index);

    //更新控件位置大小
    editor->setGeometry(option.rect);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1560  2020-07-08 11:27  CustomDelegate\comboxdelegate.cpp

     文件        796  2020-03-20 16:08  CustomDelegate\comboxdelegate.h

     文件        545  2020-03-22 15:23  CustomDelegate\CustomDelegate.pro

     文件       2217  2020-03-20 15:25  CustomDelegate\datetimeeditdelegate.cpp

     文件       1018  2020-03-22 14:45  CustomDelegate\datetimeeditdelegate.h

     文件        114  2020-03-20 10:16  CustomDelegate\dialog.cpp

     文件        195  2020-03-20 10:16  CustomDelegate\dialog.h

     文件       2752  2020-03-22 23:21  CustomDelegate\main.cpp

     文件         87  2020-03-20 10:18  CustomDelegate\res.qrc

     文件       1327  2020-03-23 12:55  CustomDelegate\spinboxdelegate.cpp

     文件        803  2020-03-22 22:54  CustomDelegate\spinboxdelegate.h

     文件        106  2015-03-26 13:50  CustomDelegate\test.txt

     目录          0  2020-09-18 16:19  CustomDelegate

----------- ---------  ---------- -----  ----

                11520                    13


评论

共有 条评论

相关资源