"""
in diesem optionalen Tabmenü werden die Plots, Texteditor in einzelnen Tabs angezeigt. Ich habe Schwierigkeiten,
einen Matplotlib-Plot in einem Tab anzuzeigen, wenn ich in layout.py "Plots erzeugen" ausführen will. Es ist umständlich die Plots-erzeugen-Funktion in layout.py
auf dieses Tabmenü zu referenzieren. Daher habe ich dieses Tabmenü erstmal nicht weiter bearbeitet und lasse
die Plots direkt im Hauptfenster anzeigen.
Je nachdem, wie wir das Layout gestalten, werden wir wahrscheinlich kein Tabmenü benötigen.
Dieses Skript kann eigenständig gestartet werden.
"""

import sys
import json
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from matplotlib_settings import MplCanvas
import time
import sys
import matplotlib
matplotlib.use('Qt5Agg')

from Classes import Verschneidung, Werkzeug
import json
from PyQt5.QtCore import Qt
from PyQt5 import QtCore, QtGui, QtWidgets
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg, NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure

class secondtabdemo(QTabWidget):
   def __init__(self, parent = None):
      super(secondtabdemo, self).__init__(parent)

      self.sc = MplCanvas(self, width=3, height=4, dpi=100)

      self.tab1 = QWidget()
      self.tab2 = QWidget()
      self.tab3 = QWidget()
      self.gcode_text = QPlainTextEdit()
		
      self.addTab(self.tab1,"Tab 1")
      self.addTab(self.tab2,"Tab 2")
      self.addTab(self.tab3,"Tab 3")
      self.tab1UI()
      self.tab2UI()
      self.tab3UI()
      #self.print_it()
      self.setWindowTitle("tab demo")
      self.setTabPosition(QTabWidget.North)
		
   def tab1UI(self):
      layout = QVBoxLayout()
      #Texteditor.output_g_code(self.gcode_text)
      layout.addWidget(self.gcode_text)
      self.setTabText(0,"G Code")
      self.tab1.setLayout(layout)
      #self.print_it()

   def print_it(self):              #Funktion zum Testen
      self.gcode_text.clear()
      Texteditor.print_test(self.gcode_text)
      time.sleep(3)
      Texteditor.output_g_code(self.gcode_text)

   def tab2UI(self):
      layout = QVBoxLayout()
      layout.addWidget(self.sc)
      self.setTabText(1,"Plot Verschneidung")
      self.tab2.setLayout(layout)
		
   def tab3UI(self):
      layout = QHBoxLayout()
      layout.addWidget(QLabel("subjects")) 
      layout.addWidget(QCheckBox("Physics"))
      layout.addWidget(QCheckBox("Maths"))
      self.setTabText(2,"Education Details")
      self.tab3.setLayout(layout)



def main():
   app = QApplication(sys.argv)
   ex = secondtabdemo()
   ex.show()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   main()