Pyside6中QTableWidget使用

目录

一:介绍:

二:演示


一:介绍:

在 PySide6 中,QTableWidget 是一个用于展示和编辑表格数据的控件。它提供了在窗口中创建和显示表格的功能,并允许用户通过单元格来编辑数据。

要使用 QTableWidget,首先需要创建一个 QTableWidget 对象,并设置其行数和列数。可以通过 setRowCount() 和 setColumnCount() 方法来设置行和列的数量。

一旦创建了表格,可以使用 setItem() 方法将数据添加到表格的单元格中。setItem() 方法接受三个参数:行索引、列索引和 QTableWidgetItem 对象,用于指定要添加到表格中的数据。

除了添加数据,QTableWidget 还提供了其他一些功能,如插入和删除行或列、调整单元格大小等。可以使用 insertRow() 和 insertColumn() 方法来插入行或列,使用 removeRow() 和 removeColumn() 方法来删除行或列。

此外,可以通过设置表格的属性来定制表格的外观和行为。例如,可以使用 setHorizontalHeader() 和 setVerticalHeader() 方法来设置表头,使用 setSortingEnabled() 方法来启用排序功能等。

下面是一个简单的示例代码,演示了如何在 PySide6 中使用 QTableWidget:

二:演示

import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QTableWidget, QTableWidgetItem


class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('数据表格示例')
        self.setGeometry(100, 100, 500, 500)

        # 创建一个表格
        self.table = QTableWidget()
        self.table.setRowCount(5)  # 设置行数
        self.table.setColumnCount(2)  # 设置列数

        # 添加数据到表格中
        for i in range(5):
            for j in range(2):
                item = QTableWidgetItem(f"行{i + 1}列{j + 1}")  # 创建 QTableWidgetItem 对象并设置文本
                self.table.setItem(i, j, item)  # 将 QTableWidgetItem 对象添加到表格中

        # 创建一个按钮来添加行数据
        self.add_row_button = QPushButton('添加行数据')
        self.add_row_button.clicked.connect(self.add_row)

        # 创建一个按钮来添加列数据
        self.add_column_button = QPushButton('添加列数据')
        self.add_column_button.clicked.connect(self.add_column)

        # 创建一个垂直布局并添加控件
        layout = QVBoxLayout()
        layout.addWidget(self.table)  # 添加表格到布局中
        layout.addWidget(self.add_row_button)  # 添加按钮到布局中
        layout.addWidget(self.add_column_button)  # 添加按钮到布局中
        self.setLayout(layout)  # 设置窗口的布局为垂直布局

    def add_row(self):
        self.table.insertRow(self.table.rowCount())  # 在表格末尾插入一行

    def add_column(self):
        for i in range(self.table.rowCount()):  # 遍历每一行并添加一列数据
            item = QTableWidgetItem(f"新列{i + 1}")  # 创建 QTableWidgetItem 对象并设置文本
            self.table.setItem(i, self.table.columnCount() - 1, item)  # 将 QTableWidgetItem 对象添加到表格中当前行的最后一列
            self.table.setSpan(i, self.table.columnCount() - 1, 1, 2)  # 将当前行的最后一列跨度设置为2,以覆盖新插入的列和原有列
            self.table.setColumnWidth(self.table.columnCount() - 1, 100)  # 设置新插入列的宽度为100像素


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    ex.show()
    sys.exit(app.exec_())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/345450.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑马Java——面向对象进阶(static继承)

1.static静态变量 静态变量是随着类的加载而加载的,优先与对象出现的

Kotlin 开发环境配置指南

一、下载与安装 Kotlin 编译器 步骤 1:获取最新版 Kotlin 编译器 要配置 Kotlin 开发环境,首先需要从 JetBrains 官方 GitHub 仓库下载最新的 Kotlin 编译器。访问以下链接以获取最新版本的编译器: [https://github.com/JetBrains/kotlin/…

Severstal公司的汉语名字是什么,是一家什么样的公司?

问题描述:Severstal公司的汉语名字是什么,是一家什么样的公司? 问题解答: Severstal 公司的中文名字通常被翻译为 "谢韦尔钢铁公司"。这家公司是俄罗斯的一家大型钢铁和矿业企业,总部位于莫斯科。Seversta…

libtorch学习第六

构建卷积网络 #include<torch/torch.h> #include<torch/script.h> #include<iostream>using std::cout; using std::endl;class LinearBnReluImpl : public torch::nn::Module { private:torch::nn::Linear ln{ nullptr };torch::nn::BatchNorm1d bn{ nullp…

[Python] glob内置模块介绍和使用场景(案例)

Unix glob是一种用于匹配文件路径的模式&#xff0c;它可以帮助我们快速地找到符合特定规则的文件。在本文中&#xff0c;我们将介绍glob的基本概念、使用方法以及一些实际应用案例。 glob介绍 Glob(Global Match)是Unix和类Unix系统中的一种文件名扩展功能&#xff0c;它可以…

分布式锁的实现方式

分布式锁是指分布式环境下&#xff0c;系统部署在多个机器中&#xff0c;实现多进程分布式互斥的一种锁。实现分布式锁有三种主流方式&#xff0c;接下来一一盘点。 盘点之前要说说选择时的优缺点 数据库实现的锁表完全不推荐。 Redis分布式锁性能优于ZooKeeper&#xff0c;因…

01、领域驱动设计:微服务设计为什么要选择DDD总结

目录 1、前言 2、软件架构模式的演进 3、微服务设计和拆分的困境 4、为什么 DDD适合微服务 5、DDD与微服务的关系 6、总结 1、前言 我们知道&#xff0c;微服务设计过程中往往会面临边界如何划定的问题&#xff0c;不同的人会根据自己对微服务的理 解而拆分出不同的微服…

通过 GScan 工具自动排查后门

一、简介 GScan 是一款为安全应急响应提供便利的工具&#xff0c;自动化监测系统中常见位置。 工具运行环境&#xff1a;CentOS (6、7) python (2.x、3.x) 工具检查项目&#xff1a; 1、主机信息获取 2、系统初始化 alias 检查 3、文件类安全扫描 3.1、系统重要文件完整行…

JS进阶-深入对象(二)

拓展&#xff1a;深入对象主要介绍的是Js的构造函数&#xff0c;实例成员&#xff0c;静态成员&#xff0c;其中构造函数和Java种的构造函数用法相似&#xff0c;思想是一样的&#xff0c;但静态成员和实例成员和java种的有比较大的差别&#xff0c;需要认真理解 • 创建对象三…

Switch用法以及新特性-最全总结版

本篇文章参考了大佬文章&#xff0c;感谢大佬无私分享&#xff1a; http://t.csdnimg.cn/MjZnX http://t.csdnimg.cn/QFg0x 目录 一、Switch用法&#xff1a;JDK7及以前 1.1、举例一&#xff1a; 1.2、举例二&#xff1a; 二、Switch穿透&#xff1a; 2.1、举例&#xf…

三极管的奥秘:如何用小电流控制大电流

双极性晶体管&#xff08;英语&#xff1a;bipolar transistor&#xff09;&#xff0c;全称双极性结型晶体管&#xff08;bipolar junction transistor, BJT&#xff09;&#xff0c;俗称三极管&#xff0c;是一种具有三个引脚的电子元器件。 本文是讲述的是三极管的基础知识…

基于openssl v3搭建ssl安全加固的c++ tcpserver

1 概述 tcp server和tcp client同时使用openssl库&#xff0c;可对通信双方流通的字节序列进行加解密&#xff0c;保障通信的安全。本文以c编写的tcp server和tcp client为例子&#xff0c;openssl的版本为v3。 2 安装openssl v3 2.1 安装 perl-IPC-Cmd openssl项目中的co…

企业内部知识库搭建教程,赶紧收藏起来

在企业运营中&#xff0c;内部知识库搭建是一项重要的挑战&#xff0c;并需要合理的规划与管理。尤其对于中大型企业&#xff0c;内部知识库能够提高工作效率&#xff0c;减轻员工工作压力与突发事件的处理的困扰。下面给大家提供一份完整的内部知识库搭建教程&#xff0c;快看…

UE4运用C++和框架开发坦克大战教程笔记(十五)(第46~48集)

UE4运用C和框架开发坦克大战教程笔记&#xff08;十五&#xff09;&#xff08;第46~48集&#xff09; 46. 批量加载 UClass 功能测试批量加载多个同类 UClass 资源 47. 创建单个资源对象测试加载并创建单个 UClass 资源对象 48. 创建同类资源对象 46. 批量加载 UClass 功能 逻…

Leetcode1143. 最长公共子序列

解题思路 求两个数组或者字符串的最长公共子序列问题&#xff0c;肯定是要用动态规划的。下面的题解并不难&#xff0c;你肯定能看懂。 首先&#xff0c;区分两个概念&#xff1a;子序列可以是不连续的&#xff1b;子数组&#xff08;子字符串&#xff09;需要是连续的&#xf…

rabbitmq基础-java-3、Fanout交换机

1、简介 Fanout&#xff0c;英文翻译是扇出。 2、 特点 1&#xff09; 可以有多个队列 2&#xff09; 每个队列都要绑定到Exchange&#xff08;交换机&#xff09; 3&#xff09; 生产者发送的消息&#xff0c;只能发送到交换机 4&#xff09; 交换机把消息发送给绑定过的…

3d模型怎么分辨材质?--模大狮模型网

在3D模型中&#xff0c;通常可以通过以下几种方式来分辨材质&#xff1a; 视觉检查&#xff1a;在3D渲染视图或预览窗口中&#xff0c;您可以直接观察模型的外观来区分不同的材质。不同的材质可能具有不同的颜色、纹理、反射率等特征&#xff0c;因此通过直观的视觉检查&#x…

网络通信课程总结(小飞有点东西)

27集 局域网通信&#xff1a;用MAC地址 跨局域网通信&#xff1a;用IP地址&#xff08;MAC地址的作用只是让我们找到网关&#xff09; 又因为arp技术&#xff0c;可以通过MAC地址找到IP地址&#xff0c;所以我们可以通过IP地址定位到全世界任意一台计算机。 28集 在数据链路…

C语言每日一题(47)两数相加II

力扣 445 两数相加II 题目描述 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。 示例1&#xff1a; 输入&#xff…

了解WPF控件:RadioButton和RepeatButton常用属性与用法(九)

掌握WPF控件&#xff1a;熟练常用属性&#xff08;九&#xff09; RadioButton 一种允许用户在一组选项中单选一个的控件。通常用于提供一组互斥的选项供用户选择。 常用属性描述Content用于设置 RadioButton 显示的文本内容。GroupName用于将多个 RadioButton 控件组合到一…