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

婚礼网站怎么做的自己手机怎么免费做网站

婚礼网站怎么做的,自己手机怎么免费做网站,官网的网站开发费用,旅游网页在Qt中,QStyledItemDelegate和QItemDelegate是用于自定义和控制项视图控件(如QListView、QTableView、QTreeView)中项的显示和编辑的委托类。它们提供了对项的外观和编辑行为的定制能力。尽管它们在功能上有相似之处,但它们之间有…

在Qt中,QStyledItemDelegateQItemDelegate是用于自定义和控制项视图控件(如QListViewQTableViewQTreeView)中项的显示和编辑的委托类。它们提供了对项的外观和编辑行为的定制能力。尽管它们在功能上有相似之处,但它们之间有一些关键的区别。

QItemDelegate

作用

QItemDelegate是Qt中较早期的委托类,用于处理视图中项的显示和编辑。它继承自QAbstractItemDelegate,并提供了默认的绘制和编辑功能。

特点

  • 绘制功能QItemDelegate使用QStyle进行绘制,这意味着它的绘制风格是基于系统的默认风格。
  • 编辑功能:它提供了默认的编辑器(如文本框、复选框等)和编辑行为。
  • 自定义性:可以通过重写paintcreateEditor等虚函数来自定义项的显示和编辑行为。

使用示例

#include <QApplication>
#include <QTableView>
#include <QStandardItemModel>
#include <QItemDelegate>class MyItemDelegate : public QItemDelegate
{Q_OBJECTpublic:MyItemDelegate(QObject *parent = nullptr) : QItemDelegate(parent) {}void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override {// 自定义绘制逻辑QItemDelegate::paint(painter, option, index);}QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override {// 自定义编辑器return QItemDelegate::createEditor(parent, option, index);}
};int main(int argc, char *argv[])
{QApplication app(argc, argv);QTableView view;QStandardItemModel model(4, 2);view.setModel(&model);MyItemDelegate *delegate = new MyItemDelegate(&view);view.setItemDelegate(delegate);view.show();return app.exec();
}

QStyledItemDelegate

作用

QStyledItemDelegate是Qt 4.4引入的,旨在替代QItemDelegate,提供更灵活和现代的项委托。它也是继承自QAbstractItemDelegate,并使用QStyle进行绘制,但与QItemDelegate相比,它在处理复杂和定制的用户界面时更加高效和灵活。

特点

  • 增强的绘制功能QStyledItemDelegate利用了QStyle的高级功能,可以更好地支持复杂的UI元素和现代风格。
  • 统一的风格:它能更好地与Qt的样式系统集成,确保在不同平台和风格下的外观一致性。
  • 简化的自定义:提供了一些额外的虚函数(如initStyleOption),使自定义项的显示和编辑更加简单和灵活。

使用示例

#include <QApplication>
#include <QTableView>
#include <QStandardItemModel>
#include <QStyledItemDelegate>class MyStyledItemDelegate : public QStyledItemDelegate
{Q_OBJECTpublic:MyStyledItemDelegate(QObject *parent = nullptr) : QStyledItemDelegate(parent) {}void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override {// 自定义绘制逻辑QStyledItemDelegate::paint(painter, option, index);}QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override {// 自定义编辑器return QStyledItemDelegate::createEditor(parent, option, index);}void setEditorData(QWidget *editor, const QModelIndex &index) const override {// 设置编辑器的数据QStyledItemDelegate::setEditorData(editor, index);}void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override {// 保存编辑器的数据QStyledItemDelegate::setModelData(editor, model, index);}void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override {// 更新编辑器的几何形状QStyledItemDelegate::updateEditorGeometry(editor, option, index);}
};int main(int argc, char *argv[])
{QApplication app(argc, argv);QTableView view;QStandardItemModel model(4, 2);view.setModel(&model);MyStyledItemDelegate *delegate = new MyStyledItemDelegate(&view);view.setItemDelegate(delegate);view.show();return app.exec();
}

区别

  1. 绘制机制QStyledItemDelegate利用了更高级的QStyle功能,能够更好地处理复杂的绘制需求,而QItemDelegate使用的是较早期的绘制方法。
  2. 自定义简便性QStyledItemDelegate提供了更多的虚函数和工具函数,使得自定义绘制和编辑行为更加简便和灵活。
  3. 风格一致性QStyledItemDelegate能够更好地与Qt的样式系统集成,确保在不同平台和风格下的外观一致性。

结论

总的来说,QStyledItemDelegate是对QItemDelegate的改进,提供了更强大和灵活的功能。在大多数情况下,建议使用QStyledItemDelegate来处理自定义项的显示和编辑。QItemDelegate虽然仍然可以使用,但在新项目中更推荐使用QStyledItemDelegate

http://www.shuangfujiaoyu.com/news/17358.html

相关文章:

  • 网站开发公司盈利石家庄网站建设方案推广
  • 做网站用微软雅黑字体被告侵权成都最好的网站推广优化公司
  • 网站做点击广告是怎么回事谷歌广告优化师
  • 北京网站建设公司空间续费北京百度热门搜索排行榜
  • 网络营销是什么的一项活动北京seo推广外包
  • 物流网站给做软件下载百度推广开户
  • 网站应该设计成什么样企业网站是什么
  • 外贸可以什么网站做如何推广引流
  • 广州公司转让交易平台seo搜索排名优化是什么意思
  • 网站建设公众号开长沙做搜索引擎的公司
  • 网站设计 日语百度推广可以自己开户吗
  • 如何提高 网站的点击量西安seo网站关键词
  • 服装商城的网站建设短视频推广平台
  • 福建省建设厅网站职业资格百度导航官网
  • 服务网站推广方案想学互联网从哪里入手
  • 酒泉网站建设公司如何推广自己的微信号
  • 网站开发 保修期网店推广策略
  • 公司做网站要三千多吗成人短期就业培训班
  • 宜春做网站外贸企业网站设计公司
  • 如何进行网站设计网站关键词快速排名软件
  • 怎么做博彩网站推广关键词搜索优化外包
  • 杭州网站排名优化神马快速排名优化工具
  • 专门做礼物的网站优化师
  • 微网站开发用什么软件招聘网络营销推广人员
  • 手机网站 跳转google搜索引擎官网
  • 公司网站招聘费如何做会计分录自己可以做网站吗
  • 免费建立网站的软件淘词神器
  • wordpress多站点 seo推广下载
  • 离石市网站建设公司网站推广优化排名公司
  • 如何做网站旅游产品分析推广用哪个平台效果好