当前位置: 首页 > wzjs >正文

知名网站有哪些?网站优化锚文本链接之精髓

知名网站有哪些?,网站优化锚文本链接之精髓,阿里巴巴组织调整,保存的密码变成乱码QItemDelegate 当我们想重新实现一个代理时,可以子类化QItemDelegate。实现item编辑时特定的效果,比如在item编辑时我们设置一个QSpinBox返回。 创建一个QApplication项目,然后我们新增一个类,类名叫做spinboxdelegate。 class S…

QItemDelegate

当我们想重新实现一个代理时,可以子类化QItemDelegate。实现item编辑时特定的效果,比如在item编辑时我们设置一个QSpinBox返回。
创建一个QApplication项目,然后我们新增一个类,类名叫做spinboxdelegate。

class SpinBoxDelegate : public QItemDelegate
{Q_OBJECT
public:explicit SpinBoxDelegate(QObject * parent=0);QWidget * createEditor(QWidget* parent,   const QStyleOptionViewItem &option,const QModelIndex &index) const override;void setEditorData(QWidget *editor, const QModelIndex &index) const override;void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;void updateEditorGeometry(QWidget *editor,const QStyleOptionViewItem &option,const QModelIndex &index) const override;
};

SpinBoxDelegate类中声明了几个函数,这些函数在QItemDelegate继承而来,通过重写实现我们自己定义的代理功能。
createEditor函数是在item被双击后进入编辑状态时触发的,返回一个QWidget控件用来管理编辑。
setModelData是在item被修改后触发的,将改动的内容写入model中。
setEditorData是在item被双击进入编辑状态时,将model的内容写入editor中。
updateEditorGeometry是刷新editor的矩形区域,因为随着item变大或者拉伸,它的区域也要随之刷新。

具体实现

1 创建editor, 返回一个spinbox

QWidget * SpinBoxDelegate::createEditor(QWidget* parent,   const QStyleOptionViewItem &option,const QModelIndex &index) const{QSpinBox * editor = new QSpinBox(parent);editor->setMinimum(0);editor->setMaximum(100);return editor;
}

2 在编辑状态时,将model的数据写入editor

void SpinBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const {int value = index.model()->data(index, Qt::EditRole).toInt();QSpinBox * spinBox = static_cast<QSpinBox*>(editor);spinBox->setValue(value);
}

3 编辑完成时将editor的内容写入model

void SpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const {QSpinBox * spinBox = static_cast<QSpinBox*>(editor);spinBox->interpretText();int value = spinBox->value();model->setData(index, value, Qt::EditRole);
}

4 刷新矩形区域

void SpinBoxDelegate::updateEditorGeometry(QWidget *editor,const QStyleOptionViewItem &option,const QModelIndex &index) const {editor->setGeometry(option.rect);
}

接下来我们在MainWindow的构造函数里创建两个model和view,我们对其中的一个view使用我们自定义的delegate

MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);QStandardItemModel * model = new QStandardItemModel(7,4,this);for(int row=0; row < 7; row++){for(int column = 0; column < 4; column++){QStandardItem * item = new QStandardItem(QString("%1").arg(row*4+column));model->setItem(row, column, item);}}QTableView* _table_view = new QTableView;_table_view->setModel(model);setCentralWidget(_table_view);this->resize(800,800);QTableView* _table_view2 = new QTableView;SpinBoxDelegate * delegate = new SpinBoxDelegate(this);QStandardItemModel * model2 = new QStandardItemModel(7,4,this);for(int row=0; row < 7; row++){for(int column = 0; column < 4; column++){QStandardItem * item = new QStandardItem(QString("%1").arg(row*4+column));model2->setItem(row, column, item);}}_table_view2->setModel(model2);_table_view2->setItemDelegate(delegate);_table_view2->show();_table_view2->resize(800,800);
}

运行程序后,双击两个view的item,可以看到效果的不同
https://cdn.llfc.club/1671606628462.jpg

源码链接

源码链接
https://gitee.com/secondtonone1/qt-learning-notes


文章转载自:

http://n2Z5l7PY.rcntx.cn
http://0iD84jup.rcntx.cn
http://7d2U65dY.rcntx.cn
http://it755jLD.rcntx.cn
http://2QIcelx5.rcntx.cn
http://rlI96cfY.rcntx.cn
http://LbWcfwG7.rcntx.cn
http://zlYy2g2f.rcntx.cn
http://v90wMUYd.rcntx.cn
http://tkk6OshX.rcntx.cn
http://nmiMIBsn.rcntx.cn
http://sQBgmile.rcntx.cn
http://AoMlGXH0.rcntx.cn
http://14lYHUvq.rcntx.cn
http://Z4gKr7ab.rcntx.cn
http://1azKu9zn.rcntx.cn
http://pCAVXOZZ.rcntx.cn
http://H5xE5TrZ.rcntx.cn
http://IvRxUEfn.rcntx.cn
http://cDBpEaAV.rcntx.cn
http://kXnlvJ2C.rcntx.cn
http://lo0oRMcs.rcntx.cn
http://skstaqcS.rcntx.cn
http://RP3rRDWY.rcntx.cn
http://2Lweqkk4.rcntx.cn
http://pfbiIjlp.rcntx.cn
http://u1BKtvQr.rcntx.cn
http://ilJMrqPS.rcntx.cn
http://6aiFgLf4.rcntx.cn
http://2b7NcYVD.rcntx.cn
http://www.dtcms.com/wzjs/678106.html

相关文章:

  • 做网站的公司怎么拓展业务衡阳网站排名
  • 中山网站建设公司影视文化传媒公司网站建设
  • 青海农业网站建设公司响应式网站文章
  • 大连网站建设新图闻精品课程网站建设方案
  • 网站服务器空间选择VR网站建设价格
  • 德国网站的后缀名凡科互动游戏作弊软件
  • 做简历比较好的网站网站提交搜索引擎
  • 富阳市网站wordpress 七牛
  • 电子商务的网站建设名词解释百度免费做网站
  • 大数据与网站开发技术WordPress头部去掉sworg链接
  • 广州网站建设比较wordpress上方登录
  • 电子网站怎么做个人主页源码网页模板
  • 企业门户网站云服务器配置要求做传销网站的程序员犯法吗
  • 如何搜索网站网页设计尺寸一般多少像素
  • 如何在网上做自己的网站高并发网站开发语言
  • 中国建设银行官网站纪念币网站建设服务版权归谁
  • 网站建设技术方案浏览器登录入口
  • 上海 有哪些做网站的公司好进行优化
  • 电子商务网站建设与管理 pdfwordpress保存图片
  • 广州网站建设studstu电商网站后台建设问题
  • 甘肃网站建设企业推荐wordpress怎么改中文字体
  • 北京做网站的公司有哪些网站建设公司公司好
  • 网站建设秋实可以做配音兼职的网站
  • 为什么网站收录在百度突然没有了erp仓库管理系统教程
  • seo查询网站手工制作过程
  • seo优化网站教程百度济南网站建设山东聚搜网见效快
  • 做瞹瞹网站cpanel做wordpress
  • 2008iis 网站 打不开郑州网站建设 股权投资
  • 企业网站推广方法学院网站制度建设
  • 在淘宝介绍里边怎么做网站链接小企业网站建设流程