亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Python PyQt5 QTableView 中對齊(居中)行數據?

如何在 Python PyQt5 QTableView 中對齊(居中)行數據?

天涯盡頭無女友 2022-12-20 16:09:40
我想對齊模型中的所有行。我在“QtDesigner”中將 .ui 編譯為 .py 并創建 form.py。Ui_MainWindow 來自 form.py 。你能用例子解釋解決辦法嗎?回復:我想對齊模型中的所有行。我在“QtDesigner”中將 .ui 編譯為 .py 并創建 form.py。Ui_MainWindow 來自 form.py 。你能用例子解釋解決辦法嗎?class App(Ui_MainWindow):    def __init__(self, window):        self.setupUi(window)        # code...        numbers = [["Thomas","17776661122",?],["Parker","1777666331",?],["Michael","17775553322",?]]        CreateTable()    def CreateTable(self,fromlist):        for i in range(0,len(fromlist)):            self.model.addCustomer(Customer(fromlist[i][0],fromlist[i][1],fromlist[i][2]))            ### align code        # code...這是我的 QtTableView 模型。class Customer(object):    def __init__(self,name,number,status):        self.name = name        self.number = number        self.status = statusclass CustomerTableModel(QtCore.QAbstractTableModel):    ROW_BATCH_COUNT = 15    def __init__(self):        super(CustomerTableModel,self).__init__()        self.headers = ['               ?sim                     ','  Telefon No (?rn 9053xx..)   ','   Mesaj Durumu   ']        self.customers  = []        self.rowsLoaded = CustomerTableModel.ROW_BATCH_COUNT    def rowCount(self,index=QtCore.QModelIndex()):        if not self.customers:            return 0        if len(self.customers) <= self.rowsLoaded:            return len(self.customers)        else:            return self.rowsLoaded    def canFetchMore(self,index=QtCore.QModelIndex()):        if len(self.customers) > self.rowsLoaded:            return True        else:            return False   
查看完整描述

2 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

我找到了解決方案。我將這一行添加到...


def data(self,index,role=QtCore.Qt.DisplayRole):

    col = index.column()

    customer = self.customers[index.row()]

    if role == QtCore.Qt.DisplayRole:

        if col == 0:

            return QtCore.QVariant(customer.name)

        elif col == 1:

            return QtCore.QVariant(customer.number)

        elif col == 2:

            return QtCore.QVariant(customer.status)

        return QtCore.QVariant()

    # ADDED LINES

    elif role == QtCore.Qt.TextAlignmentRole:

        return QtCore.Qt.AlignCenter

    ###


查看完整回答
反對 回復 2022-12-20
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

沒有找到在 QTableView 上創建表格的方法,但是對于每個項目設置,此代碼都可以對齊;


data = QTableWidget(["17776661122"])

table.setItem(x,y,data).setTextAlignment(Qt.AlignHCenter)


查看完整回答
反對 回復 2022-12-20
  • 2 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號