python - 如何在pyqt4中将qtableview行对齐到右侧?

标签 python pyqt4 qtableview

如何将qtable View 的内容右对齐?我使用这个类来制作我的表格。

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()"))

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

最佳答案

查看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() 

关于python - 如何在pyqt4中将qtableview行对齐到右侧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7035849/

相关文章:

python - 如何编写sql来更新目标表中仅给出一条记录的某些字段

python - PyQT 全屏问题

python - PyQt - 如何将多个信号连接到同一个小部件

python - OpenCV 读取视频文件在 Python 中非常慢

python - 如何在字典中存储 tkinter 按钮小部件?

python - 将带有嵌套 SELECT、EXIST、SELECT NEXT 子句的 mysql 转换为 python sqlalchemy 语句

qt - 如何正确更改TableView的行高?

python - PYQT如何编辑在MainWindow中tab化的QDockWidget的标题?

c++ - 如何在 QTableView 中显示 SQLite 表

c++ - 带有复选框的 QHeaderView - 如何区分右键单击标题复选框和单击单元格中的任意位置