pyqt5-表格TableWidGet

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的更多相关文章
- pyqt5表格qtablewidget
表格用到控件QTableWidget,还有一个类似的叫QTableView的. 设置单元格里的内容用方法:setItem(0,0,str) 第一个0表示第一行, 第二个0表示第一列, 第三个参数是写入 ...
- Qt:表格 tableWidget
1.设置行数和列数 //设置行数 tableWidget->setRowCount(); //设置列数 tableWidget->setColumnCount(); 2.隐藏表头 tabl ...
- Pyqt5——表格中隐藏的控件(Model/View/Delegate)
需求:在TableView表格中点击单元格可以实现编辑功能.性别由LineEdite控件编辑,年龄由spinBox控件编辑. 实现:(1)使用Qt的model-view模式生成表格视图. (2) ...
- pyqt5的使用目录
pyqt5的安装 我的第一个例子 标签控件QLabel的使用 按钮QPushButton 信号与槽 pyqt5模块介绍 pycharm活动模板 QObject 定时器 QWidget类-坐标系 ...
- [ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法
如果你想让你开发的PyQt5工具展示的数据显得整齐.美观.好看,显得符合你的气质,可以考虑使用QTableWidget控件.之前一直使用的是textBrowser文本框控件,数据展示还是不太美观.其中 ...
- PyQt5调入数据库数据在表格中显示
数据库为Postgresql import sys from form import Ui_Form from PyQt5.Qt import QWidget, QApplication,QTable ...
- C/C++ Qt TableWidget 表格组件应用
TableWidget 表格结构组件,该组件可以看作是TreeWidget树形组件的高级版,表格组件相比于树结构组件灵活性更高,不仅提供了输出展示二维表格功能,还可以直接对表格元素直接进行编辑与修改操 ...
- qt tableWidget 表格控件使用
//创建表格头 (灰色冻结状态的) QStringList header; header<<"Time"<<" ID "<< ...
- Pyqt5——带图标的表格(Model/View)
需求:表格中第一列内容为学生学号,为了突出学号的表示,在第一列的学号旁增加学号图标. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写代理(QAbstractItemDeleg ...
- Pyqt5——变色的表格
需求:鼠标左键点击表格后,对应的单元格背景颜色发生变化. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写表格的点击事件. (3)设置表格的背景颜色. 正常情况下,当用户选中单 ...
随机推荐
- docker扩容
方法一. https://www.cnblogs.com/atuotuo/p/7217331.html 只需要修改 dockerd 的启动参数啊 增加 --data-root 把 /var/lib/d ...
- JS获取表单元素的value
<!-- 1.option selected属性,如果我们在下拉列表里面选择了一个option那么他的selected="true" ,如果我们想设置当前的option是选中 ...
- Prometheus告警模型分析
Prometheus作为时下最为流行的开源监控系统,其庞大的生态体系:包括针对各种传统应用的Exporter,完整的二次开发工具链,与Kubernetes等主流平台的高度亲和以及由此带来的强大的自发现 ...
- PHP操作redis部分命令
//连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('12345 ...
- 2031 HDOJ 进制转换
Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=1 ...
- python 并发编程 协程 目录
python 并发编程 协程 协程介绍 python 并发编程 协程 greenlet模块 python 并发编程 协程 gevent模块 python 并发编程 基于gevent模块实现并发的套接字 ...
- vultr vps 开启BBR加速 (CentOS 7)
上个月买的vultr的vps 感觉看视频还是比较慢的 于是上网找教程开启BBR加速 在这里记录一下 以后可能会用到 BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著 ...
- Java Android 开发数字不足位数前面补0
import java.text.DecimalFormat; public void changeColor(View view) { DecimalFormat decimalFormat = n ...
- springBoot2.0使用@slf4j注解记录日志
1. idea上安装Lombok插件 File --> setting --> Plugins 安装完后重启idea 2. 在springboot项目中修改pom.xml,添加如下配置引入 ...
- Dango之初识安装
1. MVC和MTV框架 1.1MVC Web服务器开发领域里著名的MVC模式 所谓MVC就是把Web应用分为模型(M), 控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起 ...