Hallo,
danke für die Infos. Ja, mit den Klassen und Vererbung kann ich nocht so richtig das Ganze von den Beispielen in mein Problem transferieren.
Wenn ich das Main Window as FE entferne gibt es eine Fehlermeldung.
das 2. Fenster wird bislang ja auch richtig angezeigt , nur ohne: die richtige Reaktion wenn ich auf "weiter" klicke.
Es ist sicher "nur " eine falsche zuordnung , aber welche ????
Anbei der Code:
#Prospekt_test_Designer_01
import sys
from PySide6.QtWidgets import QApplication,QMainWindow,QLabel, QPlainTextEdit
from PySide6 import QtSql,QtWidgets
from PySide6.QtCore import QSize
from PySide6.QtGui import QPixmap
from PIL import Image
from datetime import date
import sqlite3 as sq
import os
import re
from ui_mainwindow import Ui_MainWindow
from ui_Fehlerwindow import Ui_MW_Fehlerfenster
# Organisation:
Prospektdaten= 'DB_Prospekt.db'
D_Pfad = 'Daten'
foto_init= 'HP_logo.jpg'
DBpfad =os.path.join(D_Pfad,Prospektdaten)
datensatz_elemente = ["Titel","Inhalt", "Maßstab","GPS_olo","GPS_ola","GPS_ulo","GPS_ula","FotoName","Datum","Karte","Wanderungen","Radtouren", "Sehenswürdigkeiten","Unterkünfte","Format","Ablageort","GPS_NW","GPS_SO"]
Formate={1: 'A5',2 :'Folder',3:'Karte',4:'12x23',5:'mini',6:'Sonstige'}
datum = date.today().strftime("%d.%m.%Y")
zeigeFehlertext =' dies ist der Fehlertext'+datum
class FE(QtWidgets.QMainWindow, QLabel):
def __init__(self):
super().__init__()
self.ui = Ui_MW_Fehlerfenster()
self.ui.setupUi(self)
self.ui.pTE_Fe.setPlainText(zeigeFehlertext)
self.ui.pB_OK.clicked.connect(self.closeIt)
self.ui.pB_K.clicked.connect(self.weiter)
def weiter(self):
txt=self.ui.pTE_Fe.toPlainText()
fe.show()
def closeIt(self):
self.close() # und tschüss ...
class UI(QtWidgets.QMainWindow, QLabel):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setAcceptDrops(True)
self.aktiv =self.ui.rb_1.isChecked()
self.ui.rb_1.toggled.connect(self.knopf)
self.ui.rb_2.toggled.connect(self.knopf)
self.ui.rb_3.toggled.connect(self.knopf)
self.ui.rb_4.toggled.connect(self.knopf)
self.ui.rb_5.toggled.connect(self.knopf)
self.ui.rb_6.toggled.connect(self.knopf)
self.ui.rb_7.toggled.connect(self.knopf)
self.ui.pB_GPS.clicked.connect(self.GPS)
self.GPS_NW = 0
self.GPS_SO = 0
self.format ="ohne"
self.foto= foto_init
pixOrt=QPixmap(D_Pfad+'/'+self.foto)
self.ui.label_foto.setPixmap( pixOrt)
self.ui.label_foto.setScaledContents(True)
self.ui.cBox_Archiv.addItems(['Archivbox GRAU','Archivbox Orange','Archivbox ROT'])
self.Archivbox = 'ohne'
self.ui.cBox_Archiv.currentTextChanged.connect(self.text_changed)
self.ui.pB_f.clicked.connect(self.closeIt)
self.ui.pB_w.clicked.connect(self.weiter)
self.datensatz={}
self.fehler = False
self.falsch =['Die Fehler sind: ']
def text_changed(self, text):
self.Archivbox = text
def GPS(self):
self.gps_c = self.ui.pTE_GPS.toPlainText()
print('def GPS:',self.gps_c)
gps__= self.gps_c.split('=')
print(gps__[2])
gps= gps__[2].split(';')
self.GPS_NW = gps[0]
self.GPS_SO = gps[1]
self.ui.pTE_GPS.setPlainText('Koordinaten sind:'+str(gps))
def closeIt(self):
self.close() # und tschüss ...
def knopf(self):
self.rbtn = self.sender()
self.aktiv =self.ui.rb_1.isChecked()
self.format =self.rbtn.text()
print('Z100 self.rbtn.text():',self.rbtn.text(), self.rbtn.objectName() )
def dragEnterEvent(self, event):
if event.mimeData().hasUrls():
event.accept()
else:
event.ignore()
def dropEvent(self, event):
lines = []
for url in event.mimeData().urls():
lines.append('dropped: %r' % url.toLocalFile())
self.foto = url.toLocalFile()
pic = Image.open(self.foto)
picc =self.foto.split("/")
picPfad=D_Pfad+'/'+ picc[-1]
pic.save(picPfad)
print('pic gespeichert unter:',D_Pfad+'/'+ picc[-1])
pixOrt=QPixmap(picPfad)
self.ui.label_foto.setPixmap( pixOrt)
self.ui.label_foto.setScaledContents(True)
self.ui.tBr_foto.setText(picc[-1])
self.foto = picc[-1]
def weiter(self): # vor Datenspeicherung: Variablen erfassen & prüfen
chb_set =False
self.datensatz["myID"]= self.ui.pTE_ID.toPlainText()
self.datensatz["Titel"]= self.ui.pTE_PrNa.toPlainText()
self.datensatz["Beschreibung"]= self.ui.pTE_Prosp_Beschreibung.toPlainText()
try:
self.datensatz["Format"]= int(str(self.rbtn.objectName())[-1])
except:
self.falsch.append('Kein Format gewählt ')
self.datensatz["Ablageort"]= self.Archivbox
self.datensatz["FotoName"]= self.foto
if len(str(self.GPS_SO))>4:
self.datensatz["GPS_NW"]= self.GPS_NW
self.datensatz["GPS_SO"]= self.GPS_SO
tmp= self.GPS_NW.split(',')
self.datensatz["GPS_ola"]= tmp[0]
self.datensatz["GPS_olo"]= tmp[1]
tmp= self.GPS_SO.split(',')
self.datensatz["GPS_ula"]= tmp[0]
self.datensatz["GPS_ulo"]= tmp[1]
else:
self.fehler = True
self.falsch.append('GPS_Daten fehlen')
auswgewählt = self.ui.cB_K.isChecked()
if auswgewählt:
self.datensatz["Karte"]= 1
chb_set =True
else:
self.datensatz["Karte"]= 0
auswgewählt = self.ui.cB_W.isChecked()
if auswgewählt:
self.datensatz["Wanderungen"]= 1
chb_set =True
else:
self.datensatz["Wanderungen"]= 0
auswgewählt = self.ui.cB_R.isChecked()
if auswgewählt:
self.datensatz["Radtouren"]= 1
chb_set =True
else:
self.datensatz["Radtouren"]= 0
auswgewählt = self.ui.cB_S.isChecked()
if auswgewählt:
self.datensatz["Sehenswürdigkeiten"]= 1
chb_set =True
else:
self.datensatz["Sehenswürdigkeiten"]= 0
auswgewählt = self.ui.cB_U.isChecked()
if auswgewählt:
self.datensatz["Unterkünfte"]= 1
chb_set =True
else:
self.datensatz["Unterkünfte"]= 0
if chb_set == False:
self.fehler= True
self.falsch.append('Kein Merkmal ausgewählt')
self.datensatz["gültig"]= 1
tmp= self.ui.pTE_Mastab.toPlainText()
if tmp== '' : tmp='0'
print('z224 tmp:',tmp, type(tmp))
tmp = int(re.sub('[^0-9]', '',tmp))
if (tmp >10000 or tmp<1):
self.fehler = True
self.falsch.append('Maßstab')
else:
self.datensatz["Maßstab"]= tmp
tmp= self.ui.pTE_Dat.toPlainText()
if tmp== '' : tmp='0'
print('z233 tmp:',tmp, type(tmp))
tmp = int(re.sub('[^0-9]', '',tmp))
if (tmp >3000 or tmp<1000):
self.fehler = True
self.falsch.append('Datum Prospektdruck')
else:
self.datensatz["Datum_Pr"]= tmp
datum = date.today().strftime("%d.%m.%Y")
self.datensatz["myID"]= self.ui.pTE_ID.toPlainText()
if not self.fehler: #Werte in Datenbank schreiben
datum = date.today().strftime("%d.%m.%Y")
self.datensatz["Datum_Erstellung"]= datum
self.datensatz["Datum_Mod"]= datum
self.datensatz["gültig"]= 1
str_Spalte=''
str_Werte=''
for i ,j in enumerate (self.datensatz):
str_Spalte+= j +' ,'
str_Werte+=str(self.datensatz[j]+' ,')
str_Spalte=str_Spalte[:-2]
str_Werte=str_Werte[:-2]
conn= sq.connect(DBpfad)
cursor= conn.cursor()
SQL_action=' insert into Prospektliste ('+str_Spalte+') values('+str_Werte+')'
cursor.execute(SQL_action)
cursor.commit()
cursor.close()
str_tmp = 'Datensatz:'+str(self.datensatz["myID"])+' gespeichert'
pixOrt =''
self.ui.label_foto.setPixmap( pixOrt)
self.ui.label_foto.setScaledContents(True)
self.ui.label_foto.setText(str_tmp)
nProspekt()
else:
zeigeFehlertext = self.falsch
fe.show()
# ....
def nProspekt(self): # alle Eingaben zurücksetzen
init_txt =''
pixOrt=D_Pfad+'/'+foto_init
self.ui.label_foto.setPixmap( pixOrt)
self.ui.label_foto.setScaledContents(True)
self.ui.tBr_foto.setText(init_txt)
self.ui.pTE_GPS.setPlainText(init_txt)
self.ui.pTE_Dat.setPlainText(init_txt)
self.ui.pTE_Mastab.setPlainText(init_txt)
self.ui.pTE_PrNa.setPlainText(init_txt)
self.ui.pTE_Prosp_Beschreibung.setPlainText(init_txt)
self.ui.pTE_ID.setPlainText('P 0')
self.ui.cBox_Archiv.setCurrentIndex(0)
if __name__ == "__main__":
app = QApplication(['Drag & Drop'])
win = UI()
fe=FE()
win.show()
app.exec()
print('Archivbox =',win.Archivbox)
print('Format =',win.format)
print('self.GPS_NW = ',win.GPS_NW)
print(' self.GPS_SO =',win.GPS_SO)
print('Falsch:',win.falsch, type(win.falsch))
sys.exit
[url][/url]