ok, dann hier mal der gesamte Code:
Code: Alles auswählen
from PyQt4 import QtGui, QtCore
import TCPIP_server_Auftragsmodul_v11_units
import sys
class ServerGui(QtGui.QMainWindow): #Main Window erstellen
def __init__(self, parent = None):
self.ipAdress = ''
self.distance = '10'
QtGui.QMainWindow.__init__(self, parent)
self.filename = 'H:/iwbDaten/TCPIP_Client/'
self.data = ''
central_widget = QtGui.QWidget()
self.setCentralWidget(central_widget)
grid = QtGui.QGridLayout()
menu = self.menubar()
# zeile = TCPIP_server_Auftragsmodul_v11_units.Server.start().zeile
okButton = QtGui.QPushButton("OK")
cancelButton = QtGui.QPushButton("Beenden")
distance, self.distance = self.groupTextEdit('distance', self.distance)
showData, self.filename = self.groupTextEdit('gewaehlte Datei', self.filename)
progress = self.dateiBearbeiten(self.data)
group = self.unitGroups(showData, distance, 'Datei einlesen')
grid.addWidget(okButton, 60, 49)
grid.addWidget(cancelButton, 60, 48)
grid.addWidget(progress, 20, 10, 20, 40)
grid.addWidget(group, 10, 10, 10, 40)
central_widget.setLayout(grid)
self.setWindowTitle('Server')
self.resize(250, 350)
self.connect(cancelButton, QtCore.SIGNAL('clicked()'), QtCore.SLOT('close()'))
self.connect(okButton, QtCore.SIGNAL('clicked()'), self.startServer)
def startServer(self):
server = TCPIP_server_Auftragsmodul_v11_units.Server(self.filename, self.distance)
start = server.start() #Datei, Distance
return start #H:/iwbDaten/TCPIP_Client/"
def createWidgets(self):
central_widget = QtGui.QWidget()
widget = self.setCentralWidget(central_widget)
return widget
'''
----------MENUBAR-----------
Erstellt die Menuebar
Es wird eine Menubar erstellt,
sowie zwei Funktionen hinzugefuegt:
OPEN: oeffnet ein File und zeigt den Dateipfad an
EXIT: Beendet das Programm
'''
def menubar(self):
exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), #Erstellt die Exit-Schaltflaeche
'Exit', self)
exit.setShortcut('Ctrl+Q') #weist den Shortcut zu
self.connect(exit, QtCore.SIGNAL('triggered()'), #Verbindet die Schaltflaeche
QtCore.SLOT('close()')) #mit der close-Anweisung
open = QtGui.QAction(QtGui.QIcon('open.png'), #Erstellt die Exit-Schaltflaeche
'Open', self)
open.setShortcut('Ctrl+O') #weist den Shortcut zu
open.setStatusTip('Open new File')
self.connect(open, QtCore.SIGNAL('triggered()'), #Verbindet die Schaltflaeche mit der
self.openFile) #openFile-Anweisung
menubar = self.menuBar() #Erstellt eine Menubar
file = menubar.addMenu('&Datei') #Fuegt ein Menu hinzu
file.addAction(open) #Open-Button hinzufuegen
file.addAction(exit) #Exit-Button hinzufuegen
'''
---------OPENFILE---------
Erstellt den Dialog zum oeffnen des Files
Hier wird der 'FileOpen'-Dialog erzeugt
die Daten werden an self.file uebergeben
Der Dateipfad wird auf dem 'Datei Anzeigen-Label angezeigt
'''
def openFile(self):
filename = QtGui.QFileDialog.getOpenFileName(self,'Ordner wählen', '', "*.cli")#Dialog aufrufen
file = open(filename) #Datei oeffnen
self.data = file.read() #Datei auslesen
self.filename = filename #Filename setzen
self.lab.setText(self.filename) #Dateipfad anzeigen
'''
---------GROUPLABEL-----------
Erstellt einen Gruppenkasten mit Label
Hier wird ein Label erzeugt, welches
in eine Group-Box eingebettet wird
'''
def groupLabel(self, title, label):
group = QtGui.QGroupBox(title) #title der Box
layout = QtGui.QVBoxLayout() #layout der Box
self.lab = QtGui.QLabel(label) #Label ACHTUNG: label ist self, da hier der Pfad abgebildet wird
layout.addWidget(self.lab) #Label dem Layout hinzufuegen
group.setLayout(layout) #die Groupbox mit dem Layout versehen
return group #Gruppe returnen
'''
---------groupTextEdit-----------
Erstellt einen Gruppenkasten mit TextEdit
Hier wird ein Edit-Zeile erzeugt, welches
in einer Group-Box eingebettet wird
'''
def groupTextEdit(self, title, text):
group = QtGui.QGroupBox(title) #title der Box
layout = QtGui.QVBoxLayout() #layout der Box
textEdit = QtGui.QLineEdit(text) #Line-Edit Feld
label = QtGui.QLabel()
textEdit.resize(10, 50) #Groesse des LineEdit festlegen
label.resize(10, 50)
layout.addWidget(textEdit) #LineEdit dem Layout hinzufuegen
layout.addWidget(label)
group.setLayout(layout) #die GroupBox mit dem Layout versehen
textEdit.returnPressed.connect(lambda: label.setText(textEdit.text()))
print 'mit Klammer:', label.text()
print 'Ohne Klammer:', label.text
returnText = label.text()
return group, returnText #Gruppe returnen
#def setText(self):
# label = ''
#text = self.distance
#label.setText(text.text)
'''
----------UNITEGROUPS------------
fasst beide Gruppen zusammen
und fasst sie in eine Horizontales
Layout zusammen
'''
def unitGroups(self, group1, group2, title):
group = QtGui.QGroupBox(title) #Gruppe erstellen
layout = QtGui.QHBoxLayout() #Layout erstellen
layout.addWidget(group1) #Gruppe1 hinzufuegen
layout.addWidget(group2) #Gruppe2 hinzufuegen
#layout.addWidget(group3)
group.setLayout(layout) #Gruppe das Layout hinzufuegen
return group #Gruppe returnen
############
#erstellt Die Gruppe die die Arbeitsschritte darstellt
############
'''
-------DATEIBEARBEITEN---------
Hier wird die Gruppe erstellt
die Informationen ueber den Arbeitsablauf gibt.
Sie beinhaltet:
PBAR: Prozentbalken
PPROGRESS: Information welche Zeile aufgetragen wird
PSHOW: Zeigt den Momentan durgefuehrten Arbeitsablauf
'''
def dateiBearbeiten(self, data):
group = QtGui.QGroupBox('Datei bearbeiten') #Gruppenkasten hinzufuegen
plab = QtGui.QLabel('Fortschritt:') #Label hinzufuegen
pbar = QtGui.QProgressBar(self) #Prozentleiste erstellen
pprogress = QtGui.QLabel('Es wird Zeile %d von %e aufgetragen') #Aktuelle Zeile dartellen
pshow = QtGui.QTextEdit(data) #Anzeige fuer den gegenwaerteigen Arbeitsschritt
plab1 = QtGui.QLabel('Arbeitsschritt:') #Label fuer das Textfeld
progress = QtGui.QVBoxLayout() #Erstellt das Layout
progress.addWidget(plab) #fuegt die Widgets dem Layout hinzu
progress.addWidget(pbar)
progress.addWidget(pprogress)
progress.addWidget(plab1)
progress.addWidget(pshow)
group.setLayout(progress) #der Gruppe das Layout hinzufuegen
return group
app = QtGui.QApplication(sys.argv) #Main-Methode
ex = ServerGui()
ex.show()
sys.exit(app.exec_())
und wie gesagt, Der Text wird auf dem Label abgebildet, label.text() jedoch bleibt leer.