QTableView初始化参数设置

QStandardItemModel* m_list_item_model = NULL;

/如果列表项目对象指针为空,则创建列表项目指针对象/

	if (m_list_item_model == NULL)
	{
		this->m_list_item_model = new QStandardItemModel(this->ui.m_PatientCheckTableView);
	}
	this->m_list_item_model->clear();
	this->m_list_item_model->setColumnCount(6);//设置列表列数

	/*---设置列表每一列表头的显示内容----*/
	this->m_list_item_model->setHeaderData(0, Qt::Horizontal, tr("张三"));
	this->m_list_item_model->setHeaderData(1, Qt::Horizontal, tr("李四"));
	this->m_list_item_model->setHeaderData(2, Qt::Horizontal, tr("王五"));
	this->m_list_item_model->setHeaderData(3, Qt::Horizontal, tr("小米"));
	this->m_list_item_model->setHeaderData(4, Qt::Horizontal, tr("华为"));
	this->m_list_item_model->setHeaderData(5, Qt::Horizontal, tr("vivo"));

	/*---设置列表属性----*/
	this->ui.m_TableView->setModel(this->m_list_item_model);//加载列表项目对象
	this->ui.m_TableView->setAlternatingRowColors(true);//设置区分奇偶行
	//this->ui.m_TableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);//表头内容居左显示
	this->ui.m_TableView->horizontalHeader()->setDefaultAlignment(Qt::AlignVCenter);//表头内容居中显示
	this->ui.m_TableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//均分列宽
	//this->ui.m_TableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);//可自定义列宽
	this->ui.m_TableView->horizontalHeader()->setFixedHeight(65);//设置表头高
	this->ui.m_TableView->horizontalHeader()->setHighlightSections(false);//关闭列表被选中后表头高亮状态
	this->ui.m_TableView->setSelectionBehavior(QAbstractItemView::SelectRows);//整行选择
	this->ui.m_TableView->setSelectionMode(QAbstractItemView::SingleSelection);//只能单行选择
	this->ui.m_TableView->setEditTriggers(QTableView::NoEditTriggers);//设置非编辑状态
	this->ui.m_TableView->horizontalHeader()->setObjectName("hHeaderPatientCheck");//将列表表头命名
	/*this->ui.m_TableView->setRowHeight(0,50);//设置行高*/

#ifdef VERSION_IS05_2_0
/—设置列表表头样式----/
this->ui.m_PatientCheckTableView->horizontalHeader()->setStyleSheet(“QHeaderView::section{background-color:qlineargradient(x1:0, y1:1, x2:0, y2:0, stop:0 #1f1f1f , stop:1 #4a4a4a);”
“border:2px solid #505050;border-radius: 0px;padding-top:15px;padding-bottom:15px;font-family:“Arial”;color:white;font:20px;image-position:right;}”);
/—设置列表宽度----/
this->ui.m_PatientCheckTableView->setColumnWidth(0, 460);
this->ui.m_PatientCheckTableView->setColumnWidth(1, 350);
this->ui.m_PatientCheckTableView->setColumnWidth(2, 350);
this->ui.m_PatientCheckTableView->setColumnWidth(3, 400);
this->ui.m_PatientCheckTableView->setColumnWidth(4, 350);
this->ui.m_PatientCheckTableView->setColumnWidth(5, 1);

ui.m_ShowEventsTableView->horizontalHeader()->setSectionResizeMode(4, QHeaderView::ResizeToContents);//设置第四列根据内容多少自适应列宽

### QTableView 设置操作 #### 设置宽 可以通过 `QHeaderView` 来调整 `QTableView` 的宽。具体方法是调用 `horizontalHeader()` 函数获取水平表头对象,并使用其提供的函数来控制为和外观。例如,可以使用以下代码动态设置宽: ```cpp tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); // 可手动调节宽 tableView->horizontalHeader()->resizeSection(0, 200); // 将第0宽度设为200像素 ``` 上述代码中的 `setSectionResizeMode` 方法允许指定每的大小模式[^3]。常见的选项包括: - `QHeaderView::Fixed`: 宽固定不可变。 - `QHeaderView::Interactive`: 用户可拖动改变宽。 - `QHeaderView::Stretch`: 自动拉伸填充可用空间。 如果希望自动调整宽以适应内容,则可以使用以下代码[^4]: ```cpp tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); ``` 此方式会根据单元格的内容自动计算并分配合适的宽。 --- #### 隐藏特定 有时可能需要隐藏某些不需要展示给用户的。这可以通过以下代码实现: ```cpp tableView->setColumnHidden(columnIndex, true); // 隐藏 columnIndex 对应的 ``` 其中 `columnIndex` 是要隐藏的索引。若想重新显示该,只需将第二个参数改为 `false` 即可。 --- #### 排序功能 为了支持按某一排序的功能,需启用 `QTableView` 的排序特性。以下是相关代码示例: ```cpp tableView->setSortingEnabled(true); // 启用排序功能 tableView->sortByColumn(columnIndex, Qt::AscendingOrder); // 按升序排 ``` 这里 `columnIndex` 表示目标的索引位置,而 `Qt::AscendingOrder` 和 `Qt::DescendingOrder` 分别表示升序和降序排序方向[^1]。 --- #### 定制为 除了基本的宽设定外,还可以进一步定制为。比如绑定自定义数据到每一上或者修改默认渲染逻辑。这些通常涉及重写模型 (`QAbstractItemModel`) 中的相关虚函数,如 `data()`, `headerData()` 等[^2]。 --- #### 示例综合应用 下面给出一段完整的例子演示如何创建一个具有基础配置 (含宽调整、隐藏部分以及开启排序) 的 `QTableView` 控件实例: ```cpp #include <QApplication> #include <QTableView> #include <QStandardItemModel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QTableView tableView; QStandardItemModel model(4, 3); // 创建一个43的标准条目模型 for (int row = 0; row < 4; ++row) { for (int col = 0; col < 3; ++col) { QModelIndex index = model.index(row, col, QModelIndex()); model.setData(index, QString("Row%1, Col%2").arg(row).arg(col)); } } tableView.setModel(&model); // 调整宽 tableView.horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); tableView.horizontalHeader()->resizeSection(0, 150); // 隐藏第二 tableView.setColumnHidden(1, true); // 开启排序 tableView.setSortingEnabled(true); tableView.sortByColumn(0, Qt::AscendingOrder); tableView.show(); return app.exec(); } ``` 以上程序展示了如何初始化一个简单的表格视图,并对其进了必要的属性设置。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值