PyQT5 (四十五) 在 QTableWidget 表格中设置单元格文本的对齐方式 的案例

该示例展示了如何在Qt的QTableWidget中使用`setTextAlignment`方法设置单元格文本的对齐方式,包括右对齐、左对齐、居中和底部对齐。通过创建一个名为`CellTextAlignmentDemo`的窗口,展示了一个包含姓名、性别和体重的表格,每个单元格的文本对齐方式都进行了设定,同时提供了排序按钮进行升序或降序排序。
摘要由CSDN通过智能技术生成

 

在 QTableWidget 表格中设置单元格文本的对齐方式 的案例
setTextAlignment
Qt.AlignRight
Qt.AlignBottom

import sys

from PyQt5 import QtPrintSupport, QtGui
from PyQt5.QtCore import Qt, QMimeData, QDate, QDateTime, QTime, QStringListModel
from PyQt5.QtGui import QIcon, QPainter, QBrush, QPixmap, QStandardItemModel, QStandardItem, QColor, QFont
from PyQt5.QtPrintSupport import QPageSetupDialog, QPrinter, QPrintDialog
from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QFormLayout, QLabel, QLineEdit, QPushButton, QGridLayout, \
    QCalendarWidget, QVBoxLayout, QDateTimeEdit, QAction, QMainWindow, QTextEdit, QStatusBar, QFileDialog, QDialog, \
    QTableView, QMessageBox, QListView, QListWidget, QHBoxLayout, QTableWidget, QTableWidgetItem, QAbstractItemView

'''
在 QTableWidget 表格中设置单元格文本的对齐方式 的案例
setTextAlignment
Qt.AlignRight
Qt.AlignBottom

'''

class CellTextAlignmentDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置定位和左上角坐标
        self.setGeometry(300, 300, 460, 360)
        # 设置窗口标题
        self.setWindowTitle('QTableWidget扩展表格的单元格文本的对齐方式 的演示')
        # 设置窗口图标
        # self.setWindowIcon(QIcon('../web.ico'))

        layout = QVBoxLayout()
        self.tablewidget = QTableWidget()
        self.tablewidget.setRowCount(4)
        self.tablewidget.setColumnCount(3)

        layout.addWidget(self.tablewidget)
        self.tablewidget.setHorizontalHeaderLabels(['姓名','性别','体重(kg)'])

        newItem = QTableWidgetItem('玉皇大帝')
        newItem.setFont(QFont('微软雅黑',10,QFont.Black))
        newItem.setTextAlignment(Qt.AlignRight | Qt.AlignBottom) # 右下对齐
        self.tablewidget.setItem(0,0,newItem)

        newItem = QTableWidgetItem('男')
        newItem.setFont(QFont('宋体',14,QFont.Black))
        newItem.setTextAlignment(Qt.AlignCenter | Qt.AlignBottom) # 中下对齐

        self.tablewidget.setItem(0,1,newItem)

        newItem = QTableWidgetItem('180')
        newItem.setFont(QFont('宋体',28,QFont.Black))
        newItem.setForeground(QBrush(QColor(0,120,255)))
        self.tablewidget.setItem(0,2,newItem)

        newItem = QTableWidgetItem('何仙姑')
        newItem.setFont(QFont('微软雅黑',10,QFont.Black))
        self.tablewidget.setItem(1,0,newItem)

        newItem = QTableWidgetItem('女')
        newItem.setFont(QFont('宋体',14,QFont.Black))
        newItem.setTextAlignment(Qt.AlignCenter) # 中对齐
        self.tablewidget.setItem(1,1,newItem)

        newItem = QTableWidgetItem('160')
        newItem.setFont(QFont('宋体',8,QFont.Black))
        newItem.setForeground(QBrush(QColor(0,120,255)))
        self.tablewidget.setItem(1,2,newItem)

        newItem = QTableWidgetItem('太上老君')
        newItem.setFont(QFont('微软雅黑',10,QFont.Black))
        self.tablewidget.setItem(2,0,newItem)

        newItem = QTableWidgetItem('男')
        newItem.setFont(QFont('宋体',14,QFont.Black))
        newItem.setTextAlignment(Qt.AlignBottom) # 底对齐
        self.tablewidget.setItem(2,1,newItem)

        newItem = QTableWidgetItem('170')
        newItem.setFont(QFont('宋体',28,QFont.Black))
        newItem.setForeground(QBrush(QColor(0,120,255)))
        self.tablewidget.setItem(2,2,newItem)

        newItem = QTableWidgetItem('如来佛祖')
        newItem.setFont(QFont('微软雅黑',10,QFont.Black))
        newItem.setTextAlignment(Qt.AlignLeft) # 左对齐
        self.tablewidget.setItem(3,0,newItem)

        newItem = QTableWidgetItem('男')
        newItem.setFont(QFont('宋体',14,QFont.Black))
        newItem.setTextAlignment(Qt.AlignRight) # 右对齐
        self.tablewidget.setItem(3,1,newItem)

        newItem = QTableWidgetItem('190')
        newItem.setFont(QFont('宋体',18,QFont.Black))
        newItem.setForeground(QBrush(QColor(0,120,255)))
        self.tablewidget.setItem(3,2,newItem)

        self.button = QPushButton('排序')
        self.button.clicked.connect(self.order)
        layout.addWidget(self.button)

        self.orderType = Qt.DescendingOrder

        self.setLayout(layout)

    def order(self):
        if self.orderType == Qt.DescendingOrder:
            self.orderType = Qt.AscendingOrder
        else:
            self.orderType = Qt.DescendingOrder
        # 按照第三列排序,启动切换升序降序
        self.tablewidget.sortItems(2,self.orderType)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    # 设置应用图标
    app.setWindowIcon(QIcon('../web.ico'))
    w = CellTextAlignmentDemo()
    w.show()
    sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值