the problem is that i can’t iterate through whole dataframe and for each cellwidgetitem in specific row in column 1 specify tooltip from another columns in the same row.
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)))
Above code works and does show whole dataframe in QTableWidget and below code works for extracting text from several columns and setToolTip for CellWidgetItem from row 1 and column 1. But when i get more than one hundred rows it would be such a long code to copy and specify manually for each cellWidgetitem from row 2,3,4,5…150 etc the tooltip.
# 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)
I tried this code below to get it work but unfortunately i can’t.Nothing happens but it passes so that it has no errors? Please , give me a solution. Thank you very much.
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')
Advertisement
Answer
For each item in column 1, I specify a tooltip that contains the info from the columns described below. I solved it like this:
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")