pyqt5 单元格

    xiaoxiao2022-07-14  135

    设置单元格字体和颜色

    import sys from PyQt5.QtWidgets import QWidget, QTableWidget, QHBoxLayout, QApplication, QTableWidgetItem from PyQt5.QtGui import QBrush, QColor, QFont class CellFontAndColor(QWidget): def __init__(self): super(CellFontAndColor,self).__init__() self.initUI() def initUI(self): self.setWindowTitle("设置单元格字体和颜色") self.resize(430, 230); layout = QHBoxLayout() tableWidget = QTableWidget() tableWidget.setRowCount(4) tableWidget.setColumnCount(3) layout.addWidget(tableWidget) tableWidget.setHorizontalHeaderLabels(['姓名', '性别', '体重(kg)']) newItem = QTableWidgetItem('雷神') newItem.setFont(QFont('Times',14,QFont.Black)) newItem.setForeground(QBrush(QColor(255,0,0))) tableWidget.setItem(0,0,newItem) newItem = QTableWidgetItem('女') newItem.setForeground(QBrush(QColor(255,255,0))) newItem.setBackground(QBrush(QColor(0,0,255))) tableWidget.setItem(0,1,newItem) newItem = QTableWidgetItem('160') newItem.setFont(QFont('Times',20,QFont.Black)) newItem.setForeground(QBrush(QColor(0,0,255))) tableWidget.setItem(0,2,newItem) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) example = CellFontAndColor() example.show() sys.exit(app.exec_())

    设置单元格尺寸

    import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import QBrush, QColor, QFont class CellSize(QWidget): def __init__(self): super(CellSize,self).__init__() self.initUI() def initUI(self): self.setWindowTitle("QTableWidget 例子") self.resize(530, 300) layout = QHBoxLayout() tableWidget = QTableWidget() tableWidget.setRowCount(4) tableWidget.setColumnCount(3) layout.addWidget(tableWidget) tableWidget.setHorizontalHeaderLabels(['姓名', '性别', '体重(kg)']) tableWidget.setRowHeight(0, 80) tableWidget.setColumnWidth(2, 120) tableWidget.setRowHeight(2,100) newItem = QTableWidgetItem('雷神') newItem.setFont(QFont('Times',40,QFont.Black)) newItem.setForeground(QBrush(QColor(255,0,0))) tableWidget.setItem(0,0,newItem) newItem = QTableWidgetItem('女') newItem.setForeground(QBrush(QColor(255,255,0))) newItem.setBackground(QBrush(QColor(0,0,255))) tableWidget.setItem(0,1,newItem) newItem = QTableWidgetItem('160') newItem.setFont(QFont('Times',60,QFont.Black)) newItem.setForeground(QBrush(QColor(0,0,255))) tableWidget.setItem(0,2,newItem) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) example = CellSize() example.show() sys.exit(app.exec_())

    设置单元格的文本对齐方式 setTextAlignment

    Qt.AlignRight Qt.AlignBottom

    import sys from PyQt5.QtWidgets import QWidget, QTableWidget, QHBoxLayout, QApplication, QTableWidgetItem from PyQt5.QtCore import Qt class CellTextAlignment(QWidget): def __init__(self): super(CellTextAlignment,self).__init__() self.initUI() def initUI(self): self.setWindowTitle("设置单元格的文本对齐方式") self.resize(430, 230); layout = QHBoxLayout() tableWidget = QTableWidget() tableWidget.setRowCount(4) tableWidget.setColumnCount(3) layout.addWidget(tableWidget) tableWidget.setHorizontalHeaderLabels(['姓名', '性别', '体重(kg)']) newItem = QTableWidgetItem('雷神') newItem.setTextAlignment(Qt.AlignRight | Qt.AlignBottom) tableWidget.setItem(0,0,newItem) newItem = QTableWidgetItem('男') newItem.setTextAlignment(Qt.AlignCenter | Qt.AlignBottom) tableWidget.setItem(0,1,newItem) newItem = QTableWidgetItem('190') newItem.setTextAlignment(Qt.AlignRight) tableWidget.setItem(0,2,newItem) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) example = CellTextAlignment() example.show() sys.exit(app.exec_())

    改变单元格中图片的尺寸

    setIconSize(QSize(width,height))

    import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class CellImageSize(QWidget): def __init__(self): super(CellImageSize,self).__init__() self.initUI() def initUI(self): self.setWindowTitle("改变单元格中图片的尺寸") self.resize(1000, 900); layout = QHBoxLayout() tablewidget = QTableWidget() tablewidget.setIconSize(QSize(300,200)) tablewidget.setColumnCount(3) tablewidget.setRowCount(5) tablewidget.setHorizontalHeaderLabels(['图片1', '图片2', '图片3']) # 让列的宽度和图片的宽度相同 for i in range(3): tablewidget.setColumnWidth(i,300) # 让行的高度和图片的高度相同 for i in range(15): tablewidget.setRowHeight(i,200) for k in range(15): i = k / 3 # 行 j = k % 3 # 列 item = QTableWidgetItem() item.setIcon(QIcon('./images/bao%d.png' % k)) tablewidget.setItem(i,j,item) layout.addWidget(tablewidget) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) example = CellImageSize() example.show() sys.exit(app.exec_())

    在单元格中实现图文混排的效果

    import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * class CellImageText(QWidget): def __init__(self): super(CellImageText,self).__init__() self.initUI() def initUI(self): self.setWindowTitle("在单元格中实现图文混排的效果") self.resize(500, 300); layout = QHBoxLayout() self.tableWidget = QTableWidget() self.tableWidget.setRowCount(5) self.tableWidget.setColumnCount(4) layout.addWidget(self.tableWidget) self.tableWidget.setHorizontalHeaderLabels(['姓名', '性别', '体重', '显示图片']) newItem = QTableWidgetItem('李宁') self.tableWidget.setItem(0,0,newItem) newItem = QTableWidgetItem('男') self.tableWidget.setItem(0,1,newItem) newItem = QTableWidgetItem('160') self.tableWidget.setItem(0,2,newItem) newItem = QTableWidgetItem(QIcon('./images/bao1.png'),'背包') self.tableWidget.setItem(0,3,newItem) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) example = CellImageText() example.show() sys.exit(app.exec_())

    刘润森! 认证博客专家 Python Java 前端 17年就读于东莞XX学院化学工程与工艺专业,GitChat作者。Runsen的微信公众号是"Python之王",因为Python入了IT的坑,从此不能自拔。公众号内容涉及Python,Java计算机、杂谈。干货与情怀同在。喜欢的微信搜索:「Python之王」。个人微信号:RunsenLiu。不关注我公号一律拉黑!!!
    最新回复(0)