如何在pyqt4的右侧对齐qtableview行?

Posted

技术标签:

【中文标题】如何在pyqt4的右侧对齐qtableview行?【英文标题】:how to align qtableview row at the right side in pyqt4? 【发布时间】:2011-08-12 05:15:32 【问题描述】:

如何将qtable视图的内容右对齐?我用这个类来制作我的桌子。

class MyTableModel(QAbstractTableModel):

    def __init__(self, datain, headerdata, parent=None, *args): 
        """ datain: a list of lists
            headerdata: a list of strings
        """
        QAbstractTableModel.__init__(self, parent, *args) 
        self.arraydata = datain
        self.headerdata = headerdata


    def rowCount(self, parent):
        return len(self.arraydata) 

    def columnCount(self, parent):
        try:
            return len(self.arraydata[0]) 
        except:
            return 0
    def data(self, index, role): 
        if not index.isValid():
            return QVariant() 
        elif role != Qt.DisplayRole:
            return QVariant() 
        return QVariant(self.arraydata[index.row()][index.column()]) 

    def headerData(self, col, orientation, role):

        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
                return QVariant(self.headerdata[col])
        return QVariant()

    def sort(self, Ncol, order):
        """Sort table by given column number.
        """
        self.emit(SIGNAL("layoutAboutToBeChanged()"))
        self.arraydata = sorted(self.arraydata, key=operator.itemgetter(Ncol))        
        if order == Qt.DescendingOrder:
            self.arraydata.reverse()
        self.emit(SIGNAL("layoutChanged()"))

我想在右边对齐所有货币数据类型。 谢谢:)

【问题讨论】:

【参考方案1】:

看看Qt::ItemDataRole enum(尤其是TextAlignmentRole)。

你可以这样做:

def data(self, index, role): 
    if index.isValid():
        return QVariant()

    if role == Qt.DisplayRole:
        return QVariant(self.arraydata[index.row()][index.column()])
    elif role == Qt.TextAlignmentRole:
        return QVariant(Qt.AlignRight | Qt.AlignVCenter)

    return QVariant() 

【讨论】:

以上是关于如何在pyqt4的右侧对齐qtableview行?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pyqt4 中设置 QTableView 标头名称

PyQt4 - QTableView - 如何循环 QTableView

如何将 QLineEdit 放入 QTableView 单元格 PyQt4?

在 qtableview pyqt4 python 中使用图像委托?

基于 PyQt4 QTableView 模型

PyQt4中的QTableView选定元素