I'm trying to execute a SQL statement in Python/pyqt5, but every time I run this code
self.view.resizeColumnToContents()
I get an error:
TypeError: resizeColumnToContents(self, int): not enough arguments
I've been trying to use different SQL statements, but no success
import sys
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
from PyQt5.QtWidgets import QApplication, QMessageBox, QLabel, QMainWindow, QTableWidget, QTableWidgetItem
class mainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle(" work overflow")
self.resize(1000, 500)
#view setup
self.view = QTableWidget()
#2 kolumny
self.view.setColumnCount(2)
self.view.setHorizontalHeaderLabels(["EWR", "Description", " id "])
query = QSqlQuery("SELECT * from _tbl_BuildPhases")
while query.next():
rows = self.view.rowCount()
self.view.setRowCount(rows+1)
self.view.setItem(rows, 0, QTableWidgetItem(query.value(0)))
#self.view.setItem(rows, 1, QTableWidgetItem(str(query.value(1))))
self.view.setItem(rows, 1, QTableWidgetItem(query.value(1)))
self.view.resizeColumnToContents()
self.setCentralWidget(self.view)
#Creating connection with DB
def createConnection():
con = QSqlDatabase.addDatabase("QSQLITE")
con.setDatabaseName("xyz")
con.setUserName("sa")
con.setPassword("xyz")
if not con.open():
QMessageBox.critical(None, "work overflow- Error",
"DataBase Error: %s" % con.lastError().databaseText())
return False
return True
# create App
app = QApplication(sys.argv)
#App window
if not createConnection():
sys.exit(1)
win = mainWindow()
win.show()
sys.exit(app.exec_())
resizeColumnToContentstakes an argument, which column to resize. Have a look at the docs