QT QTableWidget 表格 学习笔记

2023-11-19

首先  了解一下QTableWidget 控件的属性

成员方法 功能
setText(const QString &text) 设置单元格中的文本。
setlcon(const Qlcon &icon) 给单元格添加图标。
setBackground(const QBrush &brush) 设置单元格的背景。
setFont(const QFont &font) 设置单元格中文本的字体。
setForeground(const QBrush &brush) 设置单元格中字体的颜色。
setTextAlignment(int alignment) 设置单元格中文本的对齐方式。
setToolTip(const QString &toolTip) 给单元格设置提示信息。

他的一些函数

成员方法 功能
setRowCount(int rows) 设置表格的行数。
setColumnCount(int columns) 设置表格的列数。
setRowHeight(int row, int height) 设置指定行的行高。
setColumnWidth(int column, int width) 设置指定列的宽度。
setCellWidget(int row, int column,Widget *widget) 向表格中的指定位置添加 widget控件。通过调用cellWidget(int row, int column)方法,可以获取指定位置出的控件。
setHorizontalHeaderLabels(consStringtList &labels) 设置表格的水平表头。
setVerticalHeaderLabels(constQStringList &labels) 设置表格的竖直表头。
setltem(int row, int column,QTableWVidgetltem *item) 向表格指定位置添加单元格。。获取指定位置的单元格,可以借助 item(int row, int column)或者itemAt(int ax, int ay)方法。
setEditTriggers(EditTriggers triggers) 当triggers参数值为QAbstractltemView::NoEditTriggers时,表示禁止用户编辑单元格。
resize(int w, int h) 设置表格的尺寸。
setFont(const QFont &) 设置表格数据区中文本的字体和大小。

他的信号和槽

信号函数 功能
cellClicked(int row,int column) 当某个单元格被点击时,触发该信号,row和columu就是被点击的单元格的位置。
cellDoubleClicked(int row,int column) 当某个单元格被双击时,触发该信号,row和columu就是被点击的单元格的位置。
cellEntered(int row,int column) 当某个单元格被按下时,触发该信号,row和columu就是被点击的单元格的位置。
cellChanged(int row, int column) 当某个单元格中的数据发生改变时,触发该信号,row和columu就是被改变的单元格的位置。
itemClicked(QTableWidgetltem *item)19- 当某个单元格被点击时,触发该信号,item就是被点击的单元格。
itemDoubleClicked(QTableWVidgetltem *item) 当某个单元格被双击时,触发该信号,item就是被双击的单元格。
itemEntered(QTableWVidgetltem *item) 当某个单元格被按下时,触发该信号,item就是被按下的单元格。
itemChanged(QTableWidgetltem *item) 当某个单元格中的数据发生改变时,触发该信号,item就是被改变的单元格。
槽函数 功能
clear() 删除表格中所有单元格的内容,包括表头。
clearContents() 不删除表头,仅删除表格中数据区内所有单元格的内容,
insertColumn(int column) 在表格第column列的位置插入一个空列。
insertRow(int row) 在表格第row行的位置插入一个空行。
removeColumn(int column) 删除表格中的第column列,该列的所有单元也会一并删除。
removeRow(int row) 删除表格中的第row行,该行的所有单元格也会一并删除。
scrollToltem(const QTableWidgetltem*item, QAbstractltemView::ScrollHint hint= EnsureVisible) 滑动到指定单元格

这里离我们创建了一个3x3的表格

 QTableWidget tw(3,3,&w);
    tw.resize(500,500);
    tw.setItem(0,0,new QTableWidgetItem("阿里"));
    tw.setItem(0,1,new QTableWidgetItem("www.1688.com"));
    tw.setItem(0,2,new QTableWidgetItem("马云"));

    tw.setItem(1,0,new QTableWidgetItem("腾讯"));
    tw.setItem(1,1,new QTableWidgetItem("www.qq.com"));
    tw.setItem(1,2,new QTableWidgetItem("马化腾"));


    tw.setItem(2,0,new QTableWidgetItem("百度"));
    tw.setItem(2,1,new QTableWidgetItem("www.baidu.com"));
    tw.setItem(2,2,new QTableWidgetItem("李彦宏"));
 

然后我们实现了一个双击某一行  删除该行

 QObject::connect(&tw,&QTableWidget::cellDoubleClicked,&tw,&QTableWidget::removeRow);

扩容一行

int rows=tw.rowCount();
    tw.setRowCount(rows+1);

完整代码如下

 

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"

#include <QApplication>
#include <QStringList>
#include <QListWidget>
#include <QTableWidget>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;

//    QListWidget qlst(&w);
//    qlst.addItem("百度");
    QListWidgetItem s("阿里");
    qlst.addItem(&s);
//    qlst.addItem(new QListWidgetItem("阿里"));
//    QStringList qs;
//    qs<<"腾讯"<<"字节";


//    qlst.addItems(qs);
//    QObject::connect(&qlst,&QListWidget::itemDoubleClicked,&qlst,&QListWidget::clear);

    QTableWidget tw(3,3,&w);
    tw.resize(500,500);
    tw.setItem(0,0,new QTableWidgetItem("阿里"));
    tw.setItem(0,1,new QTableWidgetItem("www.1688.com"));
    tw.setItem(0,2,new QTableWidgetItem("马云"));

    tw.setItem(1,0,new QTableWidgetItem("腾讯"));
    tw.setItem(1,1,new QTableWidgetItem("www.qq.com"));
    tw.setItem(1,2,new QTableWidgetItem("马化腾"));


    tw.setItem(2,0,new QTableWidgetItem("百度"));
    tw.setItem(2,1,new QTableWidgetItem("www.baidu.com"));
    tw.setItem(2,2,new QTableWidgetItem("李彦宏"));



    tw.setRowCount(4);
    tw.setItem(3,0,new QTableWidgetItem("子节"));
    tw.setItem(3,1,new QTableWidgetItem("www.bytedance.com"));
    tw.setItem(3,2,new QTableWidgetItem("张一鸣"));

    tw.setHorizontalHeaderLabels(QStringList()<<"公司"<<"网址"<<"创始人");

    //双击某一行  删除该行
    QObject::connect(&tw,&QTableWidget::cellDoubleClicked,&tw,&QTableWidget::removeRow);
   
    w.show();
    return a.exec();
}
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

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

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

QT QTableWidget 表格 学习笔记 的相关文章

  • QGraphicsView 和 eventFilter

    这个问题已经困扰我两天多了 所以我想我应该问一下 我在Win7上使用Qt 4 5 3 用VC2008编译 我有 MyGraphicsView 继承 QGraphicsView 和 MyFilter 继承 QObject 类 当我将 MyFi
  • 如何在 Qt-Embedded 中(正确)输出多语言文本?

    我的目标系统是 linux 3 3 7 Qt Embedded 开源版 4 8 Droid 字体 取自 fonts droid 20111207 git 1 all deb Debian 软件包并复制到 usr lib fonts目录 主要
  • 如何在 C++ 和 QML 应用程序中使用 qrc?

    我在 Windows7 上用 c qnd Qt Creator QML 编写了 Qt Quick Desktop 应用程序 现在 我必须部署它 并且我需要隐藏 qml 文件和图像 意味着 将它们放入资源等中 我读到有一个很好的方法可以使用
  • (如何)我可以抑制未找到包配置文件的警告吗?

    我正在尝试创建一个CMakeLists txt尝试查找的文件Qt5 如果失败 则尝试回退到Qt4安装 该脚本到目前为止有效 但如果出现以下情况我总会收到警告Qt5未安装 注意FindQt5 cmake是由提供Qt5并且仅当以下情况时才可用Q
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • QTextEdit.find() 在 Python 中不起作用

    演示问题的简单代码 usr bin env python import sys from PyQt4 QtCore import QObject SIGNAL from PyQt4 QtGui import QApplication QTe
  • 如何在模型更改时停止ListView“跳跃”

    我需要做什么 我需要创建一个聊天窗口用一个ListView在 QML 中存储聊天消息 我设置listView positionViewAtEnd 以便跟踪最后的消息 我禁用positionViewAtEnd当我向上滚动时 我可以阅读过去的消
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 错误 LNK2001:无法解析的外部符号 __CxxFrameHandler3

    我正在将 Qt 从 VS 2013 迁移到 Qt 5 10 1 到 VS 2015 出现以下多个链接错误 error LNK2001 unresolved external symbol CxxFrameHandler3 error LNK
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • Qml 模块未找到 CPP 类注册与新的 QML_ELEMENT r

    我尝试使用 Qt5 15 0 和新宏 QML ELEMENT 在 QML 中注册我的自定义 CPP 类 但找不到该模块 Qt Creater 帮助文件描述了 QML ELEMENT 的步骤 我也检查了 Qt 手册 但没有幸福的结局 http
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • Mac 上的 Qt — 如何访问帮助菜单中的“搜索”

    我正在将我的 Qt 应用程序移植到 Mac OS X 在 Windows Linux 上 我使用 QLineEdit 在帮助菜单中提供搜索功能 In Mac OS X I saw something like this is built i
  • 是否可以在 Qt Creator 中将 Qt 样式表与升级的小部件一起使用?

    我正在尝试使用 Qt 样式表对标准小部件进行一些重大的重新设计 因此 在为不同的小部件手动完成大部分工作之后 objectName选择器 我决定以某种方式对类似的小部件进行分组 例如我有多个QFrames其作用类似于内部表单中的标题 我希望
  • Qt 安装程序框架 - 如何在卸载时仅删除某些文件和文件夹

    我使用 Qt 安装程序框架 如何确保在卸载时仅删除某些文件或文件夹 而不是像当前那样删除安装文件夹中的所有文件 先感谢您 您可以覆盖默认行为component createOperations对于卸载程序 然后使用手动指定每个卸载路径com
  • 将 QByteArray 从大端转换为小端

    我想我在这里有点不知所措 我尝试了这么简单的事情 我不敢相信没有任何内置的 Qt 使用 Qt 5 6 2 我尝试将 QByteArray 内的数据从大端转换为小端 总是从相同的测试 QByteArray 开始 就像这样 QByteArray
  • 如何访问Loader的sourceComponent中的QML对象?

    我可能需要读取或写入的一些属性Loader s sourceComponent来自一些外部函数 访问该房产的方式是什么x里面的对象的Loader s sourceComponent import QtQuick 2 0 Item width

随机推荐

  • 如何制作静态和动态链接库-小白入门

    1 gcc编译过程 gcc为GNU编译套件 GNU Compiler Colletion 2 gcc编译命令 0 o 指定生成目标文件 00 O 设定优化级别 123越大越高 1 I 指定头文件目录 2 D 指定宏 避免修改源代码 3 g
  • 《我的世界》Python编程入门(9) 使用函数建造房子

    一 函数的基本概念 1 1 函数在数学中的概念 函数指一个量随着另一个量的变化而变化 函数的数学形式 y f x f是一种定义好的关系 可以简称为函数 在函数f中 只要x值的确定 那么y的值一定是确定的 y的值随x值的变化而变化 1 2 P
  • 设计模式(5)-适配器模式(Adapter Pattern)

    适配器模式 Adapter Pattern 顾名思义 就像变压器 转接头差不多 就像美国的生活电压是110V 中国是220V 就需要一个变压器将220V转换成110V 或者一个Type C接口想插如USB接口的东西 你就需要一个转换器 而这
  • [附源码]JSP+ssm计算机毕业设计小区疫情物资配送管理系统624kg【源码、数据库、LW、部署】

    项目运行 项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEcl
  • LeetCode题目笔记——2331. 计算布尔二叉树的值

    文章目录 题目描述 题目难度 简单 方法一 经典后序遍历 代码 C C Python 总结 题目描述 给你一棵 完整二叉树 的根 这棵树有以下特征 叶子节点 要么值为 0 要么值为 1 其中 0 表示 False 1 表示 True 非叶子
  • 【开源电机驱动】H 桥驱动-软件篇

    原文地址 http www modularcircuits com blog articles h bridge secrets h bridge control 本文为作者翻译校正稿件 含个人理解批注 H bridge Control H
  • 无需更改注册表 实现CHM文件从共享文件中直接打开

    直接上解决方法 无需更改注册表 将整个CHM文件压缩 在压缩文件中打开 chm文件 就可以正常显示相关内容 1 问题描述 压缩前 两台电脑 A是笔记本电脑 win10系统 B是台式电脑 win7系统 在A中设置了共享文件 并共享给了B CH
  • 别光看NB的Github开源项目,你得参考他们去设计自己的架构!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 一 背景引入 首先简单介绍一下项目背景 公司对合作商家提供一个付费级产品 这个商业产品背后涉及到数百人的研发团队协作开发 包括各种业务系统来提供很多强大的业务功能 同
  • React 从零开始学习(四)—— 组件交互

    上一节 实现了把一个 prop 从父组件 Board 传递 给了子组件 Square 在 React 应用中 数据通过 props 的传递 从父组件流向子组件 这点跟 vue 是一样的 然后 跟着教程给组件添加交互功能 给组件添加交互功能
  • 简单学习识谱(六线谱)

    简单学习识谱 六线谱 参考资料 简谱的记谱方法 参考资料 吉他自学三月通 简谱的记谱方法 乐谱就是叙述音乐语言的文字 是每个学习音乐的人必须掌握的学习工具 当今世界通用的记谱法有五线谱和简谱 这两种方法都有着各自的特点 五线谱对于记录多声部
  • STM32通用定时器使用详解

    1 通用定时器基本介绍 通用定时器包括TIM2 TIM3 TIM4和TIM5 STM32通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成 每个定时器都是完全独立的 没有互相共享任何资源 它们可以一起同步操作 定时器可以进行定
  • main.c(31): warning: #223-D: function “uart_init“ declared implicitly

    Keil5编程之warning 223 D function xxx declared implicitly 1 函数没有头文件中进行声明 在头文件中添加声明 2 定义错误 字母大小可能不一致 仔细看一下出现问题的函数是否在声明和调用时使用
  • C语言入门——适合练手的密码本项目

    一 引言 学C语言有一段时间了 趁着正好做了密码本的小项目 把它分享出来 二 思路与原理 密码本 见名知意 就是存放账号密码 起到备忘录作用的本子 将需要备忘的数据通过加密存放在文本文件中 打开的文本文件为加密文本 需要通过软件查看已经存放
  • 用实际例子理解回调函数(Calback)

    用实际例子理解回调函数 Calback 在我们编码的过程中 调用和回调几乎无处不在 但是我对回调函数到底是怎样一回事并没有一个真正透彻的理解 最近我查找学习了一些资料 学到了很多 我参考了一些知乎上的分享 很不错 https www zhi
  • <数据结构>创建一个单链表

    单链表基本操作的实现 内容 构建线性表的链式存储结构 采用动态分配方式实现单链表的初始化 数据的插入 删除 输出单链表内中各元素 求单链表的长度 实现单链表中数据结点的按值排序 实现单链表的逆置 合并两个有序的单链表 有序的a表和有序的b表
  • node版本管理工具nvm

    1 标题卸载nvm和node js 系统变量中删除nvm添加变量 NVM HOME和NVM SYMLINK 环境变量中 path 删除nvm自动添加的变量 Path NVM HOME NVM SYMLINK 删除自身安装node环境 参考图
  • 《机器人操作系统入门》课程代码示例安装出错解决方法

    问题描述 学习 机器人操作系统入门 课程时 在Ubuntu 16 04 上安装了kinetic 安装ROS Academy for Beginners时依赖总是报错 如下所示 rosdep install from paths src ig
  • endnote插入的不是序号(而是大括号加上作者)的解决

    仅作为记录 大佬请跳过 之前用word通过endnote导入文献 都是可以的 在正文出现 1 的引用 但是博主新的word 需要修改参考文献 因此拟重新导入参考文献来修改 但发现导入的都是 Dou 2017 在正文中 文章目录 解决 参考
  • 50多个开源PDF阅读编辑工具汇总

    PDF Editing Creation 50 open source free alternatives to Adobe Acrobat 文章来源于这里 版权归原作者所有 Adobe Acrobat is expensive but t
  • QT QTableWidget 表格 学习笔记

    首先 了解一下QTableWidget 控件的属性 成员方法 功能 setText const QString text 设置单元格中的文本 setlcon const Qlcon icon 给单元格添加图标 setBackground c