将自定义小部件添加到 QTableWidget 单元格

2023-12-04

我有使用 qt 设计器制作的自定义小部件,我想将其添加到 QTableWidget 单元格中。 但这不起作用。

这是代码:

int nRows =10;
for(int row = 0; row < nRows;row++;)

{
    QTableWidgetItem* item = new QTableWidgetItem();
    CustomWdg* wdg=new CustomWdg( );

    mTableWdg->insertRow( row );
    mTableWdg->setItem(row, 0, item);
    mTableWdg->setCellWidget( row, 0, wdg );

}  

如果您想将自定义小部件添加到表格单元格中,您可以使用 QItemDelegate。

创建您自己的 Delegate 类并从 QItemDelegate 继承它。

class MyDelegate : public QItemDelegate
{
    public:
    CChoicePathDelegate (QObject *parent = 0);
    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; //delegate editor (your custom widget)
    void setEditorData(QWidget *editor, const QModelIndex &index) const;
    void setModelData(QWidget *editor, QAbstractItemModel *model,
    const QModelIndex &index) const; //transfer editor data to model
    void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
    const QModelIndex &index) const;
};

然后自己用这个方法为Table设置委托。

setItemDelegate(QAbstractItemDelegate *)
setItemDelegateForColumn(int, QAbstractItemDelegate *)
setItemDelegateForRow(int, QAbstractItemDelegate *)

我试过这段代码:

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QLabel>
#include <QHBoxLayout>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    QHBoxLayout *l = new QHBoxLayout();
    l->addWidget((new QPushButton("I`m in cell")));
    l->addWidget((new QLabel("Test label")));

    QWidget *w = new QWidget();

    w->setLayout(l);

    ui->tableWidget->setCellWidget(1,1, w);
}

Widget::~Widget()
{
    delete ui;
}

结果是:

Result

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

将自定义小部件添加到 QTableWidget 单元格 的相关文章

  • 通过CMake实现Qt项目

    我正在尝试通过 Cmake 构建并运行非常简单且基本的 Qt 示例 删除 pro 文件 以下是Qt项目的代码 自动生成的Qt项目的目录结构为 Cmake my project name headers mainwindow h source
  • 如何在qt中进行异步文件io?

    我想知道如何在qt中实现异步文件io 这在普通的 qt 中是否可以实现 或者有人需要使用另一个库 例如 libuv 来实现这样的事情 我正在查看 QDataStream 但即使它是一个 流 它也不是非阻塞的 我想一种解决方案是制作一个在内部
  • 在 Qt 5 中嵌入 Python

    我想将 Python 解释器嵌入到 Qt 5 应用程序中 我在 Qt 5 中有一个工作应用程序 但是当我把 include
  • 我应该使用 QCoreApplication::processEvents() 还是 QApplication::processEvents()?

    我有一个从两者调用的方法QThreads和主线程 这个方法有时可能需要很长时间才能在循环中进行计算 所以我把QCoreApplication processEvents 这可以防止 GUI 冻结 在某个时刻我已经改变了QCoreApplic
  • 在哪里可以找到 QT 5.3.0 命令提示符

    用于学习Qt的书 C gui programming with qt 4 2nd 版 我需要Qt的命令提示符 我已经安装了Qt 5 3 0 creator 5 3 0开源 但不知道它的命令提示符在哪里 有人可以帮助我吗 我认为您正在寻找的是
  • 如何使 Python、QT 和 Webkit 在无头服务器上工作?

    我有 Debian Linux 服务器 我用它来做各种事情 我希望它能够完成一些我需要定期完成的网络抓取工作 这段代码可以是在这里找到 http bit ly QeqvzX import sys from PyQt4 QtGui impor
  • 打开和关闭附加窗口 (QML)

    目前我有一个通过以下方式打开的窗口 property variant win Button id testButton MouseArea onClicked var component Qt createComponent test qm
  • 如何在 Qt Creator 中编辑 QtWebKit 的右键上下文菜单?

    好吧 这是我的困境 我正在使用 Qt Creator 制作一个使用 Webkit 的简单应用程序 我认为 Qt Creator 会有一种简单的方法来使用信号和槽编辑器编辑右键单击上下文菜单 但事实证明这不是真的 我知道 webkit 有与上
  • new 运算符(以及 malloc)无法分配约 450 MB 的内存 [重复]

    这个问题在这里已经有答案了 我正在开发一个程序 该程序在内存中存储大约 2 2 亿个短值的数组 该数据块的分配方式如下 short arrayName new short SIZE OF ARRAY 然后将文件的内容读入内存 在团队中的另一
  • QMutex 是否需要是静态的,以便此类实例的其他线程调用知道暂停其操作?

    从多个线程调用以下附加函数 我不希望数据重写附加 因为计数器尚未增加 除了当前使用 Append 的线程之外 这是否会挂起所有进入的线程 或者其他线程会继续运行而不追加数据吗 互斥锁是否需要是 静态 的 或者每个实例都知道要暂停操作吗 如果
  • QStyledItemDelegate 绘制自定义小部件失败

    在我的一个项目中 我使用的是QTableWidget为了显示一些复杂的计算结果 为了提高表格的可读性 我需要在单个表格单元格内显示两个对齐的值 后来我想通过使用颜色或箭头等来进一步自定义小部件 为此我源自QStyledItemDelegat
  • Qt 为什么使用 QString::number() 而不是 QLocale().toString()?

    我正在开发的应用程序将在许多国家推出 并且需要支持他们的语言 我一直在回顾我的代码并替换以下每个实例 QString number and QString toDouble with QLocale toString and QLocale
  • Retina 显示屏中具有 QOpenGLWIdget 的 Qt MainWindow 显示错误大小

    我有一个 Qt 应用程序MainWindow 我嵌入一个QOpenGLWidget在里面 一切正常 直到我开始使用 Apple Retina 显示屏并在高 DPI 模式下运行我的应用程序 我的QOpenGLWidget只是它应该具有的大小的
  • 如何去除QWizard中的水平线?

    我正在研究一个样式表QWizard我想删除按钮上方的水平线 我尝试递归浏览所有小部件并将其边框设置为无 但似乎没有任何小部件具有此边框 这是我的代码 可以找到完整的可构建示例here https gist github com ardeid
  • 在 Qt 中使用多个不同的流读取同一文件

    使用 Qt 是否可以使用多个流读取文件以同时访问其中的不同数据部分 请注意 Qt 中的流 QTextStream QDataStream 不处理底层设备中的位置 流类只是一个包装器 用于更轻松地解析设备 QFile 实例 内的二进制数据 因
  • Qt:不完整类型和前向声明的使用无效

    我有一些误解 A h ifndef A H define A H include B h class A public B Q OBJECT public A endif A cpp include A h A A B ui gt blan
  • Qt中用于线程间通信的类设计

    问题陈述 用相机跟踪物体并相应地移动相机的方位角和仰角 Process 相机获取物体的图像 处理相机的每一帧以查找物体 应该被跟踪 并将每帧中生成的信息传递给机械设备 万向节 以平移和倾斜方式移动摄像机 Design 主 Gui 在一个线程
  • 如何将自定义 Qt 类型与 QML 信号一起使用?

    我在 Qt 5 2 qml 应用程序中创建了一个自定义类型 class Setting public QObject Q OBJECT Q PROPERTY QString key READ key WRITE setKey Q PROPE
  • 即使我在单独的线程中运行,QT GUI 也会冻结

    我有一个小型聊天应用程序 其中使用 SQLite 数据库来存储所有对话 我注意到该应用程序随机冻结 然后我必须最小化和最大化它才能使其再次工作 我认为问题可能是 SQLite 选择 插入导致 gui 冻结 我决定尝试将所有 SQLite 方
  • QML 列表视图拖放

    我想创建两个 qml 列表视图 可以执行两个功能 拖放一个列表中的项目以更改项目的顺序 跨列表拖放项目 项目将从一个列表中删除并添加到另一个列表中 根据 Qt 文档中的拖放示例 我决定创建两个访问同一列表模型的列表视图 列表模型中的每个项目

随机推荐

  • Visual Studio 2010 中未解析的外部符号

    我来自 Xcode 尝试在 Visual Studio 2010 中编译项目 但出现以下错误 2 gt ofxCLeye obj error LNK2019 unresolved external symbol struct GUID cd
  • 如何获得像slashdot的评论过滤菜单那样的固定位置菜单

    Slashdot 有一个小部件 可让您调整评论阈值以过滤掉经过修改的评论 如果您滚动到页面顶部 它将位于一个位置 当您向下滚动时 在某个时刻 其原始主页即将滚出页面 它将切换到固定位置 并保留在屏幕上 要查看示例 请单击here 我的问题是
  • 来自右值的非常量引用的初始化无效

    所以我有以下功能 void scan std istream is Handler h 我想以不同的方式调用它 例如 scan std cin Handler scan std ifstream myfile myhandler 编译器抱怨
  • 当 Web 应用程序在 Maven 驱动的 Vaadin 14 Web 应用程序中启动时,将我的 Java 代码加载的数据或配置文件放在哪里

    在由 Plain Java Servlet 风格创建的 Vaadin 14 Web 应用程序项目中瓦丁起始页 有许多由 Maven POM 文件过程自动创建的文件夹 当我的网络应用程序启动时 我将加载和解析的数据文件或配置文件放在哪里 我的
  • 未找到 NSS 字符串编码

    我下载了一个 html 页面 并尝试使用以下命令将其从 NSData 编码为 NSString NSString string NSString alloc initWithData receivedData encoding NSISOL
  • Google Chrome 扩展程序有什么方法可以增加本地存储空间吗?

    我认为 HTML5 本地存储每个域最多可以存储 5MB Google Chrome 扩展程序可以指定域来增加存储空间吗 您只能在清单中为扩展程序的存储请求无限空间 属于其他域的存储无法更改 permissions unlimitedStor
  • Perl 更改调用者的工作目录

    我想编写一个 perl 脚本 将其工作目录更改为其他位置 执行某些操作 然后在从 shell 调用它后将我留在该目录中 chdir只做第一部分 如何更改调用者的工作目录 This is可能的 但是 您必须打开其中之一 dev mem设备处于
  • 使用 Facebook Graph Api 搜索帖子

    我想使用图形 API 搜索过去 30 天的数据的帖子 新闻源 这样做的最佳做法是什么 Facebook Graph API 是否有 API 限制来限制 HTTP 请求的请求 注意 以下内容都不再有效 从 Facebook Graph API
  • NSDate isEqualToDate:不起作用 - 它是否查看秒和分秒?

    我不明白为什么这个方法不起作用 使用 isEqualToDate 时是否查看秒数和分秒数 Test that the NSDate category s DatePlusDays method works void testNSDateCa
  • 在 JavaScript 中通过 ID 引用 ASP.NET 控件?

    当 ASP NET 控件呈现时 它们的 id 有时会发生变化 就像它们位于命名容器中一样 Button1实际上可能有一个 idctl00 ContentMain Button1例如 当它被渲染时 我知道您可以将 JavaScript 作为字
  • jQuery Mobile 默认选项卡

    我想在 jQuery Mobile 中设置默认选项卡 我的源代码 div div ul li a href one one a li li a href two two a li li a href ajax content html th
  • 将 bash 脚本添加到路径

    我想向 linux PATH 添加一个小脚本 这样我就不必在磁盘上物理放置的位置实际运行它 该脚本非常简单 就是通过代理提供 apt get 访问权限 我这样做是这样的 bin bash array len array args array
  • JQuery Datepicker 返回 Date 对象类型

    Datepicker返回的对象类型是什么 假设我有以下内容 txtbox datepicker onClose function date something What is date 我有兴趣从另一个日期选择器读取日期对象进行比较 例如
  • Wix 安装、服务器、客户端或两者

    我想创建 Wix 安装程序来安装 Client Server或两者都基于用户选择 我的问题是当用户选择服务器时如何限制安装客户端 它被安装 因为它的级别 1 我已经定制了WixUI Mondo 我尝试使用组件条件但没有成功
  • 任何 iPhone 应用程序使用的内存

    关于iOS内存管理 我有一些不明白的地方 我想知道 iPhone 应用程序在设备上运行时通常需要多少内存 是否有像 10MB 这样的固定数字 如果应用程序包含大量大图像 对内存有何影响 它们仅在加载时影响内存吗 当有多个应用程序运行时 iO
  • WebBrowser 控件报告什么 UserAgent?

    只是想知道 VB NET 在访问网页时读取的浏览器类型是什么 例如 在我的网站上 它显示了访问我的网站的所有不同浏览器的详细信息 您没有为您的问题提供太多背景信息 但我认为您正在谈论用户代理字符串当您使用时发送的WebBrowser con
  • 使用路径变量在 golang 中调用 GET REST API

    我是第一次尝试Golang 我正在尝试调用具有路径变量的 GET REST API 我正在使用 net http 我正在尝试如下所示 但到目前为止还没有运气 我需要知道如何使用路径变量并从代码中传递该变量 任何帮助或代码示例将不胜感激 这似
  • SQL Server - 重叠数据的累积总和 - 获取总和达到给定值的日期

    在我们公司 我们的客户执行我们在不同表中记录的各种活动 面试出勤 课程出勤和其他一般活动 我有一个数据库视图 它将所有这些表中的数据结合在一起 为我们提供了如下所示的 ActivityView 正如您所看到的 一些活动是重叠的 例如 在参加
  • 生成 1D 张量作为 2D 张量的行的唯一索引

    假设我们通过为每个不同的行提供不同的索引来将 2D 张量转换为 1D 张量 从0 to the number of rows 1 1 2 1 3 1 4 gt 0 1 2 但如果有相同的行 那么我们重复索引 如下所示 1 2 1 2 1 4
  • 将自定义小部件添加到 QTableWidget 单元格

    我有使用 qt 设计器制作的自定义小部件 我想将其添加到 QTableWidget 单元格中 但这不起作用 这是代码 int nRows 10 for int row 0 row lt nRows row QTableWidgetItem