QTableWidget 与 QTableView

2023-12-25

我是 Qt 模型/视图框架的新手。在我的应用程序中,我想要有 1000 X 1000 个单元格。应该有最低的内存要求并且应该很快。我不知道这个模型术语的用途是什么。但我有自己的类,它知道如何处理表中存储的双变量。目前我正在使用带有验证器的 QLineEdit 来创建单元格数组。但对于 > 50 X 50 的单元格来说,它太慢了。所以我决定采用旧的 MS Excel 方式。

那么我应该使用哪个小部件:QTableWidget or QTableView?

谁能简单解释一下这个模型/视图框架是什么?我不是计算机科学人士,因此我发现很难理解......


cmannett85 的推荐很好。阅读文档大约十几次。

然后,如果性能和内存问题是您最关心的问题,并且您认为您可以超越 QTableWidget 实现,那么QTableView http://qt-project.org/doc/qt-4.8/qtableview.html界面顶部QA抽象表模型 http://qt-project.org/doc/qt-4.8/QAbstractTableModel.html or Q标准项目模型 http://qt-project.org/doc/qt-4.8/qstandarditemmodel.html这就是您正在寻找的。

由于您不熟悉 Qt 的模型视图架构,因此我建议您使用 QStandardItemModel,直到您感觉自己已经掌握了它的窍门。如果您的性能仍然不够好,请通过实现自定义模型来避免大量内存重复和对象浪费。另外,让自己一本好教科书 https://rads.stackoverflow.com/amzn/click/com/0132354160并阅读了有关模型视图框架的章节大约 12 遍。恕我直言,仅此部分就值得同等重量的黄金。

以下是 Qt 自定义模型视图框架的基础知识:

  • Your 实际数据存储在列表/树中的某个位置
  • The model提供用于查询和编辑数据的标准框架
  • 代理模型允许您在不影响原始模型的情况下对数据进行排序/过滤
  • The view提供了一种视觉手段observe and 与。。。相互作用你的数据
  • 代表们(通常是可选的)调整数据的外观并为数据提供自定义编辑器

如果你既便宜又勇敢,请查看这段摘录 http://www.informit.com/articles/article.aspx?p=1750226实现您自己的自定义模型。一次只处理一项功能,然后边玩边玩。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QTableWidget 与 QTableView 的相关文章

  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif

随机推荐

  • 如何根据名称为单个条形着色[重复]

    这个问题在这里已经有答案了 我有以下数据框生成以下图 Import pandas library import pandas as pd import numpy as np import matplotlib pyplot as plt
  • 如何启用映射实体的私有属性

    一开始我不得不对我的英语说抱歉 我正在使用实体框架和代码优先的方式 我脑子里有一个想法 但我不知道如何实现它 我不是编程初学者 但我一直在使用流利的 NHibernate 我有一个实体 public class User Key publi
  • Excel 互操作:Range.FormatConditions.Add 抛出 MissingMethodException

    我正在编写一个应用程序 它使用 Microsoft Office Interop Excel 程序集从 Excel 电子表格导出 导入数据 一切都很顺利 除了基于 1 的索引和所有这些可选参数 直到我尝试使用条件格式 当我调用 Range
  • 什么是有效的 HTML5 自定义标签?

    最近 我一直在阅读有关如何通过在名称中添加破折号来使自定义标签在 HTML5 中有效的内容 因此我一直想知道自定义标签的实际规则 指南是什么 custom tag custom X custom custom 我想知道的是最后两个是否有效
  • Apache 和 Node.js 在同一服务器上

    我想使用 Node 因为它速度很快 使用与我在客户端使用的语言相同的语言 并且根据定义它是非阻塞的 但是我雇来编写文件处理程序 保存 编辑 重命名 下载 上传文件等 的人 他想使用 apache 所以 我必须 说服他使用 Node 他对此几
  • 从 groovy 中访问 java 类

    我有一个简单的java类 package test class Hello public static void main String args System out println Hi 我在上面做了一个 javac Hello jav
  • 无法解决联合选择中的排序规则冲突

    我有两个疑问 首先不起作用 select hotels TargetCode as TargetCode from hotels union all select DuplicatedObjects duplicatetargetCode
  • Google Scripts - 在不同的工作表中触发和运行

    我需要 创建一个新工作表 调用主函数 设置一个将调用 main 函数的触发器 基本上是这样的 function new campaign var sheet name new sheet main function sheet name t
  • SQL 左连接将多行合并为一行

    基本上 我有两个表 表 A 包含我想要取出的实际项目 表 B 用于语言翻译 例如 表 A 包含实际内容 每当在表中使用文本时 都会存储与表 B 中存储的文本相关的 id 而不是存储实际的 varchar 值 这使我可以通过向表 B 中添加
  • Laravel Guzzle GET 请求

    client new Client base uri gt http api tvmaze com res client gt request GET schedule country US date 2014 12 01 return r
  • 为什么空数组引用的数组访问表达式不会抛出 NullPointerException?

    考虑以下代码 int r null r 0 1 0 我本以为这会引发NullPointerException 根据JLS 第 15 7 1 节 https docs oracle com javase specs jls se8 html
  • 如何在自己的 shell 中实现自己的 cd 命令[重复]

    这个问题在这里已经有答案了 我正在一个小型项目中工作 我自己的命令解释器 SHELL 例如 Bash shell 或 Sh shell 到目前为止 它可以执行所有预定义的命令 如 ls ps pwd date 除此之外 我还实现了一些其他操
  • 在不配置 Amazon Cognito 的情况下使用 Amazon Mobile Analytics

    与竞争的分析服务相比 Amazon Mobile Analytics 似乎需要更多的配置和集成步骤 例如 在 Flurry Analytics 中 设置非常简单 Flurry startSession
  • 输入格式是否负责在 Hadoop 的 MapReduce 中实现数据局部性?

    我试图了解数据局部性 因为它与 Hadoop 的 Map Reduce 框架相关 特别是我想了解哪个组件处理数据局部性 即它是输入格式吗 雅虎的开发者网络页面 http developer yahoo com hadoop tutorial
  • 如何使用斯坦福解析器

    我下载了Stanford parser 2 0 5 并使用包中的Demo2 java源代码 但编译并运行该程序后 出现很多错误 我的程序的一部分是 public class testStanfordParser Usage ParserDe
  • 如何消除颤振上文本上方和下方的间隙[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我试图将文本 Hello 放在 123 的正下方 但是文本越大 间隙就越大 怎样消除间隙 下面添加了颤振图像 到目前为止
  • 如何提取terraform中的敏感输出变量?

    我有一个 terraform 配置 它创建一个带有访问密钥的 AWS IAM 用户 并将 id 和 Secret 分配给输出变量 resource aws iam access key brand new user user aws iam
  • 用数学方法将两个字符串相加?

    我正在浏览论坛 但仍然找不到问题的答案 我有两个字符串 它们实际上是一个数字数组 例如 我只是选择随机数 string input1 12345678909876543212 string input2 12345 我想将这两个字符串加在一
  • 如何让 MSTest 找到我的测试数据文件?

    我有一些测试需要使用 Excel 文件中的外部数据 这些文件包含在测试项目中 并且在 Visual Studio 中 我编辑了测试设置文件 Local testsettings 来部署数据文件 这使得它在 VS 中工作得很好 然而 我们也在
  • QTableWidget 与 QTableView

    我是 Qt 模型 视图框架的新手 在我的应用程序中 我想要有 1000 X 1000 个单元格 应该有最低的内存要求并且应该很快 我不知道这个模型术语的用途是什么 但我有自己的类 它知道如何处理表中存储的双变量 目前我正在使用带有验证器的