Seite 1 von 1

Kundendatenprogramm BorlandBuilder -> PyQt Datenspeicheru

Verfasst: Montag 7. April 2008, 22:30
von tech_1977
Hallo,

ich brauche unbedingt Hilfe!
ich will ein in BorlandBuilder mit C geschriebenes Programm zur Kundenverwaltung in Python mit PyQt umschreiben.
In C speichere ich die Daten wie Name, Wohnort , telefon und Land in einer Struktur Kunde diese wird dan in eine Datei gespeichert.

Ich weiss nicht wie man diese Daten in eine liste oder Dictionary speichert wenn man die eingetippten Daten mit dem Button übernehmen übernimmt.
Bin mit Python am Verzweifeln...oder ich bin zu Blöd...

Verfasst: Montag 7. April 2008, 22:54
von EyDu
Hi,

zeig doch mal, was du schon für Code zu deinem Problem hast. Sonst kann man nur raten.

Verfasst: Dienstag 8. April 2008, 09:37
von kaschu
Wenn ich Dein Anliegen richtig verstehe, willst Du c-structs in Python Daten umwandeln? Falls ja, dann ist http://docs.python.org/lib/module-struct.html das Richtige für Dich.

Du solltest aber intensive Tests mit einigen Daten machen, um alle Eventualitäten zu überprüfen!

Gruß
Karsten

Verfasst: Mittwoch 9. April 2008, 12:09
von tech_1977
Hi,

Danke für die Antworten!

Ich will ich nichts von C umwandelln sondern komplett neu erstellen aber die Funktionen sollen wie im C Programm sein.

Ich kann jetzt abspeichern und die daten wieder holen aber wie Öffne ich eine Verzeichnissabfrage und Abfrage nach dateinamen?

Mein bisheriger Code:

Code: Alles auswählen

import sys
import pickle

from PyQt4 import QtGui, QtCore 
from kundendaten import Ui_Kundendaten as DLG
 
class Fenster(QtGui.QDialog,DLG): 
    def __init__(self): 
        QtGui.QDialog.__init__(self) 
        self.setupUi(self)

# Slots einrichten 
        
        self.connect(self.pushButton_5,QtCore.SIGNAL("clicked()"), self.schliessen) 
        self.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.uebernehmen)
        self.connect(self.pushButton_4, QtCore.SIGNAL("clicked()"), self.oeffnen)
        self.connect(self.pushButton_6, QtCore.SIGNAL("clicked()"), self.speichern)
        #self.connect(self.land,QtCore.SIGNAL("clicked()"),self.auswahl)
     
    def uebernehmen(self): 
        # Daten auslesen 
        
        Name = "Name: %s" % self.name.text() 
        Wohnort =  "Wohnort: %s" % self.wohnort.text() 
        Strasse =  "Strasse: %s" % self.strasse.text() 
        Tel =  "Telefonnummer: %s" % self.telefon.text()
        Land =  "Land: %s" % QtCore.QString(self.land.currentText())
        #Land =  QtCore.QString(self.land.currentText())
        eintrag = {'Name':Name,'Wohnort':Wohnort,'Strasse':Strasse,'Tel':Tel,'Land':Land}
        adressbuch.append(eintrag)
        print adressbuch  
        
    def schliessen(self): 
        print 'schade'     
        self.close() 
        
    def oeffnen(self):      
        # Daten auslesen
        f = file("dateiname.txt", "r") 
        adressbuch = pickle.load(f) 
        f.close() 
        print adressbuch
            
    def speichern(self):
      
        f = file("dateiname.txt","w")
        pickle.dump(adressbuch, f) 

        f.close()
 
            
# Main 

adressbuch = [] 
app = QtGui.QApplication(sys.argv) 
dialog = Fenster() 
dialog.show() 
sys.exit(app.exec_())




PyQt Code:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'kundendaten.ui'
#
# Created: Sat Apr 05 17:12:02 2008
#      by: PyQt4 UI code generator 4.3.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_Kundendaten(object):
    def setupUi(self, Kundendaten):
        Kundendaten.setObjectName("Kundendaten")
        Kundendaten.resize(QtCore.QSize(QtCore.QRect(0,0,541,259).size()).expandedTo(Kundendaten.minimumSizeHint()))

        self.groupBox = QtGui.QGroupBox(Kundendaten)
        self.groupBox.setGeometry(QtCore.QRect(40,20,232,191))
        self.groupBox.setObjectName("groupBox")

        self.gridlayout = QtGui.QGridLayout(self.groupBox)
        self.gridlayout.setObjectName("gridlayout")

        self.label = QtGui.QLabel(self.groupBox)
        self.label.setObjectName("label")
        self.gridlayout.addWidget(self.label,0,0,1,1)

        self.name = QtGui.QLineEdit(self.groupBox)
        self.name.setObjectName("name")
        self.gridlayout.addWidget(self.name,0,1,1,1)

        self.label_2 = QtGui.QLabel(self.groupBox)
        self.label_2.setObjectName("label_2")
        self.gridlayout.addWidget(self.label_2,1,0,1,1)

        self.wohnort = QtGui.QLineEdit(self.groupBox)
        self.wohnort.setObjectName("wohnort")
        self.gridlayout.addWidget(self.wohnort,1,1,1,1)

        self.label_3 = QtGui.QLabel(self.groupBox)
        self.label_3.setObjectName("label_3")
        self.gridlayout.addWidget(self.label_3,2,0,1,1)

        self.strasse = QtGui.QLineEdit(self.groupBox)
        self.strasse.setObjectName("strasse")
        self.gridlayout.addWidget(self.strasse,2,1,1,1)

        self.label_6 = QtGui.QLabel(self.groupBox)
        self.label_6.setObjectName("label_6")
        self.gridlayout.addWidget(self.label_6,3,0,1,1)

        self.land = QtGui.QComboBox(self.groupBox)
        self.land.setObjectName("land")
        self.gridlayout.addWidget(self.land,3,1,1,1)

        self.label_4 = QtGui.QLabel(self.groupBox)
        self.label_4.setObjectName("label_4")
        self.gridlayout.addWidget(self.label_4,4,0,1,1)

        self.telefon = QtGui.QLineEdit(self.groupBox)
        self.telefon.setObjectName("telefon")
        self.gridlayout.addWidget(self.telefon,4,1,1,1)

        self.groupBox_2 = QtGui.QGroupBox(Kundendaten)
        self.groupBox_2.setGeometry(QtCore.QRect(280,20,251,191))
        self.groupBox_2.setObjectName("groupBox_2")

        self.pushButton = QtGui.QPushButton(self.groupBox_2)
        self.pushButton.setGeometry(QtCore.QRect(10,20,111,31))
        self.pushButton.setObjectName("pushButton")

        self.pushButton_2 = QtGui.QPushButton(self.groupBox_2)
        self.pushButton_2.setGeometry(QtCore.QRect(10,60,111,31))
        self.pushButton_2.setObjectName("pushButton_2")

        self.pushButton_3 = QtGui.QPushButton(self.groupBox_2)
        self.pushButton_3.setGeometry(QtCore.QRect(10,100,111,31))
        self.pushButton_3.setObjectName("pushButton_3")

        self.spinBox = QtGui.QSpinBox(self.groupBox_2)
        self.spinBox.setGeometry(QtCore.QRect(10,140,42,22))
        self.spinBox.setObjectName("spinBox")

        self.pushButton_4 = QtGui.QPushButton(Kundendaten)
        self.pushButton_4.setGeometry(QtCore.QRect(40,220,77,31))
        self.pushButton_4.setObjectName("pushButton_4")

        self.pushButton_5 = QtGui.QPushButton(Kundendaten)
        self.pushButton_5.setGeometry(QtCore.QRect(430,220,91,31))
        self.pushButton_5.setObjectName("pushButton_5")

        self.pushButton_6 = QtGui.QPushButton(Kundendaten)
        self.pushButton_6.setGeometry(QtCore.QRect(130,220,77,31))
        self.pushButton_6.setObjectName("pushButton_6")

        self.retranslateUi(Kundendaten)
        QtCore.QMetaObject.connectSlotsByName(Kundendaten)

    def retranslateUi(self, Kundendaten):
        Kundendaten.setWindowTitle(QtGui.QApplication.translate("Kundendaten", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
        self.groupBox.setTitle(QtGui.QApplication.translate("Kundendaten", "Kundendaten", None, QtGui.QApplication.UnicodeUTF8))
        self.label.setText(QtGui.QApplication.translate("Kundendaten", "Name", None, QtGui.QApplication.UnicodeUTF8))
        self.label_2.setText(QtGui.QApplication.translate("Kundendaten", "Wohnort", None, QtGui.QApplication.UnicodeUTF8))
        self.label_3.setText(QtGui.QApplication.translate("Kundendaten", "Strasse", None, QtGui.QApplication.UnicodeUTF8))
        self.label_6.setText(QtGui.QApplication.translate("Kundendaten", "Land", None, QtGui.QApplication.UnicodeUTF8))
        self.land.addItem(QtGui.QApplication.translate("Kundendaten", "Deutschland", None, QtGui.QApplication.UnicodeUTF8))
        self.land.addItem(QtGui.QApplication.translate("Kundendaten", "Schweiz", None, QtGui.QApplication.UnicodeUTF8))
        self.land.addItem(QtGui.QApplication.translate("Kundendaten", "Österreich", None, QtGui.QApplication.UnicodeUTF8))
        self.label_4.setText(QtGui.QApplication.translate("Kundendaten", "Telefonnummer", None, QtGui.QApplication.UnicodeUTF8))
        self.groupBox_2.setTitle(QtGui.QApplication.translate("Kundendaten", "Datenbank", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Kundendaten", "Übernehmen", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_2.setText(QtGui.QApplication.translate("Kundendaten", "Ändern", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_3.setText(QtGui.QApplication.translate("Kundendaten", "Löschen", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_4.setText(QtGui.QApplication.translate("Kundendaten", "Öffnen", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_5.setText(QtGui.QApplication.translate("Kundendaten", "Schliessen", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_6.setText(QtGui.QApplication.translate("Kundendaten", "Speichern", None, QtGui.QApplication.UnicodeUTF8))
Danke im Vorraus für alle Antworten

Verfasst: Mittwoch 9. April 2008, 12:25
von audax
Hast du schonmal vom QtDesigner gehört? /o\

Verfasst: Mittwoch 9. April 2008, 12:34
von BlackJack
Sicherlich, sonst wäre die untere Hälfte des Quelltextes wohl nicht aus einer "*.ui"-Datei generiert worden. Liess doch mal den Kommentar ab Zeile 67 bevor Du so provozierende Fragen stellst. :-P

Verfasst: Mittwoch 9. April 2008, 13:03
von audax
Ups, bin ja schon ruhig /o\

Verfasst: Mittwoch 9. April 2008, 17:39
von Hyperion
Wie wärs mit dem QFileDialog? ;-)