Qt
大约 2 分钟
Qt
目录
Item类(视图类)
Item Views,项目视图(Model-Based)
Item Views与Item Widgets很像,但前者需要基于数据库而后者不需要
- List View,清单视图
- Tree View,树形视图
- Table View,表视图
- Column View,列视图
- Undo View
Item Widgets,项目控件(Item-Based)
Item Views与Item Widgets很像,但前者需要基于数据库而后者不需要
- List Widget,列表控件
- 使用1:添加一项(每项是一个
QListWidgetItem
)- (1) 先创建一个项,
QListWidgetItem * item = new QListWidgetItem("First Item");
- (2) 将项放入List Widget,
ui->listWidget->addItem(item);
- 其他:项设置水平居中,
item->setTextAlignment(Qt::AlignHCenter);
- (1) 先创建一个项,
- 使用2:添加多项(
QString List
或QList<QString>
)- (1) 创建一个列表,
QStringList list; list << "First" << "Seconed" << "Thrid";
- (2) 将列表放入List Widget,
ui->listWidget->addItems(list);
- 其他:但该方法不能做居中
- (1) 创建一个列表,
- 使用1:添加一项(每项是一个
- Tree Widget,树控件
- 使用:(每项是一个
QTreeWidgetItem
)- (1) 设置水平头,
ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"介绍");
- (2) 创建树节点(根/子节点),
QTreeWidgetItem * parItem = new QTreeWidgetItem(QString()<<"力量");
- (3) 加载根节点,
ui->treeWidget->addTopLevelItem(liItem);
- (4) 追加子节点,
liItem->addChild(subItem);
- (1) 设置水平头,
- 使用:(每项是一个
- Table Widget,表格控件
- 使用:(每一项是一个
QTableWidgetItem
)- (1) 设置列数,
ui->tableWidget->setColumnCount(3);
- (2) 设置水平表头,
ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
- (3) 设置行数,
ui->tableWidget->setRowCount(5);
- (4) 设置内容,
ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));
- (1) 设置列数,
- 使用:(每一项是一个
模型/视图结构(见另一章)
略,见另一章
Item拖拽、界面中存储数据、Qt::UserRole的使用
Item拖拽
参考NodeEditor程序
界面中存储数据
详见 https://blog.csdn.net/sajdhfkjidkgjo/article/details/104685538/
常见接口
Qt中,可以通过绝大部分已有的接口来存数数据、获取数据。例如:
- 存储数据
- setData()
- setItemData()
- setUserData()
- 获取数据:
- data()
- itemData()
- userData()
常用的基本就这些,当然,还有其他的一些接口
Qt::UserRole的使用
详见 https://blog.csdn.net/sajdhfkjidkgjo/article/details/104685538/
单独存储
通过setData(),我们可以单独存储用户数据,使用Qt::UserRole、Qt::UserRole + 1……
整体存储
也可以通过setData()进行整体存储,这时候只需要使用Qt::UserRole即可,把用户数据当成一个结构体来存储。
setItemData()和itemData()
setUserData()和userData()