第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將 QTableWidget 作為參數(shù)傳遞給函數(shù)

如何將 QTableWidget 作為參數(shù)傳遞給函數(shù)

交互式愛情 2023-04-25 16:22:42
我有導(dǎo)出到 excel 函數(shù)和一堆 QTableWidgets。我知道如果我為每個(gè) tablewidget 創(chuàng)建每個(gè)函數(shù)是非常低效的,但是我如何將 tablewidget 作為函數(shù)的參數(shù)傳遞?    def writeCsv(self):        path, _ = QFileDialog.getSaveFileName(self, 'Save File', QDir.homePath() + "/export.csv", "CSV Files(*.csv *.txt)")        if path:            with open(path, 'w') as stream:                print("saving", path)                writer = csv.writer(stream, dialect = 'excel', delimiter = ',')                headers = []                for column in range(self.tableWidget_show.columnCount()):                    header = self.tableWidget_show.horizontalHeaderItem(column)                    if header is not None:                        headers.append(header.text())                    else:                        headers.append("Column " + str(column))                writer.writerow(headers)                for row in range(self.tableWidget_show.rowCount()):                    rowdata = []                    for column in range(self.tableWidget_show.columnCount()):                        item = self.tableWidget_show.item(row, column)                        if item is not None:                            rowdata.append(item.text())                        else:                            rowdata.append('')                    writer.writerow(rowdata)我想使用self.tableWidget_showpart 作為參數(shù),這樣每次當(dāng)我有其他參數(shù)時(shí)我都可以更改參數(shù)Qtablewidget
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

首先讓每個(gè)函數(shù)執(zhí)行最小的任務(wù),以便調(diào)試很容易,例如在你的情況下,沒(méi)有必要在那里使用 QFIleDialog 來(lái)選擇文件,而只接收路徑,然后在另一個(gè)函數(shù)中進(jìn)行選擇。另一方面,所使用的信息存儲(chǔ)在模型中而不是視圖中,因此可以通過(guò)保存模型而不是 QTableWidget 來(lái)概括它,因此您也可以將它用于任何類型的 QTableView。


def write_model_to_csv(self, model, filename):

    with open(filename, "w") as stream:

        writer = csv.writer(stream, dialect="excel", delimiter=",")

        headers = []

        for column in range(model.columnCount()):

            text = model.headerData(column, Qt.Horizontal)

            if text:

                headers.append(text)

            else:

                headers.append("Column {}".format(column))

        writer.writerow(headers)

        for row in range(model.rowCount()):

            rowdata = []

            for column in range(model.columnCount()):

                text = model.index(row, column).data()

                if text:

                    rowdata.append(text)

                else:

                    rowdata.append("")

            writer.writerow(rowdata)

path, _ = QFileDialog.getSaveFileName(

    self, "Save File", QDir.homePath() + "/export.csv", "CSV Files(*.csv *.txt)"

)

if path:

    self.write_model_to_csv(self.tableWidget_show.model(), path)


查看完整回答
反對(duì) 回復(fù) 2023-04-25
  • 1 回答
  • 0 關(guān)注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)