Also Code:
Dann vergiss bitte meinen ersten Beitrag.
Problem: Wie komme ich an die Daten einer anderen Klasse.
Es gibt eine Klasse "Hauptfenster". Dies ist nur Rahmen mit Menu für das Fenster "TableView". In TableView wird ein Datenblatt angezeigt und die Werte vom Nutzer geändert.
Jetzt sollen die geänderten Daten aus dem Datenblatt gesichert werde, durch den Menüpunkt "Auswertung im Hauptfenster.
Wie geht so etwas...
Code: Alles auswählen
#!/usr/bin/env python
from PyQt5.QtWidgets import QApplication, QTableWidget,QTableWidgetItem
from PyQt5.QtWidgets import QTabWidget, QMainWindow, QApplication, QGridLayout,QPushButton,QLabel
from PyQt5.QtWidgets import QWidget, QAction, QTableWidget,QTableWidgetItem,QVBoxLayout
from PyQt5.QtCore import pyqtSlot,QSize
import sys
data = {'col1':['1','2','3','4'],
'col2':['1','2','1','3'],
'col3':['1','1','2','1']}
class Haupt_fenster(QMainWindow):
def __init__(self, parent=None):
super(Haupt_fenster, self).__init__(parent)
self.setWindowTitle("BWA-Dateneingabe")
tabs = TableView(data, len(data),5) # hier wird das Dateneingabefenster eingebunden
menubar = self.menuBar()
fileMenu = menubar.addMenu('&Datei')
neu = fileMenu.addAction("Neu")
speichern = fileMenu.addAction("Speichern")
ende =fileMenu.addAction("Ende")
ausw = QAction("Auswertung",self)
menubar.addAction(ausw)
self.setStyleSheet("font: bold 12px;")
ausw.triggered.connect(self.auswertung)
self.setMinimumSize(QSize(300, 300))
self.setCentralWidget(tabs)
self.show()
############################################
def auswertung(self):
tabelle1 = TableView() # Hier ist alles falsch, TableView will Parameter data
print(tabelle1.item(0,0).text()) # Ich möchte auf die angzeigten Daten zugreifen
#######################################################
class TableView(QTableWidget):
def __init__(self,data, *args):
QTableWidget.__init__(self, *args)
self.data = data
self.setData()
self.resizeColumnsToContents()
self.resizeRowsToContents()
self.setWindowTitle('Datenblatt Bsp.')
def setData(self):
horHeaders = []
for n, key in enumerate(sorted(self.data.keys())):
horHeaders.append(key)
for m, item in enumerate(self.data[key]):
newitem = QTableWidgetItem(item)
self.setItem(n, m, newitem)
self.setVerticalHeaderLabels(horHeaders)
def main(args):
app = QApplication(args)
table = Haupt_fenster()
table.show()
sys.exit(app.exec_())
if __name__=="__main__":
main(sys.argv)