首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

具有水平标题的QML TableView -列宽

在 QML 中使用 TableView 时,设置列宽和添加水平标题可以通过几种方式实现。这里,我将提供一个简单的示例,展示如何在 TableView 中设置列宽,并添加水平标题。

步骤 1: 创建基本的 QML 应用结构

首先,确保你的环境已经安装了 Qt 和相应的开发工具。下面是一个基本的 QML 文件结构,用于展示如何构建一个带有 TableView 的界面。

代码语言:javascript
复制
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Window 2.15

Window {
    visible: true
    width: 640
    height: 480
    title: "TableView Example"

    TableView {
        id: tableView
        anchors.fill: parent
        columnSpacing: 1
        rowSpacing: 1
        clip: true

        model: ListModel {
            ListElement { name: "Alice"; age: 30 }
            ListElement { name: "Bob"; age: 25 }
            ListElement { name: "Carol"; age: 27 }
        }

        delegate: Rectangle {
            width: tableView.columnWidthProvider(column)
            height: 40
            Text {
                text: model.name
                anchors.verticalCenter: parent.verticalCenter
            }
        }

        // Column width provider
        columnWidthProvider: function(column) {
            if (column === 0) {
                return 200; // Width for the first column
            } else {
                return 100; // Width for the second column
            }
        }

        // Header
        headerDelegate: Rectangle {
            height: 40
            width: tableView.columnWidthProvider(column)
            color: "#dddddd"
            border.color: "#333333"
            Text {
                text: ["Name", "Age"][column]
                anchors.centerIn: parent
                font.bold: true
            }
        }
    }
}

详细说明

  1. Model: ListModel 用于定义数据。这里我们有两个字段:nameage
  2. Delegate: 用于定义如何显示模型中的每个条目。在这个例子中,我们使用 Rectangle 作为背景,并在其中放置一个 Text 元件来显示名字。
  3. Column Width Provider: columnWidthProvider 是一个函数,用于为每列设置宽度。在这个例子中,第一列的宽度设置为 200,第二列为 100。
  4. Header Delegate: headerDelegate 用于定义表头。这里我们同样使用 RectangleText 来显示每列的标题。

运行应用

保存上述代码到一个 .qml 文件中,并使用 qmlscene 工具或在 Qt Creator 中运行它。你应该能看到一个带有两列和标题的 TableView,其中列宽根据 columnWidthProvider 函数设置。

这个例子展示了如何在 QML 中使用 TableView 来创建一个简单的表格视图,包括如何设置列宽和添加水平标题。你可以根据需要调整列宽和标题的样式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于 HTML5 Canvas 属性值点击出现多选项制作

如果设置值为 0~1 则按百分比分割,大于 1 代表左组件或上组件绝对或高,小于 1 代表右组件或下组件绝对或高)。...(config) 方法配置对话框标题,尺寸,内容等,我给 createDialog 传了一个参数 tPane 表格组件,用作对话框显示内容: ?...,wh表示高都可调整 }); dialog.show();//显示对话框 }  第四个参数 tableP 表格组件,也没有什么特别的,就是创建一个表单组件,然后向表单组件中添加,步骤简单...tableView.addColumns([//用json数组参数方式批量添加信息 { displayName: 'ID',//获取表头列名内容...y坐标,w绘制宽度,h绘制高度,align文字水平对齐方式,vAlign文字垂直对齐方式) } }, { displayName

1.9K20
  • python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例

    #设置数据层次结构,4行4 self.model=QStandardItemModel(4,4) #设置水平方向四个头标签文本内容 self.model.setHorizontalHeaderLabels...) self.tableView.setModel(self.model) # #todo 优化1 表格填满窗口 # #水平方向标签拓展剩下窗口部分,填满表格 #...self.tableView.horizontalHeader().setStretchLastSection(True) # #水平方向,表格大小拓展到适当尺寸 # self.tableView.horizontalHeader...从图中可以看出,表格并没有填满窗口,每都可以自由拉伸,但是可能会出现滚动条 优化1:需要表格填充满窗口,可以添加一下代码 #水平方向标签拓展剩下窗口部分,填满表格 self.tableView.horizontalHeader...().setStretchLastSection(True) #水平方向,表格大小拓展到适当尺寸 self.tableView.horizontalHeader().setSectionResizeMode

    5.7K22

    Qt 5.13版本正式发布(带下载链接)

    3.Qt QML   Qt QML模块为使用QML语言开发多变用户界面提供了一个框架。...我们改进了对C++中声明枚举支持,在编译时对JavaScript“null”绑定值进行了优化,现在QML在64位窗口上生成函数表,这使得通过JITed函数展开堆栈成为可能。...我们已经添加了对TableView隐藏行和支持,而对于Qt Quick Controls 2,我们添加了SplitView,这是一个水平或垂直布置项目的控件,每个项目之间都有一个可拖动拆分器。...Qt 5.13现在使用OpenSSL 1.1来支持Linux和Android上SSL连接。 7.Qt多媒体   提供丰富QML类型和C ++类来处理多媒体内容。...主要是,C++ API现在完全受支持,我们添加了QML API和安全客户端C ++ API技术预览。

    8.1K20

    macOS开发之NSTableView应用详解

    这是一个最简单TableView示例,但是细读代码,麻雀虽小五脏俱全。首先NSTableView中是由NSTableColumn类描述。一个列表可以有多个。...; //设置最小宽度 @property CGFloat minWidth; //设置最大宽度 @property CGFloat maxWidth; //设置类标题 @property (copy...) NSString *title; /* 标题视图 开发者可以对其进行修改 需要注意,NSTableHeaderCell是继承自NSTextFieldCell */ @property (strong...以标题视图宽度为标准 - (void)sizeToFit; //提供了这个属性,会在标题那里显示一个排序按钮 点击标题后可以进行排序操作(会回调相关协议方法) @property (nullable...= ( 1 << 1 ), //允许用户进行尺寸调整 }; */ @property NSTableColumnResizingOptions resizingMask; //设置提示标题 当鼠标悬停在类标题上时

    4.8K21

    Qt开源作品19-通用数据库翻页查询

    ,搜索引擎搜索出来结果也基本上都是翻页显示,那么问题来了,有没有一种通用办法可以只需要传入表名和查询条件自动翻页呢,答案是肯定,Qt对数据库操作封装也是相当完美的,显示也是如此,为此特意封装成了一个类...,数据量巨大时候不会卡主界面 提供查询结果返回信号,包括当前页/总页数/总记录数/查询用时 可设置所有或者某一对齐样式例如居中或者右对齐 可设置增加一,位置,标题,宽度 可设置要查询字段集合...->setModel(queryModel); //依次设置标题 int columnCount = tableView->model()->columnCount();...将对应新标题名称和宽度按照索引位置插 if (insertColumnIndex >= 0) { columnCount++; columnNames.insert...insertColumnIndex, insertColumnWidth); queryModel->insertColumn(insertColumnIndex); } //设置标题宽度

    96330

    原 快速创建 HTML5 Canvas 电

    1 代表左组件或上组件绝对或高,小于 1 代表右组件或下组件绝对或高);还有 BorderPane 面板组件为布局容器,可在上、下、左、右、中五个区域位置摆放子组件, 子组件可为 HT 框架提供组件...fillFormPane 函数,这个函数参数分别为(表单组件 formP,表单组件 w,表单组件高 h,表单组件中按钮点击生成弹出框中表格组件 tableP,表格组件中数组内容 arr,cb...(tPane){//创建弹出框 dialog.setConfig({ title: gv.sm().ld().getName()+""+formPane.title,//对话框标题...dm); tableView.addColumns([//用json数组参数方式批量添加信息 { displayName: 'ID',//获取表头列名内容...y坐标,w绘制宽度,h绘制高度,align文字水平对齐方式,vAlign文字垂直对齐方式) } }, { displayName

    1.4K20

    真正干货!100多条Qt开发经验,解决你开发各种问题!

    在Qt5.10以后,表格控件QTableWidget或者QTableView默认最小改成了15,以前版本是0,所以在新版qt中,如果设置表格过小,不会应用,取是最小。...所以如果要设置更小需要重新设置ui->tableView->horizontalHeader()->setMinimumSectionSize(0); 88....在构造函数中获取控件高很可能是不正确,需要在控件首次显示以后再获取才是正确,控件是在首次显示以后才会设置好正确高值,记住是在首次显示以后,而不是构造函数或者程序启动好以后,如果程序启动好以后有些容器控件比如...tableView->horizontalHeader()->setStretchLastSection(true); //行标题最小宽度尺寸 tableView->horizontalHeader...()->setMinimumSectionSize(0); //行标题最大高度 tableView->horizontalHeader()->setMaximumHeight(rowHeight);

    4.1K11

    资讯 | Qt 5.15中新功能

    引入了QMLMediaPlayervideoOutput属性。 引入了QVideoFrame::image()。...支持最低OpenSSL版本为1.1。 Qt QML 引入了内联组件(能够在同一文件中声明多个QML组件)。 引入了所需属性。 添加了一种向QML注册类型声明方式。...qmllint提供警告了更多不推荐使用QML功能。 添加了qmlformat工具,该工具可以根据QML编码约定自动格式化任何QML文件。 添加了对Nullish合并运算符支持。...当鼠标悬停在包含HoverHandlerItem上时,HoverHandler将对其进行更改。 现在,独立于图形API渲染架构可选预览也支持iOS上Metal。...Qt Quick Controls 2 添加了HorizontalHeaderView和VerticalHeaderView以在TableView中显示标题数据。

    3.6K10

    Android 自定义LayoutManager实现花式表格

    TableView具有如下特点: 支持不规则表格 同时支持横向和纵向滚动 支持顶部和左侧悬浮 基于RecyclerView,所以RecyclerView自定义子视图、高效回收、子视图多样性这些特点它都有...在展示代码之前,了解一下TableView主要函数: ?...为了确保表格每一个单元格长度和宽度都一样(子视图可以在横纵方向上占有多个单元格),宽和高都使用两种方式: 设置具体值,那么单元格或者高值就是具体 设置一行或者一可以容纳单元格数量 所以高各有两种...使用模式是Mode_A、Mode_C和Mode_D,需要再重新测量: mTable.post(() - mTable.reMeasure()); 总结 总的来说,TableView核心是TableLayoutManager...,也就是RecyclerView中LayoutManager,类似于可以随时横纵向切换GridLayoutManager,如果各位同学对TableView感兴趣,我将会在后续文章深入原理。

    1.8K21

    asp语法教程_如何编程

    end if end if if not rs.eof then rs.AbsolutePage = intpage end if %> 插入1行6...end if end if if not rs.eof then rs.AbsolutePage = intpage end if %> 插入1行3...100%表格,在1里写入调取数据表字段语句 name: 在2里写入调取数据表字段和连接查看内容页面的 <a href=”qck.asp?...用户注册由传递和执行2个页面组成 1, 在数据库里编制数据库用户表 2, yhzc.asp 实质就是写入页面,和添加一样,就是多一个检查用户存在和密码语句 建立yhzc.asp 文件 插入表单后,插入4行1...%> 二,用户登录 用户登录由传递和执行2个页面组成 1,yhdl.asp 建立yhdl.asp 文件 插入表单后,插入3行1 300表格, 第1行输入 “用户名:”在后面插入文本字段 文本域输入

    3.8K10

    Qt 5.15长期支持版本正式发布

    为MediaPlayer QML元素引入了videoOutput属性。 引入了QVideoFrame::image()。...支持最低OpenSSL版本是1.1。 Qt QML 「引入了内联组件(能够在同一文件中声明多个QML组件)。」 引入了一些所需属性。 添加了一种向QML注册类型声明方式。...qmllint现在对代码有更智能分析,并会警告不推荐使用QML功能。 添加了QML格式化工具,该工具可以根据QML编码约定自动格式化任何QML文件。 添加了对Nullish合并运算符(??)...当鼠标悬停在包含HoverHandlerItem上时,HoverHandler将对其进行更改。 现在,独立于图形API渲染架构可选预览也支持iOS上Metal。...Qt Quick Controls 2 添加了HorizontalHeaderView和VerticalHeaderView以在TableView中显示标题数据。

    4K20

    Qt软件商店上架几个组件

    树视图   TreeView是一种QML类型,用于显示任何QAbstractItemModel中数据。它使用可扩展和可折叠节点扩展TableView,可在列表或表模式下使用。...后一种模式允许用户使用左右箭头键在各之间导航。   有几种方便方法可用于在视图中将模型索引与项目索引映射。可以创建自定义委托,但是可以通过几个样式提示自定义视图委托。...行背景和前景色,备用背景色,文本字体以及折叠/展开图标可以轻松更改,而无需编写新委托。 2. 日历   日历提供了用于在Qt Quick中创建日历模块化构建块集合。...通过将更传统日历控件分为几种类型,可以通过使用GridLayout或任何其他定位系统组装所需控件来轻松创建自定义日历。   ...此着色器是根据用户启用功能/效果动态创建,以使其始终尽可能最佳。当效果数量增加时,Qt Quick MultiEffect性能明显优于使用多个Qt图形效果。

    1.3K10

    iOS 9 Storyboard 教程(一下)

    现在Table View Controller有一个空原型cell.点击原型cell,你可以在Attributes inspector中设置它样式(Style)和副标题(Subtitle)....如果你之前使用过table view,兵器手动创建过cell,你可能会认出这是UITableViewCellStyle.带副标题(Subtitle)样式.和原型cell一样,你也可以选择一个内置cell...这个table view应该会显示一玩家名单,所以现在你需要为这个app创建一个数据模型—一个包含Player对象数组.使用Swift File模板在iOS/Source里为这个工程添加一个新文件....它可以很容易布局视图集合样式. ---- 拖拽一个ImageView到cell并把它放到右侧,在Size Inspector里设置它为81高为35.设置它Mode在中心(Center)(在Attributes...如果你stack view有橙色约束,表明它错位了.为了解决这个问题,选择水平stack view然后选择Editor\Resolve Auto Layout Issues\Update Frames

    3.1K20
    领券