How to align the text to center of cells in a QTableWidget

royatirek picture royatirek · Dec 25, 2017 · Viewed 16.2k times · Source

I am using PyQt based on Qt4. My Editor is PyCharm 2017.3 and my python version is 3.4. I am scraping some text from a website. I am trying to align that text to the center of the cell in a QTableWidget.

item = QTableWidgetItem(scraped_age).setTextAlignment(Qt.AlignHCenter)
self.tableWidget.setItem(x, 2,item)

Therefore while putting the item in the cell, I am trying to align it as per the documentation. The problem is that the data is not showing up.

a part of QtableWidget where data is not showing up

It did show up when I removed setTextAlignment method as shown below

item = QTableWidgetItem(scraped_age)
self.tableWidget.setItem(x, 2,item)

a part of my QtableWidget

Answer

ekhumoro picture ekhumoro · Dec 25, 2017

This line of code:

item = QTableWidgetItem(scraped_age).setTextAlignment(Qt.AlignHCenter)

will not work properly, because it throws away the item it creates before assigning it to the variable. The variable will in fact be set to None, which is the return value of setTextAlignment(). Instead, you must do this:

item = QTableWidgetItem(scraped_age) # create the item
item.setTextAlignment(Qt.AlignHCenter) # change the alignment