- 浏览: 3449633 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
sonichy:
Qt5改动很多,要改改了。
基于QItemDelegate的例子1 SpinBoxDelegate -
我的主页6:
楼主,2.2子查询的分页方式:SELECT * FROM ar ...
Mysql 分页语句Limit用法 -
liguoqi:
非常感谢楼主的用心指导,工具以及图片例子都提供了 赞!
两款免费DCIOM 图像浏览软件介绍和DICOM图像例子供下载 -
liguoqi:
问下这个图片怎么解压损坏呀
两款免费DCIOM 图像浏览软件介绍和DICOM图像例子供下载 -
liguoqi:
楼主讲解的非常详细,还附带工具和图片例子,非常感谢
两款免费DCIOM 图像浏览软件介绍和DICOM图像例子供下载
通过Qt的委托,可以实现自定义QTableView中每一项的特殊实现方式。
本例,利用Delegate 实现在QTableView中插入Pixmap图
[文件] main.cpp ~ 273B 下载(10) /** * @file main.cpp * @brief * @author xiangxw * @version 0.0 * @date 2011年月日 */ #include<QApplication> #include"MyTableView.h" int main(int argc,char *argv[]) { QApplication app(argc,argv); MyTableView table; table.show(); return app.exec(); }
[文件] MyTableView.h ~ 1KB 下载(10) /** * @file MyTableView.h * @brief * @author xiangxw * @version 0.0 * @date 2011年月日 */ #ifndef MYTABLEVIEW_H #define MYTABLEVIEW_H #include<QTableView> #include<QItemDelegate> #include<QStandardItemModel> #include<QPixmap> class MyTableView; class MyItemDelegate; class MyStandardItemModel; class MyTableView:public QTableView { public: MyTableView(QWidget * parent=0); virtual ~ MyTableView(){} protected: void mouseMoveEvent(QMouseEvent * event); private: MyItemDelegate * delegate; MyStandardItemModel * model; }; class MyItemDelegate:public QItemDelegate { public: MyItemDelegate(QObject * parent=0); virtual ~ MyItemDelegate(){} void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const; bool editorEvent(QEvent * event, QAbstractItemModel * model, const QStyleOptionViewItem & option, const QModelIndex & index); private: QPixmap favouritePixmap; QPixmap notFavouritePixmap; }; class MyStandardItemModel:public QStandardItemModel { public: MyStandardItemModel(QObject * parent=0) :QStandardItemModel(parent){} virtual ~ MyStandardItemModel(){} QVariant data(const QModelIndex & index, int role=Qt::DisplayRole) const; QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const; }; #endif
[文件] MyTableView.cpp ~ 3KB 下载(16) /** * @file MyTableView.cpp * @brief * @author xiangxw * @version 0.0 * @date 2011年月日 */ #include<QPainter> #include<QMouseEvent> #include"MyTableView.h" #ifndef NDEBUG #include<QDebug> #endif MyTableView::MyTableView(QWidget * parent) :QTableView(parent) { delegate=new MyItemDelegate; model=new MyStandardItemModel; model->setRowCount(6); model->setColumnCount(8); this->setModel(model); this->setItemDelegate(delegate); this->resizeColumnsToContents(); this->resizeRowsToContents(); this->setEditTriggers(QAbstractItemView::NoEditTriggers); this->setSelectionBehavior(QAbstractItemView::SelectRows); this->setMouseTracking(true);//important } void MyTableView::mouseMoveEvent(QMouseEvent * event) { int column=this->columnAt(event->x()); int row=this->rowAt(event->y()); if(column==0 && row!=-1){ this->setCursor(Qt::PointingHandCursor); } else{ this->setCursor(Qt::ArrowCursor); } } MyItemDelegate::MyItemDelegate(QObject * parent) :QItemDelegate(parent) { favouritePixmap=QPixmap(":/favourite.png"); notFavouritePixmap=QPixmap(":/no-favourite.png"); } void MyItemDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const { if(index.column()!=0){ QItemDelegate::paint(painter,option,index); return; } const QAbstractItemModel * model=index.model(); QVariant var=model->data(index,Qt::CheckStateRole); if(var.isNull()) var=false; const QPixmap & star=var.toBool()? favouritePixmap:notFavouritePixmap; int width=star.width(); int height=star.height(); QRect rect=option.rect; int x=rect.x()+rect.width()/2-width/2; int y=rect.y()+rect.height()/2-height/2; painter->drawPixmap(x,y,star); } bool MyItemDelegate::editorEvent(QEvent * event, QAbstractItemModel * model, const QStyleOptionViewItem & /*option*/, const QModelIndex & index) { if(event->type()==QEvent::MouseButtonPress && index.column()==0){ QVariant var=model->data(index,Qt::CheckStateRole); bool isFavourite=var.toBool(); if(var.isValid()) isFavourite=isFavourite?false:true; else isFavourite=true; model->setData(index,isFavourite,Qt::CheckStateRole); return true;//I have handled the event } return false; } QVariant MyStandardItemModel::data( const QModelIndex & index, int role) const { int column=index.column(); if(role==Qt::DisplayRole && column!=0) return column+1; if(role==Qt::ToolTipRole && column==0) return tr("love"); return QStandardItemModel::data(index,role); } QVariant MyStandardItemModel::headerData(int section, Qt::Orientation orientation, int role) const { if(section==0 && orientation==Qt::Horizontal){ if(role==Qt::DecorationRole) return QIcon(":/favourite.png"); if(role==Qt::DisplayRole) return ""; if(role==Qt::ToolTipRole) return tr("love"); } return QStandardItemModel::headerData(section,orientation,role); }
转:http://www.oschina.net/code/snippet_96486_4133
发表评论
-
Qt官网变更【2012】
2012-09-21 19:30 4221Qt最近被Digia完全收购,诺基亚这两年的不理不睬,没有魄力 ... -
【转】QT实现不规则窗体
2012-09-21 18:50 5011看到好文章,收藏一下: 看到网上有很多不规则窗体的实现 ... -
Qt应用程序如何使用DCMTK类库进行二次开发DICOM数据传输
2012-09-13 09:35 0参考文章: 1、Using DCMTK with ... -
【转】将QT开发的界面程序封装成DLL,在VC中成功调用
2012-09-11 10:33 21136最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后 ... -
诺基亚挥别Qt,转手给Digia
2012-09-11 09:37 2868一家总部位于芬兰的IT业务供应商Digia今天宣布,已经签署了 ... -
Qt多线程间信号槽传递非QObject类型对象的参数
2012-09-07 15:29 21405一、以前就发现过这个问题: 在Qt项目中,有时候为了 ... -
QT样式表(QStyleSheet)
2012-08-17 10:37 17910QT样式表 (QStyleSheet) 作者:刘旭晖 ... -
FinalData磁盘文件恢复工具(绿色破解版)
2012-08-02 13:28 8616FinalData磁盘文件恢复工具(绿色破解版),使用起来很方 ... -
Eclipse Qt开发环境的建立【转】
2012-08-01 11:15 44001.下载Eclipse目前Eclipse+CDT已经可以 ... -
汽车辐射监测系统-Qt开发
2012-07-25 16:18 4703最近晚上抽空忙了两个月,才把一个小系统做完。虽然做的不是太完 ... -
Qt做发布版,解决声音和图片、中文字体乱码问题
2012-07-14 16:02 4877Qt做发布版,解决声音和图片、中文字体乱码问题 ... -
QTableView使用中的疑问,如何及时显示操作Model后的结果?
2012-06-01 14:52 0最终的解决方法:我正 ... -
【转】Qt QTableview使用
2012-06-01 09:49 9683QTableWidget是QT程序中常用的显示数 ... -
QTableView双击 单机事件信号
2012-06-01 09:47 23142双击QTableView的行,获取该行数据 代码 ... -
QMessageBox改变大小
2012-05-31 15:33 8467创建一个QMessageBox: QMessageBo ... -
更新QTableView中的进度条状态
2012-05-30 14:37 14887前段时间,我接触了,如何在一个QTableView中加入一个控 ... -
QThread 线程暂停 停止功能的实现
2012-05-29 11:56 12223为了实现Qt中线程的暂停运行,和停止运行的控制功能 需要在设 ... -
QT环境变量
2012-05-28 18:53 5599不知道为啥同事有台电脑,装完Qt-VS2008库,和VS Ad ... -
广告光
2012-05-24 18:33 0盈创广告联盟 http://www.yo114.cn/ ... -
Test
2012-05-24 18:22 2195Test<IMG SRC="cf08e32c2 ...
相关推荐
Qt GUI 图形图像开发中,QTableView 是一个非常重要的控件,它可以显示表格数据,实现数据的可视化展示。下面将详细介绍 QTableView 的使用方法与实例。 一、QTableView 简介 QTableView 是 Qt 中的一个表格视图...
在Qt框架中,QTableView是用于显示表格数据的视图组件,它允许用户查看和编辑由模型提供的数据。在特定的开发场景中,我们可能需要增强QTableView的功能,例如为表格中的每一行添加复选框或者下拉框控件,以提供更多...
在iOS开发中,UITableView是一种非常常见且强大的控件,用于展示列表或表格数据。"tableview表格的折叠"这一主题涉及到如何实现一个可扩展和收缩的表格视图,让用户能够根据需要查看或隐藏某些行。这通常在层级结构...
在Qt框架中,`QTableView`和`QTableWidget`是两种常用的用于显示二维数据的控件。在一些复杂的用户界面设计中,我们可能需要对表头进行自定义,例如添加复选框或下拉框,以提供更丰富的交互功能。在本篇中,我们将...
QTable(在Qt 4及以后版本中被QTableView替代)是用于显示和编辑表格数据的控件。它可以动态调整大小,并支持行、列的添加、删除和排序。 8. **sql.html** - Qt的SQL模块提供了一系列与数据库交互的类,使得开发者...
Qt 支持富文本编辑功能,允许用户插入图片、超链接、格式化文本等。 **7.2 定制与打印 (Customization and Printing)** Qt 提供了对文本定制和打印的支持,包括页面布局、样式设置等功能。 #### 八、Web 集成与 ...
QTableView是Qt中用来把数据集以表格形式提供给用户的一个控件 QTableView类实现表格视图,QTableView的数据由继承QAbstractItemModel的子类models来提供 #include QStandardItemModel *model = new ...
5. **QTextEdit** - 用于多行文本编辑,支持富文本格式,可以插入图片、链接等元素,常用于创建文本编辑器或日记应用。 6. **QCheckBox** 和 **QRadioButton** - 分别表示复选框和单选按钮,用于提供多个选项让用户...
在QT中,如QTableView通常会有一个对应的QStandardItemModel来存储和操作数据。 最后,项目可能还涉及了资源文件(.qrc)的使用,这可以方便地管理和打包应用程序中的图像、音频等非代码资源。以及可能运用了...
在这个项目中,Qt被用来设计和实现用户界面,包括表格视图、按钮、输入框等元素,以便用户能够直观地进行数据操作。 2. **MySQL数据库**:MySQL是一款广泛使用的开源关系型数据库管理系统,支持多种数据类型和SQL...
`QTextEdit`不仅支持文本输入,还允许插入图片、表格等富文本元素,使得工作记录更加生动全面。 其次,为了保存日志,程序需要实现文件操作。在Qt中,这通常通过`QFile`、`QTextStream`或`QDataStream`类来实现。`...
3. **QTextEdit**:提供多行文本编辑功能,支持富文本格式,可以插入图片、超链接等。 4. **QLabel**:用于显示静态文本或图像,可设置对齐方式、字体等属性。 5. **QCheckBox** 和 **QRadioButton**:用于提供复...
1.16 QTableView表格控件 35 1.17 QHBoxLayout横向布局 36 1.18 QGridLayout网格布局 37 1.19 QGroupBox控件 38 1.20 QTabWidget控件 39 1.21 QMenu、QToolBar控件 41 1.22 任务栏托盘菜单 43 第四章 组件应用 1.1日...
你可以添加文字样式、颜色、超链接等,还可以插入图片和表格。结合QSyntaxHighlighter,可以实现代码高亮显示,适用于开发文本编辑器或代码编辑器应用。 6. **图形用户界面设计**:Qt Designer是一个可视化的UI设计...
在传统的表格控件中,例如Qt中的QTableView或QTableWidget,通常提供了基础的表格展示功能,如添加、删除、编辑行和列。然而,对于一些更复杂的需求,比如动态改变列宽、自定义渲染、表头合并等,就需要深入理解Qt的...
`QTextEdit`比`QLineEdit`功能更加强大,它允许用户编辑多行文本,支持文本格式化、插入图片和表格等操作。如果需要创建富文本编辑器,`QTextEdit`是首选。 `QCheckBox`和`QRadioButton`用于提供复选框和单选按钮。...
在Qt中,这可能涉及到`QTextDocument`类,它是一个富文本模型,可以处理复杂的格式化文本,包括段落、列表、嵌入图片、表格等。配合`QTextCursor`,开发者可以方便地在文档中插入、修改和删除内容。同时,`QPrinter`...
此外,QT还提供了QSqlQuery、QModel和QTableView等类,使得在应用程序中操作数据库变得简单直观。 **系统功能** 基于上述技术,这个学生成绩管理系统可能包含以下关键功能: 1. **学生信息管理**:添加、编辑和删除...
1.16 QTableView表格控件 35 1.17 QHBoxLayout横向布局 36 1.18 QGridLayout网格布局 37 1.19 QGroupBox控件 38 1.20 QTabWidget控件 39 1.21 QMenu、QToolBar控件 41 1.22 任务栏托盘菜单 43 第四章 组件应用 1.1日...
读入图片:使用QFile类将图片读入,保存为QByteArray字节数组,然后将照片数据封装成QVariant变量,在字符串语句中以问号代替数据,然后使用prepare和addBindValue函数,最后执行插入语句exec 使用...