如何获取行号并从该行的另一列指定工具提示?

How to get row number and specify tooltip from another columns in that row?

问题是我无法遍历整个数据框,并且无法为第 1 列中特定行中的每个 cellwidgetitem 指定同一行中其他列的工具提示。

        try:
            print(f'Sprawdzam czy dana baza danych istnieje...')
            self.conn = sqlite3.connect(r'Baza Danych/zestawienie.db', uri=True)
            print(f'Baza danych istnieje. Podłączyliśmy się do bazy danych Zestawienie')
            self.connection = sqlite3.connect(r'Baza Danych/zestawienie.db')
            self.c = self.connection.cursor()
            
        except sqlite3.OperationalError as err:
            print('Baza danych nie istnieje. Sprawdź czy plik z bazą został utworzony')
            print(err)

        # try:


        query = "SELECT * FROM Zestawienie"
        result = self.connection.execute(query)

        self.ui.zestawienie_analiza_tab_2.setRowCount(0)
        for row_number, row_data in enumerate(result):
            self.ui.zestawienie_analiza_tab_2.insertRow(row_number)
            for column_number, data in enumerate(row_data):
                self.ui.zestawienie_analiza_tab_2.setItem(row_number, column_number,QTableWidgetItem(str(data)))

上面的代码有效,并且确实在 QTableWidget 中显示了整个数据框,下面的代码用于从多个列中提取文本,并为 CellWidgetItem 从第 1 行和第 1 列中提取 setToolTip。但是当我得到超过一百行时,它将是这样的为第 2、3、4、5...150 行等工具提示中的每个 cellWidgetitem 手动复制和指定的长代码。

                # if column_number == 1:
                #     ToolTip1 = self.ui.zestawienie_analiza_tab_2.item(0,3).text()
                #     ToolTip2 = self.ui.zestawienie_analiza_tab_2.item(0,4).text()
                #     ToolTip3 = self.ui.zestawienie_analiza_tab_2.item(0,5).text()
                #     ToolTip4 = self.ui.zestawienie_analiza_tab_2.item(0,12).text()
                #     ToolTip5 = self.ui.zestawienie_analiza_tab_2.item(0,16).text()
                #     ToolTip6 = self.ui.zestawienie_analiza_tab_2.item(0,17).text()
                #     ToolTip7 = self.ui.zestawienie_analiza_tab_2.item(0,18).text()
                #     ToolTip8 = self.ui.zestawienie_analiza_tab_2.item(0,19).text()
                #     self.ui.zestawienie_analiza_tab_2.item(0,1).setToolTip('Numer Klienta: ' + ToolTip1 + '\n' +  'Nazwa: ' + ToolTip2 + '\n' + 'Materiał: ' + ToolTip3 + '\n' + 'Kooperacja: ' + ToolTip4 + '\n' + 'Uwagi: ' + ToolTip5  + '\n' + 'Malowanie: ' + ToolTip6 + '\n' + 'Alternatywne malowanie: ' + ToolTip7 + '\n' + 'Alternatywne Malowanie II: ' + ToolTip8)

我尝试了下面的这段代码来让它工作,但不幸的是我不能't.Nothing发生但它通过了所以它没有错误?请给我一个解决方案。非常感谢。

                thing = []
                if column_number == 1:
                    for i in range(0):
                        thing = self.ui.zestawienie_analiza_tab_2.item(i,1)
                        if thing is not None and thing.text() == '':
                            ToolTip1 = self.ui.zestawienie_analiza_tab_2.item(i,3).text()
                            ToolTip2 = self.ui.zestawienie_analiza_tab_2.item(i,4).text()
                            ToolTip3 = self.ui.zestawienie_analiza_tab_2.item(i,5).text()
                            ToolTip4 = self.ui.zestawienie_analiza_tab_2.item(i,12).text()
                            ToolTip5 = self.ui.zestawienie_analiza_tab_2.item(i,16).text()
                            ToolTip6 = self.ui.zestawienie_analiza_tab_2.item(i,17).text()
                            ToolTip7 = self.ui.zestawienie_analiza_tab_2.item(i,18).text()
                            ToolTip8 = self.ui.zestawienie_analiza_tab_2.item(i,19).text()
                            self.ui.zestawienie_analiza_tab_2.item(i,1).setToolTip('Numer Klienta: ' + ToolTip1 + '\n' +  'Nazwa: ' + ToolTip2 + '\n' + 'Materiał: ' + ToolTip3 + '\n' + 'Kooperacja: ' + ToolTip4 + '\n' + 'Uwagi: ' + ToolTip5  + '\n' + 'Malowanie: ' + ToolTip6 + '\n' + 'Alternatywne malowanie: ' + ToolTip7 + '\n' + 'Alternatywne Malowanie II: ' + ToolTip8)
                        else:
                            print('Failed')

对于第 1 列中的每个项目,我指定了一个工具提示,其中包含来自下述列的信息。我是这样解决的:

a = self.ui.zestawienie_analiza_tab_2.rowCount()

print(str(a))

try:
    if column_number == 1:

        numer_wiersza = 0
        for numer_wiersza in range(a):
            ToolTip1 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,3).text()
            ToolTip2 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,4).text()
            ToolTip3 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,5).text()
            ToolTip4 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,12).text()
            ToolTip5 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,16).text()
            ToolTip6 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,17).text()
            ToolTip7 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,18).text()
            ToolTip8 = self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,19).text()
            self.ui.zestawienie_analiza_tab_2.item(numer_wiersza,1).setToolTip('Numer Klienta: ' + ToolTip1 + '\n' +  'Nazwa: ' + ToolTip2 + '\n' + 'Materiał: ' + ToolTip3 + '\n' + 'Kooperacja: ' + ToolTip4 + '\n' + 'Uwagi: ' + ToolTip5  + '\n' + 'Malowanie: ' + ToolTip6 + '\n' + 'Alternatywne malowanie: ' + ToolTip7 + '\n' + 'Alternatywne Malowanie II: ' + ToolTip8)
        numer_wiersza +=1
except:
    print("nie działa")