![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模型视图
证券指标
这个作者很懒,什么都没留下…
展开
-
模型 layoutChanged()信号
该信号貌似没啥作用,因为,view中的数据,是从model获取的。If the structure of the underlying data changes, the model can emit layoutChanged() to indicate to any attached views that they should redisplay any item原创 2015-09-29 17:22:43 · 1337 阅读 · 0 评论 -
qt delegate createEditor()方法
QWidget * QItemDelegate::createEditor ( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const [virtual]Returns the widget used to edit the item specified原创 2015-10-01 09:28:07 · 5429 阅读 · 0 评论 -
qt delegate drawDisplay()
void QItemDelegate::drawDisplay ( QPainter * painter, const QStyleOptionViewItem & option, const QRect & rect, const QString & text ) const [virtual protected]Renders the item view text with原创 2015-10-01 09:42:03 · 931 阅读 · 0 评论 -
qt delegate委托 paint()方法
void QItemDelegate::paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const [virtual]paint函数的作用是:绘制要在view中显示的数据。获取到model中的数据后,我想改变显示样式,那么可用在painter函数原创 2015-10-01 09:39:13 · 7218 阅读 · 1 评论 -
qt QItemDelegate 委托 相关函数
Only the standard editing functions for widget-based delegates are reimplemented here:createEditor() returns the widget used to change data from the model and can be reimplemented to customi原创 2015-10-01 08:57:50 · 1428 阅读 · 0 评论 -
qt 代理模型 proxy model QSortFilterProxyModel
代理模型 proxy model 之所以叫做 排序 过滤 代理模型QSortFilterProxyModel,是因为,qt中代理模型的主要作用就是:排序和过滤。proxy model中,封装了一个原始模型,sourceModel。所以,QSortFilterProxyModel中有个方法:setSourceModel()。这就是,设置代理模型使用的原始模型的。QTabl原创 2015-10-01 07:35:44 · 3689 阅读 · 0 评论 -
QItemDelete
Delegate 类概念与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件。一般来讲, view负责把数据展示给用户,也处理用户的输入。为了获得更多的灵性性,交互通过delegagte执行。它既提供输入功能又负责渲染view中的每个数据项。 控制delegates的标准接口在QAbstractItemDelegate类中定义。Delegates通过实现pai转载 2016-02-22 10:02:36 · 740 阅读 · 0 评论 -
QTableView中嵌入复选框CheckBox
第二种方法:设置QAbstractTableModel的flags()函数法 通过Delegate创建QCheckBox来实现的Check列,只有在该列进入编辑模式时才能够Check/Uncheck。这显然不是我们想要的,网上翻来翻去,在一个国外论坛中看到了无需Delegate的实现方法,只需重写Model即可:主要是修改两个函数://设置某一列为可选角色,绘画出转载 2016-03-22 16:50:50 · 2607 阅读 · 0 评论 -
可编辑模型model
上一章我们了解了如何自定义只读模型。顾名思义,只读模型只能够用于展示只读数据,用户不能对其进行修改。如果允许用户修改数据,则应该提供可编辑的模型。可编辑模型与只读模型非常相似,至少在展示数据方面几乎是完全一样的,所不同的是可编辑模型需要提供用户编辑数据后,应当如何将数据保存到实际存储值中。我们还是利用上一章的CurrencyModel,在此基础上进行修改。相同的代码这里不再赘述,我们只列出转载 2016-03-22 16:54:45 · 844 阅读 · 0 评论 -
QTableView中 允许编辑 item 编辑时候显示SpinBox
Qt::ItemFlags TradeTableModel::flags ( const QModelIndex & index ) const { Qt::ItemFlags flags = QAbstractItemModel::flags(index); {转载 2016-03-22 17:13:53 · 2740 阅读 · 0 评论 -
qt model 中的角色 role Qt::CheckStateRole角色
model中的每一个数据元素都有一个modelIndex和一套角色role。model中的角色,role有多个,但是常用的就几个。 这些角色可以保存任意值,角色中可用保持QVariant类型的值。最常用的是Qt::DisplayRole和Qt::EditRole角色。这两个角色是用于显示和编辑的角色。还有几个常用的角色是用来控制 基本显示属性的。比如:Qt:原创 2015-10-01 07:46:52 · 11131 阅读 · 0 评论 -
model中 setData()函数 flag()函数作用
如果允许用户编辑view中的item,那么必须重写model中的setData()函数和flag()函数, //允许用户编辑item,必须重写setData()函数 bool TradeTableModel::setData ( const QModelIndex & index, const QVariant & value, int role/* = Q转载 2016-03-22 17:28:26 · 8383 阅读 · 0 评论 -
QModel 显示checkBox
设置QAbstractTableModel的flags()函数,通过重写setData()与data()来实现。下面就介绍最常用的方式,即方法二。QMap用来保存选中行号以及对应的选中状态QMap check_state_map; setData()方法主要用来设置是否被选中,然后将对应的状态保存到QMap中bool TableModel::set转载 2016-03-22 16:53:07 · 1448 阅读 · 0 评论 -
model中的data()函数
//返回QModelIndex处的相应角色的值 //返回给个角色的值 QVariant TradeTableModel::data ( const QModelIndex & index, int role /*= Qt::DisplayRole*/ ) const { if(!index.isV转载 2016-03-22 17:31:19 · 3718 阅读 · 1 评论 -
model中的index()函数
QModelIndex TradeTableModel::index ( int row, int column, const QModelIndex & parent/* = QModelIndex() */) const { if (row { return QModelIndex();转载 2016-03-22 17:32:30 · 4092 阅读 · 0 评论 -
model中的layoutChanged ()信号 通知视图更新界面
void QAbstractItemModel::layoutChanged () [signal]This signal is emitted whenever the layout of items exposed by the model has changed;for example, when the model has been sorted(重新排序了). When th转载 2016-03-22 17:35:52 · 3174 阅读 · 0 评论 -
qt delegate setEditorData()
void QItemDelegate::setEditorData ( QWidget * editor, const QModelIndex & index ) const [virtual]Sets the data to be displayed and edited by the editor from the data model item specified by原创 2015-10-01 09:20:55 · 1800 阅读 · 0 评论 -
qt delegate代理 setModelData()方法
setModelData()方法。void QItemDelegate::setModelData ( QWidget * editor, QAbstractItemModel * model, const QModelIndex & index ) const [virtual]Gets data from the editor widget and stores i原创 2015-10-01 09:17:54 · 3125 阅读 · 0 评论 -
qt view是如何显示model中的数据
在model/view架构中,view从model中获得数据项然后显示给用户。数据显示的方式不必与model提供的表示方式相同,可以与底层存储数据项的数据结构完全不同。 内容与显式的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口共同实现的。普遍使用model index来表示数据项。view负责管理从model转载 2015-09-30 14:21:37 · 3801 阅读 · 0 评论 -
qt model中的方法columnCount()方法
int TradeTableModel::columnCount ( const QModelIndex & parent/* = QModelIndex() */) const { return COLUMN_TOTAL; }这个方法的作用是,返回model中的列的数量。最终目的是:限制了model中headerDat原创 2015-09-30 15:24:10 · 4207 阅读 · 0 评论 -
QHeaderView的visualIndex和logicalIndex
You can identify a section using the logicalIndex() and logicalIndexAt() functions, or by its index position, using the visualIndex() and visualIndexAt() functions. The visual index will change原创 2015-08-04 08:50:14 · 1668 阅读 · 0 评论 -
model模型中 要实现的几个方法
QAbstractItemModel类的子类,经常需要实现的几个方法1.flags()方法。//flags()方法的,判断使用的是QModelIndex类的column()方法,根据列进行判断。 Qt::ItemFlags TradeTableModel::flags ( const QModelIndex & index ) const原创 2015-09-29 16:58:48 · 1522 阅读 · 0 评论 -
model reset()方法
qt QAbstractItemModel类的reset()方法作用:该方法的作用是,将model模型的状态重置,即,将模型的状态设置为origin状态,即初始化状态。其他的没有作用。京麦中,reset()的使用。TradeDatabaseMgr::Instance()->GetTradeDb()->GetOrders(SELECT_ORDERS.arg(s原创 2015-09-29 16:38:00 · 3419 阅读 · 0 评论 -
QTableView添加按钮
这里说一下怎么在QTableView添加一个按钮添加两个按钮的例子在这篇文章里:QTableView 一列添加两个按钮效果是点击button弹出一个对话框。看一下ButtonDelegate的代码#ifndef BUTTONDELEGATE_H#define BUTTONDELEGATE_H#include class ButtonDelegate : pub转载 2015-07-14 10:33:24 · 3440 阅读 · 0 评论 -
QHeadView 控件
QHeaderView控件,列头,控件。QHeaderView控件,跟QTableView控件一样,都是派生自QAbstractItemView。因此说,QHeaderView也是一个控件。一个QWidget部件。原创 2015-09-30 10:10:34 · 2465 阅读 · 0 评论 -
模型 insertRow()方法注意事项
Models that provide interfaces to resizable data structures can provide implementations of insertRows(), removeRows(), insertColumns(),and removeColumns(). When implementing these functions, it is i原创 2015-09-29 17:56:20 · 1997 阅读 · 0 评论 -
QTableView 类
QTableView类,派生自QAbstractItemView类(派生自QScrollArea类,派生自QFrame类),所以说,QTableView归根到底是个QWidget控件。原创 2015-09-30 10:01:59 · 602 阅读 · 0 评论 -
qt model中headerData()函数的调用
qt中,model类中,会提供headerData()方法。该方法的调用时机: void TradeTableView::setModel(TradeTableModel* model) { if(!model) return; m_Model = mo原创 2015-09-30 14:58:29 · 9428 阅读 · 0 评论 -
QTableView 设置列头 setHeaderView()
//创建HeadView列头 void TradeTableView::InitView() { //设置列头 QHeaderView *pHorizontal = new TradeHeaderView(Qt::Horizontal,this);//使用自定义的列头 if (pH原创 2015-09-30 10:11:38 · 16763 阅读 · 2 评论 -
qt model 与 view 的数据显示
比如trade插件中,model中存储的数据,是放在QList中的。那为何view调用了SetModel()后,显示的就是表格呢?因为,view是QTableView,是个表格View。所以,即使model中的数据是一样的,即都存储在QList中。但是因为view不一样,所以,显示出来的也是不一样的。有TreeView,有TableView。原创 2015-09-30 15:49:44 · 1095 阅读 · 0 评论 -
qt 委托 paint() 显示数据
SubclassingWhen subclassing QItemDelegate to create a delegate that displays items using a custom renderer, it is important to ensure that the delegate can render items suitably for all the requ原创 2015-10-01 09:00:23 · 776 阅读 · 0 评论 -
qt 委托 delegate
委托的作用是,显示和编辑视图view中的item。大多数情况下,view视图中的默认delegate委托已经足够了。一般不需要自定义委托。如果项更好的控制有关项item的显示,可用在自定义model中实现,data()函数中,根据不同的role,返回不同的值。比如:Qt::FontRole,Qt::DisplayRole等角色。data()函数会自动的被委托调用。原创 2015-10-01 08:38:20 · 1294 阅读 · 0 评论 -
QListWidget QTableWidget 项视图类
QListWidget QTableWidget 项视图类这几个类,是把数据存储在Item中,即存储在 项 中。对于QTableWidget这样的项视图类,都是在操作item和QTableWidget。比如,新增加一行。要先new多个QTableWidgetItem的实例,因为有许多列,然后调用QTableWidget的setItem方法,调用多次,设置这些item原创 2015-10-01 07:04:04 · 435 阅读 · 0 评论 -
model 中的selectedRows()函数
QModelIndexList selectItems = ui.m_tableView->selectionModel()->selectedRows();获取view中,用户鼠标选中的行,转载 2016-03-23 11:38:37 · 5469 阅读 · 0 评论