[Pyqt5.5 for Python3.4.3 学习笔记]-->QTableWidget表格控件的使用方法

来源:赵克立博客 分类: Python 标签:PythonPyQt5发布时间:2016-06-02 21:45:39最后更新:2016-06-06 22:38:12浏览:15274
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2016-06-06 22:38:12
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class myDialog(QDialog):
    """docstring for myDialog"""
    def __init__(self, arg=None):
        super(myDialog, self).__init__(arg)
        self.setWindowTitle("first window")
        self.resize(500,300);
        conLayout = QHBoxLayout()
        tableWidget=QTableWidget()
        tableWidget.setRowCount(5)
        tableWidget.setColumnCount(4)
        conLayout.addWidget(tableWidget)
        for i in range(5):
            for j in range(4):
                tableWidget.setItem(i,j, QTableWidgetItem(self.tr(str(i)+str(j))))
        self.setLayout(conLayout)
app = QApplication(sys.argv)
dlg = myDialog()
dlg.show()
dlg.exec_()
app.exit()

效果图如下:

QQ截图20160602214440.png

设置表格头

tableWidget.setHorizontalHeaderLabels(['a','b','a','b'])
tableWidget.setVerticalHeaderLabels(['va','vb','vc','vd','ve'])

上面代码要记得放在下面代码之后否则是没有效果的

tableWidget.setRowCount(5)
tableWidget.setColumnCount(4)

运行效果如图:

QQ截图20160602215025.png

单元格里面还可以放控件如下代码:

# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class myDialog(QDialog):
    """docstring for myDialog"""
    def __init__(self, arg=None):
        super(myDialog, self).__init__(arg)
        self.setWindowTitle("first window")
        self.resize(500,300);
        conLayout = QHBoxLayout()
        tableWidget=QTableWidget()
        tableWidget.setRowCount(5)
        tableWidget.setColumnCount(4)
        tableWidget.setHorizontalHeaderLabels(['a','b','a','b'])
        tableWidget.setVerticalHeaderLabels(['va','vb','vc','vd','ve'])
        conLayout.addWidget(tableWidget)
        for i in range(5):
            for j in range(4):
                #可以在单元格中加入控件
                comBox = QComboBox();
                comBox.addItem("Y");
                comBox.addItem("N");
                tableWidget.setCellWidget(i,j,comBox);
        self.setLayout(conLayout)
app = QApplication(sys.argv)
#全局设置QPushButton的背景样式
dlg = myDialog()
dlg.show()
dlg.exec_()
app.exit()

运行效果如下:

QQ截图20160602215212.png

单元格默认是可以编辑的下面代码可以设置为只读

tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers);

单元格默认是可以选中单个单元格,下面代码可以设置成选中一行

tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows);

隐藏列表头

#隐藏列表头
tableWidget.verticalHeader().setVisible(False);
#隐藏行表头
tableWidget.horizontalHeader().setVisible(False);

还可以将行和列的大小设为与内容相匹配

tableWidget.resizeColumnsToContents();
tableWidget.resizeRowsToContents();



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python