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. 获取重复字符串的range,设置attributedText

    之前项目的需求是未读人员显示绿色,已读人员显示黑色,测试今天提bug说存在未读人员显示的黑色...这就尴尬了,我完全不知道为啥,经过打断点调试程序,终于找到问题:就是他只会获取到第一个想等字符的ran ...

  2. Day02:变量 / JAVA基本类型

    变量 什么是变量? 变化数值的载体 变量声明.初始化.使用 声明变量  类型 大小(占用空间) int x; 初始化变量 (赋值) 给予占用空间 int x=35; 使用变量 直接使用变量名 注意: ...

  3. LeetCode.961-2N数组中N次重复的元素(N-Repeated Element in Size 2N Array)

    这是悦乐书的第365次更新,第393篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第227题(顺位题号是961).在大小为2N的数组A中,存在N+1个唯一元素,并且这些元 ...

  4. const char* to char*(当函数传递参数时)

    来自 https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 https://blog.csdn.net/hebbely/art ...

  5. 【VS开发】【电子电路技术】RJ45以太网传输线研究

    RJ45以太网传输线研究 最近研究远距离差分视频传输方案,理所当然想到了LVDS协议.至于选用cameralink传输线,还是选用其他方案,本人更倾向于廉价的RJ45以太网线来实现LVDS差分信号的传 ...

  6. 使用new关键字创建对象数组(C#,C++,Java)

    今天遇到一个题目 分析下面的代码,判断代码是否有误. using System; namespace Test1 { class Point { public int x; public int y; ...

  7. 【洛谷p1051】谁拿了最多奖学金

    谁拿了最多奖学金[题目链接] 这道题早就想做它啦. 咱也不知道为啥,咱就是看这道题特别顺眼呢qwq: MY SOLUTION: 其实这道题很简单,开一个结构体记录各项信息,然后根据条件计算出这个人获得 ...

  8. Thymeleaf模板中变量报红

    在上顶部添加 <!--suppress ThymeleafVariablesResolveInspection --> 或者 <!--suppress ALL --> 都可以解 ...

  9. zabbix 监控redis python3脚本

    一:安装redis-python模块 wge  thttps://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz tar xf r ...

  10. Linux如何查看进程是否启动,查看端口占用

    Linux系统中经常需要查看某个进程是否已经启动,启动位置在哪里,某个端口是否被占用,被哪个进程占用等,这些都可以通过命令来完成,本文讲述如何查看进程是否启动,查看端口占用 1.通过ps -ef | ...