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. 简单的servlet上传文件

    boolean multipartContent = ServletFileUpload.isMultipartContent(request);if (multipartContent==true) ...

  2. 【DSP开发】【VS开发】MUX和DEMUX的含义

    MUX和DEMUX Mux 是 Multiplex 的缩写,意为"多路传输",其实就是"混流"."封装"的意思,与"合成" ...

  3. Akka系列(三):监管与容错

    前言...... Akka作为一种成熟的生产环境并发解决方案,必须拥有一套完善的错误异常处理机制,本文主要讲讲Akka中的监管和容错. 监管 看过我上篇文章的同学应该对Actor系统的工作流程有了一定 ...

  4. 关于Tomcat配置问题

    一,部署并启动Tomcat服务器 Tomcat: 开源的 Servlet 容器. 解压 apache-tomcat-6.0.16.zip 到一个非中文目录下 配置一个环境变量. java_home(指 ...

  5. MVC学习途径

    博客园专题:http://kb.cnblogs.com/zt/mvc/ MVC源码:http://www.codeplex.com/site/search?projectSearchText=mvc ...

  6. sql回显注入-笔记

     拼接sql命令查询数据   注释 常用于sql注入            # 井号 单行注释 注意:URL编码 %23          -- 两个减号加空格 单行注释           /*   ...

  7. HDU 1263 水果 (STL map)

    水果 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  8. Java设计给小学生的自动出题系统

    系统要求: 1.自动出题,涉及加减乘除四则运算 2.运算为两位数之间 3.减法不能出现负数 4.乘法结果不超过100 5.除法必须整除 6.用户决定出题量 7.用户决定几道题一换行 8.题目不允许重复 ...

  9. trigraph

    trigraph是c/c++对之前键盘无法输入一些符号而做出的补充设计,将以下字符用其他三个字符来代替 # ??= \ ??/ ^ ??' [ ??( ] ??) { ??< } ??> ...

  10. PHP常见数组排序方法小结

    1.简单数组排序 sort() 函数和rsort() 函数: 语法规则: bool sort(array &array [,int sort_flags] bool rsort(array & ...