QtTableView

Qt TableView  第一部分
最近做Qt项目  用到Qtableview  显示数据  网上查了些资料 结合自己在工程中遇到的实际问题  总结了一些Qtableview的用法:
QTableView *tableview;
QStandardItemModel *model = new QStandardItemModel();
Qtableview用的mvc模式  实际上用到的是model/view居多
tableview->setmodel(model);来使用model
model->setHeaderdata();设置表的column名称;
当然如果想隐藏column名称的话 只需要用:tableview->horizontalHeader()->setVisible(false); 
隐藏row名称:tableview->verticalHeader()->setVisible(false);
若是想设置表格column的样式 使用:tableview->->horizontalHeader()->setStyleSheet();
使用setColumnWidth()来设置Header的宽度;
QT还提供了对表格表头进行设置的model:
tableview->horizontalHeader()->setResizeMode();
tableview->verticalHeader()->setResizeMode(); 
Qt提供的 setResizeMode()有四种:
QHeaderView::Interactive;
QHeaderView::Fixed;
QHeaderView::Stretch;
QHeaderView::ResizeToContents; 
对表格表头设置完之后,接下来就是表格之中的item:
要得到当前选中的item,如下操作:
QModelIndex Index = tableview->currentIndex();得到当前的Index;
QStandardItem *item = listAll->itemFromIndex(index);//根据index 得到item
如果想让点击item 发送信号 则可以使用:
connect(tableview, SIGNAL(clicked ( const QModelIndex &)), this,
  SLOT(Function(const QModelIndex &)));//点击tableview中的item触发信号
 
若要对item可以设置背景颜色  使用:setBackground()即可;
 
 
另外: horizontalHeaderItem用来得到具体的headerItem  然后使用setBackgroundColor设置背景色  不知道什么原因我在使用过程中没有产生效果 不知哪个地方出现问题了  有知道的 希望能够指点一二:
QStandardItem *headerItem = model->horizontalHeaderItem(i);
headerItem->setBackground();
在我使用
headerItm->text();时是可以得到header的text的;

转载于:https://www.cnblogs.com/Dennis-mi/articles/5249902.html

### 关于 QT TableView 的使用教程及常见问题 #### 1. 加载不同版本的 `TableView` 控件 在 QT 中,可以利用模块别名的方式加载特定版本的 `TableView` 控件。通过这种方式,开发者可以在同一项目中分别调用旧版和新版的控件功能。 以下是具体实现方法: ```qml import QtQuick.Controls 1.4 as QC14 import QtQuick.Controls 2.1 as QC21 QC14.TableView { id: oldTableView } QC21.TableView { id: newTableView } ``` 上述代码展示了如何导入两个不同版本的 `TableView` 并赋予它们不同的名称空间[^1]。这样可以根据需求选择合适的版本进行开发。 --- #### 2. 使用 QTableWidget 实现表格数据展示 如果需要基于 Python 和 PyQt 来操作表格视图,则可以通过 `QTableWidget` 完成复杂的数据处理逻辑。下面是一个简单的例子,演示如何创建一个窗口并显示表格内容: ```python from PyQt5.QtWidgets import QMainWindow, QApplication, QTableWidgetItem import sys from ui.table_ui import Ui_MainWindow class TableWin(QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) # 设置表格列数和行数 self.tableWidget.setRowCount(3) self.tableWidget.setColumnCount(3) # 添加单元格数据 for row in range(3): for col in range(3): item = QTableWidgetItem(f"Row{row} Col{col}") self.tableWidget.setItem(row, col, item) if __name__ == '__main__': app = QApplication(sys.argv) table_win = TableWin() table_win.show() sys.exit(app.exec_()) ``` 此代码片段定义了一个继承自 `QMainWindow` 的类,并初始化了带有三行三列表格的小型应用程序[^3]。它还包含了向每个单元格填充字符串的功能。 --- #### 3. QT 性能优化与界面美化技巧 对于更复杂的场景,比如大规模数据集或者高频率更新的操作环境,可能需要考虑性能方面的改进措施以及视觉效果上的增强手段。这些主题通常涉及以下几个方面: - **模型/视图架构**:合理设计数据模型以减少不必要的刷新次数。 - **异步加载机制**:当面对大量记录时采用分页技术来逐步呈现信息而不是一次性全部渲染出来。 - **样式定制化**:运用 CSS 类似语法调整组件外观属性从而达到更好的用户体验目标。 有关这方面的深入学习资源可参考专门针对 QT 的高级培训资料[^2]。 --- #### 4. 安装 QT6 及其相关依赖项 为了支持最新特性(如 Quick Controls 2),建议升级到最新的稳定发行版——即当前主流分支之一的 QT6 。按照官方文档指引完成基础环境搭建之后再继续探索后续步骤即可[^4]。 --- ### 示例总结 综上所述,在实际应用过程中可能会遇到诸如跨平台兼容性测试失败等问题;另外需要注意的是随着软件迭代速度加快也可能存在某些API接口发生变化的情况所以务必保持关注官方公告以便及时作出相应修改动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值