TypeError: __init__() takes 1 positional argument but 2 were given
    Rich Shepard 
    rshepard at appl-ecosys.com
       
    Thu Apr 29 16:33:25 BST 2021
    
    
  
I'm trying to add a tab's content to a QTabWidget but get this error:
$ python mwe.py 
Traceback (most recent call last):
   File "mwe.py", line 31, in <module>
     mw = MainWindow()
   File "mwe.py", line 20, in __init__
     self.sw = SitesWindow(self)
TypeError: __init__() takes 1 positional argument but 2 were given
It's been a long time since I did any serious python coding and despite my
researching this error on the Web I still fail to see the solution. I know
it's simple but I don't see the two arguments to the assignment. An minimal
example is attached.
Please point out my error.
TIA,
Rich
-------------- next part --------------
#!/usr/bin/env python3
import sys
from PyQt5 import QtWidgets as qtw
from PyQt5 import QtGui as qtg
from PyQt5 import QtCore as qtc
from views.sites import SitesWindow
class MainWindow(qtw.QMainWindow):
    def __init__(self):
        """MainWindow constructor"""
        super().__init__()
        self.setWindowTitle('NWE')
        self.statusBar()
        # tab contents
        self.sw = SitesWindow(self) # line 30 in error msg
        
        tabs = qtw.QTabWidget()
        tabs.setMovable(False)
        # add tab pages here
        tabs.addTab(self.sw)
      
        self.show()
if __name__ == '__main__':
    app = qtw.QApplication(sys.argv)
    mw = MainWindow()
    sys.exit(app.exec())       
    
    
More information about the PyQt
mailing list