from PyQt5.QtWidgets import QApplication,QTableWidget,QWidget,QHeaderView,QPushButton,QTableWidgetItem,QFrame
import sys
from PyQt5.QtGui import QBrush,QColor,QFont,QIcon
from PyQt5.QtCore import Qt,QSize class win(QWidget):
def __init__(self):
super().__init__()
self.resize(500,500)
self.setWindowTitle('表格学习')
titles = ['编号', '姓名', '工资', '入职日期', ' 性别']
self.table = QTableWidget(self) #创建空表格
self.table.resize(450,300)
#self.table = QTableWidget(4,3,self) #创建4行3列的表格
self.table.setRowCount(9) # 设置行数--不包括标题列
self.table.setColumnCount(5) # 设置列数
self.table.setHorizontalHeaderLabels(titles) # 标题列---水平标题
#参数 标题列表
#self.table.setVerticalHeaderLabels(titles) # 标题列---垂直标题 #self.table.horizontalHeader().setStyleSheet("background-color: blue")#表格头添加背景颜色
#没有效果 ??? self.table.setEditTriggers(QTableWidget.AnyKeyPressed) # 单元格用户能否、如何编辑
#QTableWidget.NoEditTriggers 单元格用户不可编辑
#QTableWidget.DoubleClicked 连续双击即可编辑
#QTableWidget.SelectedClicked 在被选中的情况下单击一次即可编辑
#QTableWidget.CurrentChanged 选中的单元格改变了即可编辑
#QTableWidget.AnyKeyPressed 按下任何符号键即可编辑 self.table.setSelectionBehavior(QTableWidget.SelectItems) # 设置选中行
#鼠标点选时,默认选中一个单元格---QTableWidget.SelectItems
#QTableWidget.SelectRows 鼠标点击选中一行
#QTableWidget.SelectColumns 鼠标点击选中一列 self.table.setAlternatingRowColors(True) #行是否自动变色 self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) #设置列宽的适应方式
#QHeaderView.Stretch 拉伸--表格总宽度充满表格
#QHeaderView.Fixed 固定宽度
#QHeaderView.ResizeToContents 适应内容 s=self.table.columnCount() #返回列数 QTableWidget.resizeRowsToContents(self.table) #设置行高与内容匹配
#QTableWidget.resizeColumnsToContents(self.table) #self.table.horizontalHeader().setFixedHeight(50) # 设置表列头高度
#self.table.horizontalHeader().setFixedWidth(820) # 设置列宽(没啥用) #self.table.setColumnWidth(1, 350) #设置某列的宽度
#setSectionResizeMode 设置后,这个指令无效 #self.table.setRowHeight(0, 120) #设置某行的高度 self.table.horizontalHeader().setVisible(True) #水平表格头是否隐藏
#self.table.verticalHeader().setVisible(False) #垂直表格头是否隐藏 lb=QPushButton('按钮')
#self.table.setCellWidget(0, 1, lb) #在指定单元格内放置控件
#0行1列----不包括标题头 newItem = QTableWidgetItem('') #创建表格项---文本项目
self.table.setItem(0, 0, newItem) #给指定单元格设置数据
newItem = QTableWidgetItem('')
self.table.setItem(1,0,newItem)
newItem = QTableWidgetItem('')
self.table.setItem(2, 0, newItem)
newItem = QTableWidgetItem('')
self.table.setItem(3, 0, newItem)
newItem = QTableWidgetItem('')
self.table.setItem(4, 0, newItem) pb=QPushButton('测试按钮',self)
pb.move(50,470)
pb.clicked.connect(self.AA) self.table.hideRow(1) #隐藏指定行
self.table.showRow(1) # 显示指定行 item=self.table.item(1,0) #返回指定单元格的对象
s=self.table.item(1, 0).text() #返回指定单元格的文本内容
item.setForeground(QBrush(QColor(255, 0, 0))) #设置指定单元格的前景色
item.setBackground(QColor(250, 0, 0)) #设置指定单元格的背景景色 item.setTextAlignment(Qt.AlignRight | Qt.AlignBottom) #给指定单元格设置对齐方式 #self.table.sortItems(0, Qt.DescendingOrder) #指定列排序
#参数1 列序号
#参数2 Qt.DescendingOrder 降序;Qt.AscEndingOrder 升序 headItem = self.table.horizontalHeaderItem(1) #获取指定列的标题项的对象
s= self.table.horizontalHeaderItem(1).text() #获取指定列的标题文本内容
headItem.setFont(QFont("黑体", 14, QFont.Bold)) #给指定列的标题设置字体
headItem.setForeground(QBrush(Qt.blue)) #给指定列的标题设置文本颜色 headItem.setBackground(QColor(0, 0, 250) ) # 给指定列的标题设置背景颜色
#没有效果 ??? items = self.table.findItems('', Qt.MatchExactly) #寻找
#Qt.MatchContains 只要包含指定文本的就算
#Qt.MatchExactly 完全匹配才算
#返回值:满足条件的单元格对象的列表
item=items[0]
item.setSelected(False) #设置指定单元格是否选中
s=item.row() #返回单元格对象的行号 #self.table.setSpan(2, 0, 4, 1) #合并单元格
#2行0列开始,占据4行1列 font = self.table.horizontalHeader().font() #获取水平标题头的字体
font.setBold(True)
font.setPointSize(13)
self.table.horizontalHeader().setFont(font) #给水平标题头设置字体
#headItem.setFont已经设置过的好像不起效果【特异性原则】 #self.table.setFrameShape(QFrame.NoFrame) # 设置表格外层无边框
#self.table.setShowGrid(False) # 是否显示单元格网格线,False 则不显示
#self.table.horizontalHeader().setHighlightSections(True) # 设置表格列头是否塌陷
#看不出效果 ??? newItem = QTableWidgetItem(QIcon("./大象.png"), "大象") #创建表格项---图片项目
#参数2 描述
self.table.setIconSize(QSize(100, 100)) #设置图片大小
newItem.setFlags(Qt.ItemIsEnabled) #用户点击表格时,图片被选中
self.table.setColumnWidth(2, 100) #设置指定列的列宽
self.table.setRowHeight(2, 100) #设置指定行的行高
self.table.setItem(2, 2, newItem) #给指定单元格设置图片项 #self.table.clear() #清除所有数据--包括标题头
self.table.clearContents() #清除所有数据--不包括标题头 print(s) def AA(self):
s=self.table.currentRow() #返回当前行序号
#self.table.insertRow(s) #在指定行的上面插入一行
#self.table.removeRow(s) #删除指定行 s=self.table.currentColumn() #返回当前列序号
#self.table.insertColumn(s) #在指定列的前面插入一列
#self.table.removeColumn(s) #删除指定列 print(s) if __name__=='__main__':
app=QApplication(sys.argv)
w=win()
w.show()
sys.exit(app.exec_())

天子骄龙

pyqt5-表格TableWidGet的更多相关文章

  1. pyqt5表格qtablewidget

    表格用到控件QTableWidget,还有一个类似的叫QTableView的. 设置单元格里的内容用方法:setItem(0,0,str) 第一个0表示第一行, 第二个0表示第一列, 第三个参数是写入 ...

  2. Qt:表格 tableWidget

    1.设置行数和列数 //设置行数 tableWidget->setRowCount(); //设置列数 tableWidget->setColumnCount(); 2.隐藏表头 tabl ...

  3. Pyqt5——表格中隐藏的控件(Model/View/Delegate)

    需求:在TableView表格中点击单元格可以实现编辑功能.性别由LineEdite控件编辑,年龄由spinBox控件编辑. 实现:(1)使用Qt的model-view模式生成表格视图.    (2) ...

  4. pyqt5的使用目录

    pyqt5的安装 我的第一个例子 标签控件QLabel的使用   按钮QPushButton 信号与槽 pyqt5模块介绍 pycharm活动模板  QObject 定时器  QWidget类-坐标系 ...

  5. [ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法

    如果你想让你开发的PyQt5工具展示的数据显得整齐.美观.好看,显得符合你的气质,可以考虑使用QTableWidget控件.之前一直使用的是textBrowser文本框控件,数据展示还是不太美观.其中 ...

  6. PyQt5调入数据库数据在表格中显示

    数据库为Postgresql import sys from form import Ui_Form from PyQt5.Qt import QWidget, QApplication,QTable ...

  7. C/C++ Qt TableWidget 表格组件应用

    TableWidget 表格结构组件,该组件可以看作是TreeWidget树形组件的高级版,表格组件相比于树结构组件灵活性更高,不仅提供了输出展示二维表格功能,还可以直接对表格元素直接进行编辑与修改操 ...

  8. qt tableWidget 表格控件使用

    //创建表格头 (灰色冻结状态的) QStringList header; header<<"Time"<<" ID "<< ...

  9. Pyqt5——带图标的表格(Model/View)

    需求:表格中第一列内容为学生学号,为了突出学号的表示,在第一列的学号旁增加学号图标. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写代理(QAbstractItemDeleg ...

  10. Pyqt5——变色的表格

    需求:鼠标左键点击表格后,对应的单元格背景颜色发生变化. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写表格的点击事件. (3)设置表格的背景颜色. 正常情况下,当用户选中单 ...

随机推荐

  1. upd通讯Recvfrom设置阻塞不起作用

    把自己踩到的坑记录一下,在做UDP通讯的时候,发现自己的程序没有收数据居然也有百分之十二的cpu占用率,通过性能分析工具了解到时recvfrom函数一直在执行,虽然设置阻塞并且确认成功了, ;//阻塞 ...

  2. 磁盘的分区和挂载(mount)

    一.挂载问题的引入 我们大多数人用惯了windos系统,对linux系统中磁盘的管理就先入为主,不太好理解挂载这一动作.在linux系统中添加一块新磁盘后,要进行分区.格式化(分配文件系统).挂载.当 ...

  3. MySQL各种函数/语法

    @limit pos,len select * from table limit 5,10 只显示查出结果的6-15行 ---------------------------------------- ...

  4. sublime3配置php开发环境

    Sublime3 3143 1.用包管理器安装SublimeLinter ctrl+shift+p Package Control: install package SublimeLinter 注意: ...

  5. 【miscellaneous】华为智能视频监控系统设计解决方案

    [导读] 近年来,随着经济的快速增长.社会的迅速进步,校园.工厂园区.中小企业.楼宇等领域对安全防范和现场记录报警系统的需求与日俱增,视频监控在工作.生活各方面得到了非常广泛的应用. 1.中小型视频监 ...

  6. 模板中for 的使用

    from flask import Flask,render_template app = Flask(__name__) app.config.update( DEBUG = True, ) @ap ...

  7. vs2015中将复制过来的文件夹显示目录文件

    先将文件夹和文件复制到VS程序所在的位置,点击解决方案资源管理器上的“显示所有文件”按纽,展开这个文件夹,这样你就可以看到这个文件或者文件夹了,这时,这个文件或者文件夹是虚线构成的.你右击这个文件或者 ...

  8. excel常用公式--关联匹配类

    index: 根据位置返回单元格的值. match: 根据单元格的值返回位置. index+match替代vlookup rank:返回一列数字的数字排位.数字的排位是其相对于列表中其他值的大小.

  9. Java四类八项基本数据类型

    一. 四类八项基本数据类型 1. 整数类型(byte.short.int.long) 三点注意事项: a. Java各整数类型有固定的表示范围和字段长度,其不收操作系统的影响,以保持Java的可移植性 ...

  10. 让图片img标签上下左右居中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...