Qt5开发与实例(第2版)-第2章 Qt 5模板库、工具类与控件.pptVIP

  • 35
  • 0
  • 约 77页
  • 2017-06-07 发布于湖北
  • 举报

Qt5开发与实例(第2版)-第2章 Qt 5模板库、工具类与控件.ppt

2.5.7 项目视图组(Item Views) QTableWidget继承自QTableView。QSqlTableModel能够与QTableView绑定,但不能与QTableWidget绑定。例如: QSqlTableModel *model = new QSqlTableModel; model-setTable(employee); model-setEditStrategy(QSqlTableModel::OnManualSubmit); model-select(); model-removeColumn(0); // 不显示 ID model-setHeaderData(0, Qt::Horizontal, tr(Name)); model-setHeaderData(1, Qt::Horizontal, tr(Salary)); QTableView *view = new QTableView; view-setModel(model); view-show(); ? 2.5.7 项目视图组(Item Views) 视图与模型绑定时,模型必须使用new创建,否则视图不能随着模型的改变而改变。 下面是错误的写法: QStandardItemModel model(4,2); model.setHeaderData(0, Qt::Horizontal, tr(Label)); model.setHeaderData(1, Qt::Horizontal, tr(Quantity)); ui.tableView-setModel(model); for (int row = 0; row 4; ++row) { for (int column = 0; column 2; ++column) { QModelIndex index = model.index(row, column, QModelIndex()); model.setData(index, QVariant((row+1) * (column+1))); } } 2.5.7 项目视图组(Item Views) 下面是正确的写法: QStandardItemModel *model; model = new QStandardItemModel(4,2); ui.tableView-setModel(model); ? model-setHeaderData(0, Qt::Horizontal, tr(Label)); model-setHeaderData(1, Qt::Horizontal, tr(Quantity)); for (int row = 0; row 4; ++row) { for (int column = 0; column 2; ++column) { QModelIndex index = model-index(row, column, QModelIndex()); model-setData(index, QVariant((row+1) * (column+1))); } } 2.5.8 项目控件组(Item Widgets) 项目控件组(Item Widgets)如图2.9所示。 项目控件组(Item Widgets)中各个控件的名称依次解释如下。 ? List Widget:清单控件。 ? Tree Widget:树形控件。 ? Table Widget:表控件。 2.5.8 项目控件组(Item Widgets) 【例】(难度中等) 创建具有复选框的树形控件。实例文件见光盘CH209。 在Qt中,树形控件称为QTreeWidget,而控件里的树节点称为QTreeWidgetItem。这种控件其实有时很有用处。例如,利用飞信软件群发短信时,选择联系人的界面中就使用了有复选框的树形控件,如图2.10所示。 2.5.8 项目控件组(Item Widgets) 具体步骤如下。 (1)新建Qt Widgets Application(详见1.3.1节),项目名称为“TreeWidget”,基类选择“QWidget”,类名保持“Widget”不变,保持“创建界面”复选框的选中状态。 (2)双击“widget.ui”文件,打开Qt的设计器,拖曳出一个QTreeWidget。 (3)在头文件“widget.h”中添加代码: ?#include QTreeWidgetItem ?在类Widget声明中添加代码: public: void init(); void updateParentItem(QTreeWidgetItem* item); pu

文档评论(0)

1亿VIP精品文档

相关文档