首页 > 其他分享 >pyqt5-QTableWidget

pyqt5-QTableWidget

时间:2023-04-16 23:58:17浏览次数:34  
标签:单元格 int self QTableWidget pyqt5 item QTableWidgetItem 设置

1、介绍

这是pyqt的表格组件。

2、类和初始化

class QTableWidget(QTableView):
    def __init__(self, *__args):
        pass

示例:

self.table = QTableWidget(self.w)

3、属性

4、方法

(1)columnCount和rowCount

  • 返回int类型,即列数和行数,最低为0,即空白,此时没有表头

(2)setColumnCount和setRowCount

  • 设置int参数,即列数和行数。如果行置为0,即清除表格
  • 此时获取列数和行数,即为设置的值
  • 标题行和序号列不计入获取的行数和列数

(3)insertRow和insertColumn

  • 设置int参数,表示在指定位置插入行或者列
  • 最低为0,表示首行或者首列,设置时在最前进行插入。最大为rowCount()或columnCount(),设置时在最后进行插入。
  • 参数超出范围,则不进行插入行或列,也不报错

(4)removeRow和removeColumn

  • 设置int参数,表示移除指定的行或列
  • 最低为0,表示首行或者首列,设置时移除首行或首列。最大为rowCount()-1或columnCount()-1,设置时移除末行或末列。
  • 参数超出范围,则不移除行或列,也不报错

(5)setItem

  • 用于设置单元格的值,需要设置行索引和列索引,都是从0开始。也就是说需要在前面直接设置或者插入行和列,使得指定的单元格是先于存在的
  • 可以直接设置或间接设置
item = QTableWidgetItem()
item.setText('单元格')
self.table.setItem(0,0,item)
self.table.setItem(0,1, QTableWidgetItem('单元格'))

(6)item

  • 指定行索引和列索引,都是从0开始,返回指定的单元格对象,即QTableWidgetItem。
  • 对单元格可以进行操作
    • setText:即设置单元格文本。如果已经通过QTableWidgetItem为单元格赋过值,可以采用该方法进行快速设置。否则会报错
    • setFlags:Qt.ItemIsEnabled。设置该单元格只读模式
    • setTextAlignment 设置对其方式
    • text 获取单元格内容
item(0,0)
item(0,0).setText('更新')
item(0,0).setFlags(Qt.ItemIsEnabled) # 参数名字段不允许修改

from PySide2.QtCore import Qt
item(0,0).setTextAlignment(Qt.AlignHCenter)  #居中对其
item(0,0).text() # 获取单元格内容

(7)currentRow和currentColumn

  • 获取当前选中的行数和列数。
  • 当不存在行和列时,即行数和列数为0,则这两方法返回-1
  • 当存在行和列时,即使未选择,也返回0
  • 当选中之后,点击表格外的区域并不会改变当前选中行和列。
  • 选中标题行或者序号列的单元格,其列或者行有效,从0开始,而另外的行或者列为0
currentRow()
currentColumn()

(8)clearContents

  • 清除表格内容,但是不会删除单元格

(9)row和column

  • 如果没有查到,返回-1和-1
  • 这里的QTableWidgetItem并不是自定义创建的,而是基于事件等情况从表格对象直接获取的。前者查询不到任何东西,返回-1
def row(self, QTableWidgetItem):
        """ row(self, QTableWidgetItem) -> int """
        return 0
def column(self, QTableWidgetItem):
        """ column(self, QTableWidgetItem) -> int """
        return 0

(10)其他

# 设定第1列的宽度为 180像素
table.setColumnWidth(0, 180)
​
# 设定第2列的宽度为 100像素
table.setColumnWidth(1, 100)
​
# 表格控件宽度 随着父窗口的缩放自动缩放
table.horizontalHeader().setStretchLastSection(True)
  • 设置宽度
self.table.verticalHeader().setVisible(False)#隐藏垂直表头
self.table.verticalHeader().setVisible(False)#隐藏水平表头
self.table.setHorizontalHeaderLabels(['第一行列','第二列','第三列','第四列'])
self.table.setVerticalHeaderLabels(['第一行','第二行','第三行','第四行','第五行'])

设置背景色和字体色

# 设置背景色
self.ui.tableWidget.item(0, 2).setBackground(QBrush(QColor(0, 0, 255)))
# 设置前景色,即字体颜色
self.ui.tableWidget.item(0, 1).setForeground(QBrush(QColor(0, 0, 255)))

5、事件

self.table.cellChanged.connect()
  • 当用户修改了一个单元格的内容,会发出 cellChanged 信号,并且携带参数指明该单元格的行号和列号。
cellClicked(self, p_int, p_int_1)
cellDoubleClicked(self, p_int, p_int_1)
itemClicked(self, QTableWidgetItem)
itemDoubleClicked(self, QTableWidgetItem)

cellChanged(self, p_int, p_int_1):
columnCountChanged
currentCellChanged(self, p_int, p_int_1, p_int_2, p_int_3)
currentChanged(self, *args, **kwargs)
currentItemChanged(self, QTableWidgetItem, QTableWidgetItem_1)
dataChanged(self, *args, **kwargs)
horizontalScrollbarValueChanged(self, *args, **kwargs)
itemChanged(self, QTableWidgetItem)
itemSelectionChanged(self)
rowCountChanged(self, *args, **kwargs)
selectionChanged(self, *args, **kwargs)
verticalScrollbarValueChanged(self, *args, **kwargs)

标签:单元格,int,self,QTableWidget,pyqt5,item,QTableWidgetItem,设置
From: https://www.cnblogs.com/wd404/p/17324478.html

相关文章

  • pyqt5-QTabWidget
    QTabWidget详解–fengMisaka–博客园(cnblogs.com)1、介绍标签页组件。2、类和初始化classQTabWidget(QWidget):def__init__(self,parent=None):pass3、属性4、常用方法(1)addTabdefaddTab(self,QWidget,*__args):"""addTa......
  • pyqt5-QAction
    1、介绍动作。这是QMenu添加的项,或者QMenuBar组件直接添加。2、类和初始化classQAction(__PyQt5_QtCore.QObject):"""QAction(parent:QObject=None)QAction(str,parent:QObject=None)QAction(QIcon,str,parent:QObject=None)"""......
  • pyqt5-QMenu
    1、介绍菜单组件。有两种场景:窗口的菜单栏设置一个或多个QMenu其他组件绑定右键菜单,探出一个QMenu2、类和初始化classQMenu(QWidget):"""QMenu(parent:QWidget=None)QMenu(str,parent:QWidget=None)"""def__init__(self,*__args):......
  • pyqt5-QMenuBar
    1、介绍菜单栏组件。这里指的是QMainWindow窗口顶部水平的菜单栏。2、类和初始化classQMenuBar(QWidget):"""QMenuBar(parent:QWidget=None)"""def__init__(self,parent=None):pass一般是通过QMainWindow窗口组件调用menuBar方法获取到QMenuBar对......
  • pyqt5-介绍
    1、介绍pyqt是python的一个主流的第三方模块,与Qt融合,用于GUI开发。支持多种常用组件,并且具有很好的默认显示效果QtDesigner支持图形化直接设计ui,大大减轻工作,得到更好的效果使用范围广,网络上有很多的中文文档和问答,方便开发支持pyqthon3语法,目前是pyqt5版本2、比较tkint......
  • pyqt5-QMainWindow
    1、介绍QMainWindow是一个窗口组件,也是最常用的主窗口。importsysfromPyQt5.QtWidgetsimportQMainWindow,QApplicationfromPyQt5.uicimportloadUiclassmy_window:def__init__(self):self.ui=loadUi('ui\\main_window.ui')self.ui:QMa......
  • pyqt5-开发
    1、介绍这里介绍pyqt的一般开发过程。2、主窗口一般,使用QMainWindow组件作为主窗口。然后分为三个部分:标题栏,即窗口名称、图标和关闭按钮等所在行菜单栏和工具栏主界面(1)标题栏可以是直接使用pyqt提供的默认样式,也可以取消默认样式,然后自定义(2)主界面一般不会直接在主界......
  • pyqt5-事件
    1、介绍pyqt提供了事件机制使用户和程序进行交互。2、xxed方法组件的类中声明的类似xxed形式的方法,用于表示事件,使用时将其调用connect方法,指定处理方法。示例:xx.clicked.connect(self.opt)绑定组件对象的鼠标单击事件,如果触发,则调用opt方法3、xxEvent方法组件的类中声......
  • pyqt5-布局
    1、介绍pyqt可以基于designer快速进行布局,所见即所得,不用关心代码。2、绝对布局通过组件的move和update等方法,可以设置组件的左上顶角在父组件的中的绝对位置,从而实现布局。在实际开发中,可以用于窗口的位置设置,但是一般不用于窗口内组件的管理move(x,y)#x表示水平方向,y......
  • pyqt5-QWidget
    1、介绍QWidget是几乎所有pyqt组件的直接或间接父类,其声明的属性和方法很具有代表性。其他组件极大可能是直接使用,所以一般不再阐述。除非少数可能做了个性化覆写。2、类和初始化classQWidget(__PyQt5_QtCore.QObject,__PyQt5_QtGui.QPaintDevice):def__init__(self,p......