def __init__(self, parent=None):
        super(Window, self).__init__(parent)



        self.plot_title = 'f(R),f(R,Q),GR comparison for Mass and Radius'
        self.xlabel = "$R[km]$"
        self.ylabel = r'$M[M_\odot]$'
        self.xlim = (8.0, 20.0)

        tree = QTreeWidget()
        headerItem = QTreeWidgetItem()
        item = QTreeWidgetItem()

        tree_fRQ = QTreeWidget()
        headerItem_fRQ = QTreeWidgetItem()
        item_fRQ = QTreeWidgetItem()

        tree_GR = QTreeWidget()
        headerItem_GR = QTreeWidgetItem()
        item_GR = QTreeWidgetItem()

        tree_quantities = QTreeWidget()
        headerItem_quantities = QTreeWidgetItem()
        item_quantities = QTreeWidgetItem()

        self.quant_branch = QTreeWidgetItem(tree_quantities)
        self.quant_branch.setText(0, "Quantities")
        self.quant_branch.setFlags(self.quant_branch.flags() )
        # self.GR_branch.setCheckState(0, Qt.Unchecked)

        child = QTreeWidgetItem(self.quant_branch)
        child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
        child.setText(0, 'R-M')
        child.setCheckState(0, Qt.Checked)
        child.emitDataChanged()  # .connect(self.plot)

        child = QTreeWidgetItem(self.quant_branch)
        child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
        child.setText(0, 'rho-M')
        child.setCheckState(0, Qt.Unchecked)
        child.emitDataChanged()

        self.GR_branch = QTreeWidgetItem(tree_GR)
        self.GR_branch.setText(0, "GR")
        self.GR_branch.setFlags(self.GR_branch.flags() | Qt.ItemIsTristate  | Qt.ItemIsUserCheckable)
        #self.GR_branch.setCheckState(0, Qt.Unchecked)

        for x in range(len(glob.glob('Results/TOV_output_GR_*'))):
            child = QTreeWidgetItem(self.GR_branch)
            child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
            checktext =  GR_Modellist[x].EOS_type
            child.setText(0,checktext)
            child.setCheckState(0, Qt.Unchecked)
            child.emitDataChanged()# .connect(self.plot)

        self.fR_branch = QTreeWidgetItem(tree)
        self.fR_branch.setText(0,"fR")
        self.fR_branch.setFlags(self.fR_branch.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)

        for x in range(len(glob.glob('Results/TOV_output_fR_*'))):
            child = QTreeWidgetItem(self.fR_branch)
            child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
            checktext = fR_Modellist[x].ID + fR_Modellist[x].EOS_type
            child.setText(0,checktext)
            child.setCheckState(0, Qt.Unchecked)
            child.emitDataChanged()# .connect(self.plot)

        #if(fRQ_branch.child(1).isSelected==1){print("hey hey")}

        self.fRQ_branch = QTreeWidgetItem(tree_fRQ)
        self.fRQ_branch.setText(0, "fRQ")
        self.fRQ_branch.setFlags(self.fRQ_branch.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)

        for x in range(len(glob.glob('Results/TOV_output_fRQ_*'))):
            child = QTreeWidgetItem(self.fRQ_branch)
            child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
            checktext = fRQ_Modellist[x].ID + fRQ_Modellist[x].EOS_type
            child.setText(0, checktext)
            child.setCheckState(0, Qt.Unchecked)
        print("checked?", self.fR_branch.child(0).isSelected())
        tree.itemChanged.connect(self.plot)
        tree_fRQ.itemChanged.connect(self.plot)
        tree_GR.itemChanged.connect(self.plot)
        tree_quantities.itemChanged.connect(self.quant_change)
        tree_quantities.itemChanged.connect(self.plot)



        #tree.show()

        # a figure instance to plot on
        self.figure = plt.figure()

        # this is the Canvas Widget that displays the `figure`
        # it takes the `figure` instance as a parameter to __init__
        self.canvas = FigureCanvas(self.figure)

        # this is the Navigation widget
        # it takes the Canvas widget and a parent
        self.toolbar = NavigationToolbar(self.canvas, self)

        # Just some button connected to `plot` method
        #self.button = QPushButton('Plot')
        #self.button.clicked.connect(self.plot)

        # set the layout
        self.layout = QVBoxLayout()

        self.sublayout1 = QVBoxLayout()
        self.sublayout2 = QHBoxLayout()
        plotBox = QHBoxLayout()
        plotBox.addLayout(self.sublayout1, 1)
        plotBox.addLayout(self.sublayout2, 4)
        bottomlayout = QHBoxLayout()
        #self.layout.addLayout()


        self.layout.addWidget(self.toolbar)
        self.layout.addWidget(self.canvas,1)
        #self.layout.addWidget(self.button)
        self.setLayout(self.layout)

        #layout = QHBoxLayout()
        self.btn_rhoM = QCheckBox("rho-M")
        self.btn_RM = QCheckBox("R-M")
        self.btn_GR = QCheckBox("GR")
        self.btn_fR =  QCheckBox("fR")
        self.btn_fRQ = QCheckBox("fRQ")

        self.btn_fRs = []

        self.btn_rhoM.setChecked(False)
        self.btn_RM.setChecked(True)
        self.btn_GR.setChecked(False)
        self.btn_fR.setChecked(False)
        self.btn_fRQ.setChecked(False)

        #self.b1.stateChanged.connect(lambda: self.btnstate(self.b1))
        #self.btn_rhoM.stateChanged.connect(self.quant_change)
        #self.btn_RM.stateChanged.connect(self.quant_change)

        self.btn_rhoM.stateChanged.connect(self.plot)
        self.btn_RM.stateChanged.connect(self.plot)
        self.btn_GR.stateChanged.connect(self.plot)
        self.btn_fR.stateChanged.connect(self.plot)
        self.btn_fRQ.stateChanged.connect(self.plot)

        #self.layout.addWidget(self.btn_GR)
        #self.layout.addWidget(self.btn_fR)
        #self.layout.addWidget(self.btn_fRQ)
        self.sublayout2.addWidget(tree_quantities)
        self.sublayout2.addWidget(tree_GR)
        self.sublayout2.addWidget(tree)
        self.sublayout2.addWidget(tree_fRQ)
        self.layout.addLayout(plotBox)