当前位置: 首页 > article >正文

QT-column小节一下

在C++语法里面

在 Qt 框架中,"column"(列)这一术语主要与表格相关的控件紧密相关。

  1. 这些控件,例如 QTableWidget 和 QTableView,通常被用于以二维表格的形式展示数据。在这样的上下文中,"column" 指的是表格中的垂直数据列
  2. 而与之对应的 "row"(行)则指的是水平数据行。

1. QTableWidget

QTableWidget 是一个方便的表格控件,用于显示二维数据。你可以通过 column 方法来引用和操作特定的列。

获取和设置列宽

	QTableWidget *tableWidget = new QTableWidget(5, 3); // 创建一个 5 行 3 列的表格

	// 设置第一列的宽度为 100

	tableWidget->setColumnWidth(0, 100);

	// 获取第一列的宽度

	int columnWidth = tableWidget->columnWidth(0);

 

在特定列中插入数据
// 在第一行第一列插入数据
tableWidget->setItem(0, 0, new QTableWidgetItem("Data 1,1"));
// 在第二行第二列插入数据
tableWidget->setItem(1, 1, new QTableWidgetItem("Data 2,2"));

 

2. QTableView 与 QStandardItemModel

QTableView 是一个更灵活的表格视图控件,它通常与 QAbstractItemModel 派生类(如 QStandardItemModel)一起使用,以提供数据。

设置 QStandardItemModel 并使用 QTableView 显示
QTableView *tableView = new QTableView;
QStandardItemModel *model = new QStandardItemModel(5, 3); // 创建一个 5 行 3 列的模型
// 设置模型
tableView->setModel(model);
// 在第一行第一列插入数据
model->setItem(0, 0, new QStandardItem("Data 1,1"));
// 在第二行第二列插入数据
model->setItem(1, 1, new QStandardItem("Data 2,2"));
// 设置第一列的标题
model->setHeaderData(0, Qt::Horizontal, "Column 1");

 

3. 列的选择和操作

Qt 提供了多种方法来选择和操作列,包括选择列、隐藏列、移动列等。

隐藏列
// 隐藏第一列
tableWidget->hideColumn(0);
// 或者在 QTableView 中
model->removeColumn(0); // 注意,这将从模型中移除列,而不是仅仅隐藏它

 

选择列(QItemSelection)
QItemSelection selection(model->index(0, 0), model->index(4, 0)); // 选择第一列的所有行
tableView->selectionModel()->select(selection, QItemSelectionModel::Select);

 

4. 信号和槽

Qt 还提供了多种信号,用于在列发生变化时通知开发者。例如,QTableView 的 QHeaderView 提供了 sectionResizedsectionClicked 等信号。

connect(tableView->horizontalHeader(), &QHeaderView::sectionResized, this, &YourClass::onColumnResized);
// 槽函数
void YourClass::onColumnResized(int logicalIndex, int oldSize, int newSize) {
qDebug() << "Column" << logicalIndex << "resized from" << oldSize << "to" << newSize;
}

这些示例展示了如何在 Qt 中使用 column 相关的方法和信号来操作表格视图中的数据。根据你的具体需求,你可以进一步定制和扩展这些功能。

在 Qt 框架中,"column"(列)这一术语主要与表格相关的控件紧密相关。这些控件,例如 QTableWidget 和 QTableView,通常被用于以二维表格的形式展示数据。在这样的上下文中,"column" 指的是表格中的垂直数据列,而与之对应的 "row"(行)则指的是水平数据行。

QML中

在 Qt QML(Qt Quick Markup Language)中,Column 是一种布局元素,它用于将其子元素垂直排列成一列。这种布局方式非常适合在不使用锚点(anchors)的情况下,快速且直观地组织界面元素。

Column 的基本用法

  • 垂直排列Column 会自动将其子元素垂直布局,因此你不需要为子元素设置 Y 位置或使用如 topbottomanchors.verticalCenterfill 或 centerIn 等锚点属性。
  • 间距和填充:你可以使用 spacing 属性来设置 Column 内部元素之间的间隔,以及使用 padding 属性(或更具体的 leftPaddingtopPaddingrightPadding 和 bottomPadding)来设置子元素周围的空白区域。
  • 过渡效果Column 支持通过 Transition 或 NumberAnimation 等属性为添加、移除或重新排列子元素时设置动画效果。
import QtQuick 2.15
import QtQuick.Controls 2.15

ApplicationWindow {
    visible: true
    width: 200
    height: 200
    Column {
        spacing: 10
        Rectangle {
        color: "red"
        width: 50
        height: 50
        }
        Rectangle {
        color: "green"
        width: 50
        height: 50
        }
        Rectangle {
        color: "blue"
        width: 50
        height: 50
        }
    }
}

三个矩形被垂直排列在一个 Column 中,它们之间的间隔设置为 10 像素。

注意事项

  • 如果 Column 中的某个子元素的 visible 属性为 false,或者其宽度或高度为 0,则该元素将不会被布局,因此在 Column 中将不可见。
  • Column 自动处理子元素的垂直布局,因此不应该为子元素设置 Y 位置或使用锚点属性来进行垂直定位。

http://www.kler.cn/a/389830.html

相关文章:

  • FFmpeg 4.3 音视频-多路H265监控录放C++开发十三:将AVFrame转换成AVPacket。视频编码原理.编码相关api
  • 28.医院管理系统(基于springboot和vue)
  • 【Vue】Vue3.0(二十一)Vue 3.0中 的$event使用示例
  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
  • 网络安全-Linux基础(bash脚本)
  • 【CICD】GitLab Runner 和执行器(Executor
  • 从2D到3D:MoGe——微软的单目3D几何重建模型
  • 为 5G 应用设计天线阵列和 MIMO 系统
  • STM32完全学习——存储器映像
  • Java全栈体系路线
  • 【Java】—— 函数式编程:Lambda表达式、方法引用
  • 如何在 CentOS 6 上设置 NFS 挂载
  • 22.04Ubuntu---ROS2使用rclcpp编写节点C++
  • echarts:当前柱状图默认显示两个,拖拽后显示其他的柱状,请问怎么默认显示所有的?
  • 深入理解TCP/IP协议
  • React融合css
  • caozha-whois(域名Whois查询源码)
  • 模型解释新方向!浙大揭秘LLM隐层之间的知识流动!
  • 使用 FFmpeg 进行音视频转换的相关命令行参数解释
  • 解决C盘空间不足的三种方案
  • 使用LNMP搭建私有云存储
  • C/C++中指针
  • 【MATLAB源码-第209期】基于matlab的MSK调制解调仿真,对比三种解调方法的误码率分别是相干解调,1比特差分,2比特差分。
  • MSTP多实例生成树:避免单点设备故障,流量负载均衡。
  • SDL线程
  • 了解什么是数据库(简介)