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. 关于js函数闭包的理解

    在开始之前我们先来了解一下函数的变量作用域 JavaScript 变量可以是局部变量或全局变量. 私有变量可以用到闭包. 全局变量 函数可以访问由函数内部定义的变量,如: 实例1 function m ...

  2. 用番茄工作法提升工作效率 (四)ToDoList的持续优化

    一.写在前面 前面三篇文章,系统介绍了我如何使用番茄工作法,并结合“自制”的桌面ToDoList工具来实现自己的任务管理. 自制ToDoList的初衷是自我管理,但是好友看到我的桌面(程序)后,建议我 ...

  3. KVM虚拟机管理(2)

    一.virt-manager创建虚机 命令行需要下载下面的组件: CentOS7: 命令行界面升级为图形化界面 yum groupinstall "X Window System" ...

  4. mysql——多表——外连接查询——左连接、右连接、复合条件查询

    ), d_id ), name ), age ), sex ), homeadd ) ); ,,,'nan','beijing'); ,,,'nv','hunan'); ,,,'nan','jiang ...

  5. Python_Onlineh_Hmework(基础篇,持续更新中...)

    1 递归 1.1 定义一个函数,求一个数的阶乘 def func(x): if x == 2: return 2 else: return x*func(x-1) a = func(4) print( ...

  6. 【转】应用宝基于Robotium自动化测试

    (转载:http://tmq.qq.com/2016/05/robotium_for_app_test/) 1 背景目的应用宝项目组采用FT(Feature Team)模式,整个项目组分为多个FT,而 ...

  7. 交换机安全学习笔记 第二章 MAC地址泛洪攻击

    本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为.H3C设备的相关配置.华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02.  H3C配置参 ...

  8. poj3191(负进位制)

    题目链接:https://vjudge.net/problem/POJ-3191 题意:将一个int范围的整数用-2进制表示并输出. 思路:将十进制转换成-2进制,原理也类似于短除法.但不同的是不是简 ...

  9. 【Linux 网络编程】端口

    (1)众所周知的端口:0~1023,这些端口由IANA分配和控制它们紧密绑定用于一些服务.常用这些端口的通讯    明确表明了某些协议.例如:21端口为ftp服务端口. (2)注册端口:1024~49 ...

  10. Comet OJ - Contest #13

    Rank53. 第一次打这种比赛.还是有不少问题的,以后改吧. A题WA了两次罚了不少时. C写到一半发现只能过1,就先弃了. D一眼没看出来.第二眼看出来就是一个类似于复数的快速幂. 然后B切了. ...