• 表格控件QTableWidget


    搭配QTableWidgetItem使用

     样式:

     1 import sys
     2 from PyQt5.QtCore import Qt
     3 from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem,QWidget
     4 
     5 class Demo(QWidget):
     6     def __init__(self):
     7         super(Demo, self).__init__()
     8         self.resize(300,300)
     9         self.bg=QTableWidget(7,6,self)  #实例化表格.参数1参数2可选:指定设置表格的行数列数
    10         # self.bg.setRowCount(6)  #设置表格的行数
    11         # self.bg.setColumnCount(6)  #设置表格的列数
    12         self.bg.resize(200,300)  #【没有效果】
    13         print(self.bg.rowCount())  #返回表格的行数
    14         print(self.bg.columnCount())  #返回表格的列数
    15         self.bg.setColumnWidth(0, 100)  #设置列宽,第一个参数填序号,第二个参数填宽度值
    16         self.bg.setRowHeight(0, 50)     #设置行高,第一个参数序号,第二个参数高度值
    17         self.bg.setHorizontalHeaderLabels(['h1', 'h2', 'h3', 'h4', ' h5', 'h6'])
    18         #设置列标题
    19         self.bg.setVerticalHeaderLabels(['t1', 't2', 't3', 't4', 't5', 't6','t7'])
    20         #设置行标题
    21 
    22         self.bg.setShowGrid(True)  #设置是否显示表格上的网格线,True为显示(默认),False不显示
    23         self.item_1 = QTableWidgetItem('李明')  #实例化一个项目
    24         self.bg.setItem(0, 0, self.item_1)  #将项目添加到表格中。前两个int类型参数分别为行序号和列序号
    25         self.item_1.setTextAlignment(Qt.AlignCenter)  #设置项目的文本对齐方式
    26         #QtAssistant中输入Qt::Alignment就可以找到各种对齐方式
    27         self.bg.setSpan(2, 2, 2, 2)  #用来合并单元格,前两个int参数分别为起始行序号和列序号,后两个分别为要合并的行数和列数
    28         print(self.bg.findItems('李明', Qt.MatchExactly))  #进行查找,前一个参数为用来匹配的字符串
    29         #参数2  Qt.MatchExactly 表示精确匹配
    30         #Qt.MatchContains,表示包含匹配    在QtAssistant中输出Qt::MatchFlag即可了解各种匹配方式
    31 
    32 
    33 if __name__ == '__main__':
    34     app = QApplication(sys.argv)
    35     demo = Demo()
    36     demo.show()
    37     sys.exit(app.exec_())
    self.bg.horizontalHeader().setDefaultSectionSize(50)  #设置默认列宽
    self.bg.verticalHeader().setDefaultSectionSize(30) #设置默认行高
    self.bg.horizontalHeader().setFixedHeight(30) #设置列表头的高度
    self.bg.verticalHeader().setFixedWidth(50) #设置行表头的宽度
    #设置表头字体
    font = self.bg.horizontalHeader().font() #实例化列表头的字体
    font.setBold(True)
    self.bg.horizontalHeader().setFont(font) #给列表头设置字体
    font = self.bg.verticalHeader().font() # 实例化行表头的字体
    font.setBold(True)
    self.bg.verticalHeader().setFont(font) # 给行表头设置字体

    self.bg.horizontalHeader().setHighlightSections(False) #设置列表头不塌陷
    self.bg.verticalHeader().setHighlightSections(False) # 设置列表头不塌陷

    #给表头文本设置颜色
    self.item = self.bg.horizontalHeaderItem(1)
    #self.item.setTextColor(QColor.red) #【有错 ??】

    #self.bg.horizontalHeader().setVisible(False) #是否隐藏列表头
    #self.bg.verticalHeader().setVisible(False) #是否隐藏行表头
  • 相关阅读:
    需求调研-用户访谈
    kettle监控销售人员当月每天任务完成率_20161107周一
    MySQL学习_计算用户支付方式占比_20161104
    MySQL 数据底部出现总计字样 第二种办法 纵向合并 20161103
    MySQL 单笔订单满6个及以上产品且金额>=300赠送优惠券_20161103
    MySQL学习_查看各仓库产品的销售情况_20161102
    MySQL与EXCEL sum sumif sumifs 函数结合_品牌汇总_20161101
    MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031
    MySQL活动期间订单满600元并且在活动日期之前超过30天没有下过单_20161030
    MySQL活动期间制定月份注册用户下单情况_20161029
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10374276.html
Copyright © 2020-2023  润新知