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

广州网站优化网站建设招聘网站制作公司

广州网站优化网站建设,招聘网站制作公司,当地网站建设问卷调查,计算机网络技术是什么目录 引言相关阅读工程结构示例一:基础TableView实现代码解析运行效果 示例二:自定义样式TableView代码解析运行效果 主界面运行效果 总结工程下载 引言 TableView作为Qt Quick中的一个核心控件,具有高性能、灵活性强的特点,能够…

目录

    • 引言
    • 相关阅读
    • 工程结构
    • 示例一:基础TableView实现
      • 代码解析
      • 运行效果
    • 示例二:自定义样式TableView
      • 代码解析
      • 运行效果
    • 主界面
      • 运行效果
    • 总结
    • 工程下载

引言

TableView作为Qt Quick中的一个核心控件,具有高性能、灵活性强的特点,能够满足从简单列表到复杂数据网格的各种需求。本文将通过两个具体示例,分别展示TableView的基础用法和自定义样式实现,帮助读者全面了解这一控件的应用场景和开发技巧。

相关阅读

  • Qt QML TableView官方文档

工程结构

qml_tableview工程
CMakeLists.txt
main.cpp
Main.qml
BasicTableView.qml
CustomTableView.qml

这个工程采用了CMake构建系统,由main.cpp作为程序入口,加载Main.qml作为主界面。Main.qml中包含了两个TableView示例组件:BasicTableView.qml(基础表格)和CustomTableView.qml(自定义样式表格)。


示例一:基础TableView实现

代码解析

BasicTableView.qml实现了一个简单的表格,展示了人员的基本信息:

import QtQuick
import QtQuick.Controls
import Qt.labs.qmlmodelsRectangle {width: 400height: 300color: "#f0f0f0"TableModel {id: tableModelTableModelColumn { display: "name" }TableModelColumn { display: "age" }TableModelColumn { display: "occupation" }rows: [{name: "张三",age: "25",occupation: "工程师"},{name: "李四",age: "30",occupation: "设计师"},{name: "王五",age: "28",occupation: "产品经理"},{name: "赵六",age: "35",occupation: "销售经理"}]}TableView {anchors.fill: parentanchors.margins: 10clip: truemodel: tableModelcolumnSpacing: 1rowSpacing: 1delegate: Rectangle {implicitWidth: 120implicitHeight: 40border.width: 1border.color: "#dddddd"color: "#ffffff"Text {anchors.centerIn: parenttext: display}}columnWidthProvider: function(column) { if (column < 3) return 120return 0}rowHeightProvider: function(row) { return 40 }}
}

这个示例展示了TableView的基本用法:

  1. 数据模型:使用TableModel定义了表格的列和数据内容。TableModelColumn定义了三列(姓名、年龄、职业),rows属性包含了四行数据。
  2. 表格视图:TableView组件绑定了上面定义的数据模型,并通过delegate属性自定义了单元格的外观。
  3. 大小控制:通过columnWidthProvider和rowHeightProvider函数分别控制列宽和行高。
  4. 布局:使用anchors布局将表格填充满父容器,并设置了合适的边距。

运行效果

基础TableView


示例二:自定义样式TableView

代码解析

CustomTableView.qml实现了一个带有交互效果和自定义样式的产品库存表格:

import QtQuick
import QtQuick.Controls
import Qt.labs.qmlmodelsRectangle {width: 400height: 300color: "white"// 属性定义property int selectedRow: -1property int hoveredRow: -1readonly property int columnWidth: width / 3readonly property int rowHeight: 40// 颜色定义readonly property color headerColor: "#2196F3"readonly property color selectedColor: "#bbdefb"readonly property color hoverColor: "#e3f2fd"readonly property color priceColor: "#E91E63"readonly property color borderColor: "#e0e0e0"TableModel {id: customTableModelTableModelColumn { display: "product" }TableModelColumn { display: "price" }TableModelColumn { display: "stock" }rows: [{ product: "笔记本电脑", price: "6999", stock: "15" },{ product: "手机", price: "3999", stock: "25" },{ product: "平板电脑", price: "4599", stock: "10" },{ product: "智能手表", price: "1999", stock: "30" }]}// 表头Rectangle {id: headerwidth: parent.widthheight: rowHeightcolor: headerColorRow {anchors.fill: parentRepeater {model: ["产品", "价格", "库存"]Rectangle {width: columnWidthheight: parent.heightcolor: "transparent"Text {anchors.centerIn: parenttext: modelDatacolor: "white"font.bold: true}}}}}// 表格内容TableView {id: tableViewanchors {top: header.bottomleft: parent.leftright: parent.rightbottom: parent.bottom}clip: truemodel: customTableModelcolumnSpacing: 1rowSpacing: 1delegate: Rectangle {implicitWidth: columnWidthimplicitHeight: rowHeightcolor: row === selectedRow ? selectedColor : row === hoveredRow ? hoverColor : row % 2 ? "#f5f5f5" : "white"MouseArea {anchors.fill: parenthoverEnabled: trueonClicked: selectedRow = rowonEntered: hoveredRow = rowonExited: hoveredRow = -1}Rectangle {width: parent.widthheight: 1color: borderColoranchors.bottom: parent.bottom}Text {anchors.centerIn: parenttext: column === 1 ? "¥" + display : displaycolor: column === 1 ? priceColor : "#333333"font.pixelSize: column === 1 ? 14 : 13}}}
}

这个示例展示了TableView的高级用法:

  1. 交互效果:通过selectedRow和hoveredRow属性,结合MouseArea实现了行选择和鼠标悬停效果。
  2. 自定义表头:单独实现了表头部分,与表格内容区分开,提供了更灵活的样式定制。
  3. 条纹效果:通过row % 2条件实现了行交替背景色。
  4. 格式化显示:对价格列做了特殊处理,添加货币符号并使用不同颜色显示。
  5. 属性复用:通过readonly property定义了共用的样式属性,提高了代码的可维护性。

运行效果

TableView样式


主界面

Main.qml文件作为应用程序的主界面,使用RowLayout将两个示例并排展示:

import QtQuick
import QtQuick.Window
import QtQuick.Controls
import QtQuick.Layouts
import "."  // 添加当前目录导入Window {width: 850height: 400visible: truetitle: "TableView 示例"RowLayout {anchors.fill: parentanchors.margins: 10spacing: 20Rectangle {Layout.fillHeight: trueLayout.preferredWidth: 400color: "transparent"Text {anchors.top: parent.topanchors.horizontalCenter: parent.horizontalCentertext: "基础 TableView"font.pixelSize: 16font.bold: truecolor: "#333333"}BasicTableView {anchors.fill: parentanchors.topMargin: 30}}Rectangle {Layout.fillHeight: trueLayout.preferredWidth: 400color: "transparent"Text {anchors.top: parent.topanchors.horizontalCenter: parent.horizontalCentertext: "自定义样式 TableView"font.pixelSize: 16font.bold: truecolor: "#333333"}CustomTableView {anchors.fill: parentanchors.topMargin: 30}}}
}

通过布局容器对两个示例进行了排版展示:

  • RowLayout:创建了水平布局,使两个TableView示例能够并排显示。
  • 标题文本:为每个示例添加了标题,以便于区分。
  • 组件引用:分别引用了BasicTableView和CustomTableView组件。

运行效果

主界面


总结

通过本文的两个示例,展示了QML TableView的基础用法和自定义样式技巧。基础示例展示了TableModel和TableView的用法,适合初学上手;自定义样式示例则展示了更复杂的功能,包括交互效果、样式定制和数据格式化等高级特性。

QML TableView作为Qt Quick中的重要控件,具有以下优势:

  1. 高性能:针对大数据集优化,支持虚拟化渲染。
  2. 灵活性:通过delegate可以完全自定义单元格外观。
  3. 易用性:与其他QML组件集成良好,支持丰富的布局方式。
  4. 交互性:可以方便地添加选择、排序等交互功能。

工程下载

完整代码可以通过以下链接获取:Gitcode -> QML TableView示例

TableView代码

http://www.dtcms.com/wzjs/574990.html

相关文章:

  • wordpress写博客插件襄阳seo
  • 前台网站模板app ui界面设计欣赏
  • 如何做房产公司网站成都市成华区建设局官方网站
  • 上海网站建设渠道引流用的电影网站怎么做
  • 做一个旅游网站白云手机网站建设价格
  • 手机开发和网站开发前景公司团建活动
  • 网站建设请示报告代做网站 猪八戒网
  • 南阳做网站电话我要下载百度
  • 吉安网站公司网站投放广告怎么做
  • 会员管理系统怎么用槐荫区网络营销seo
  • saas建站没有网站源代码么公司没注册可以做网站吗
  • 公司产品网站西地那非
  • 北京交易网站建设网页美工设计图片
  • 移动端网站建设 新闻动态大学生网页设计怎么做
  • 注册免费的网站有吗徐州集团网站建设公司
  • 网站如何做软文推广株洲在线
  • 深圳给企业做网站北京网站建设开发公司哪家好
  • 成绩查询网站开发做网页游戏网站需要什么
  • 大岭山东莞网站建设国外免费域名
  • 网站建设及推广方案ppt衣柜做网站的关键词
  • 唐山市住房和诚乡建设局网站wordpress复古三栏主题
  • 更改网站后台沈阳网络教育
  • 广州品牌网站设计公司wordpress网站载入慢
  • 南宁网站建设醉懂网络用asp做宠物网站页面
  • 网站cms在线识别简述网站一般建设的流程
  • 学校网站建设钉钉搜索引擎优化名词解释
  • 昆明网站推广优化公司做后台网站
  • 网站服务器租用的wordpress正在等待代理隧道响应
  • 网站的流程图吉林省建设监理协会网站诚信建设
  • 东莞网站建设 拉伸膜专业的营销型网站