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_())

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学网攻】 第(4)节 -- 交换机划分Vlan

文章目录 【学网攻】 第(1)节 -- 认识网络 【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口 前言 网络已经成为了我们生活中不可或缺的一部分,它连接了世界各地的人们,让信息和资源得以自由流动。随着互联网的发展&am…

Linux 下查看端口以及释放端口

目录 一、查看端口是否被占用 1、使用 netstat 命令 2、使用 lsof 命令 二、释放端口 1、使用kill命令 2、使用 fuser 命令 三、netstat 四、lsof 五、fuser 一、查看端口是否被占用 在 Linux 系统上,你可以使用 netstat 或 lsof 命令来查看端口是否被占用。…

洛谷 P1614 爱与愁的心痛

测试用例 8 3 1 4 7 3 1 2 4 3#include<iostream> using namespace std; int main(){int n;int m;cin>> n >> m;int a[10000];for (int i 0;i < n;i){cin>>a[i];}int min 10000000;for (int i 0;i < n-m1;i){int temp 0;for (int j i;j &…

85花们不会停下脚步,等待宋茜的追赶。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 近期&#xff0c;宋茜的新剧《我们的翻译官》正在热播中。这部…

第5章-TCP和UDP基本原理

1. TCP/IP传输层的作用 2. TCP基本原理 2.1. TCP头格式 2.2. TCP的三次握手 2.3. TCP的四次挥手 2.4. TCP的窗口滑动机制 3. UDP基本原理 4. TCP和UDP的比较 1. TCP/IP传输层的作用 1、定义&#xff1a;为主机&#xff1a;提供端到端的连接&#xff1b;为网络层&#xf…

【C++】入门(二)

前言&#xff1a; c基础语法&#xff08;下&#xff09; 文章目录 五、引用5.1 引用概念5.2 引用使用规则5.3 常引用5.4 引用的使用场景5.5 引用和指针的区别 六、内联函数6.1 概念6.2 内联函数的特性 七、auto关键字&#xff08;C11&#xff09;7.1 概念7.2 使用规则7.3 用于f…

SpringSecurity(12)——OAuth2相关概念

角色 资源所有者&#xff08;Resource Owner&#xff09;&#xff1a;通常是用户&#xff0c;如昵称、头像这些资源的拥有者&#xff08;用户只是将这些资源放到服务提供商的资源服务器中&#xff09;第三方应用&#xff08;Client&#xff09;&#xff1a;希望使用资源服务器…

Springboot+vue的科研工作量管理系统的设计与实现(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的科研工作量管理系统的设计与实现&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的科研工作量管理系统的设计与实现…

一分钟教你搭建《幻兽帕鲁》服务器

幻兽帕鲁是一款由Pocketpair开发的开放世界生存游戏&#xff0c;融合了多种玩法的游戏&#xff0c;其独特的题材和画风吸引了很多玩家&#xff0c;越来越多的玩家开始尝试自己搭建服务器&#xff0c;享受更加自由的游戏体验。本文将为大家详细介绍如何从零开始搭建《幻兽帕鲁》…

Git的管理操作

目录 前言 认识工作区、暂存区、版本库 小结&#xff1a; 使用场景--1&#xff1a; git log&#xff1a; 查看.git文件&#xff1a; 使用场景--2&#xff1a; git status&#xff1a; git diff&#xff1a; 进行提交&#xff1a; 总结&#xff1a; 版本回退 退…

java垃圾回收GC过程

GC&#xff08;Gabage Collection&#xff09; 用于回收堆中的垃圾数据 清理方法 1.标记-清理 对数据标记&#xff0c;然后清理 缺点&#xff1a;容易产生内存碎片 2.标记-整理 对标记后的数据清理&#xff0c;剩下数据前移 缺点&#xff1a;每次清理后数据都要迁移&#xff0…

Socket多进程模型

基于最原始的阻塞网络 I/O&#xff0c; 如果服务器要支持多个客户端&#xff0c;其中比较传统的方式&#xff0c;就是使用多进程模型&#xff0c;也就是为每个客户端分配一个进程来处理请求。 服务器的主进程负责监听客户的连接&#xff0c;一旦与客户端连接完成&#xff0c;a…