geloest: Einen Dialog aus einem Dialog aufrufen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

geloest: Einen Dialog aus einem Dialog aufrufen

Beitragvon xWolf » Sonntag 2. November 2008, 01:46

Hallo,

Ich habe ein Problem, wenn ich ein "MainWindow" kreiere und daraus ein anderes Fenster/Dialog aufrufe, stuerzt das aufrufende Fenster ab und das aufgerufene reagiert auf keine Ereignisse mehr.

Zum Beispiel:
Mein Hauptfenster ist dies:

Code: Alles auswählen

#!/usr/bin/python

import commands
import os
import sys

from attt import*
from PyQt4 import QtGui, QtCore

from frmDirlist import Ui_Directory as Dlg

class DirList(QtGui.QMainWindow, Dlg):
   def __init__(self):
      QtGui.QMainWindow.__init__(self)
      self.setupUi(self)
     
      # Slots einrichten -----------------------------------------
      self.connect(self.befOK,QtCore.SIGNAL("clicked()"),self.onOK)   
      self.connect(self.befExit,QtCore.SIGNAL("clicked()"),self.onExit)   
     
   def onOK(self):
      sText=Aufruf_attt()
      print sText
           
   def onExit(self):
      print "Exit"
      self.close()
     

app = QtGui.QApplication(sys.argv)
DirL = DirList()
DirL.show()
app.exec_() 


Das aufzurufende Fenster ist nun das:

Code: Alles auswählen

#!/usr/bin/python

import commands
import os
import sys

from PyQt4 import QtGui, QtCore
from TTT import Ui_frmTTT as Dlg



class att(QtGui.QMainWindow, Dlg):
   def __init__(self):
      QtGui.QMainWindow.__init__(self)
      self.setupUi(self)
     
      # Slots einrichten -----------------------------------------
      self.connect(self.befOK,QtCore.SIGNAL("clicked()"),self.onOK)   
      #self.connect(self.befsExit,QtCore.SIGNAL("clicked()"),self.onsExit)   
     
   def onOK(self):
      pass
     
def Aufruf_attt():
   app2=QtGui.QApplication(sys.argv)
   attx = att()
   attx.show()
   app2.exec_()     


Ich starte also das erste (obere) Programm, sehe das Fenster und druecke den [OK]-Button. Dann erscheint auch das zweite Fenster, aber dann haengt alles.
Wie kann ich ein zweites Fenster aufrufen ohne den Absturz zu verursachen?

Ich moechte das auch gern in zwei Dateien unterbringen, damit man die Uebersicht behaelt.

Danke Euch im Voraus.

Wolf
Zuletzt geändert von xWolf am Sonntag 2. November 2008, 22:04, insgesamt 2-mal geändert.
lunar

Beitragvon lunar » Sonntag 2. November 2008, 11:15

Das sollte dich nicht wundern, schließlich erzeugst du zwei Instanzen der Klasse QApplication. Das überschreibt die Hauptereignisschleife und dürfte noch allerhand andere lustige Nebeneffekte haben, da QApplication noch allerhand andere globale Daten verwaltet.

Wenn du einen Dialog anzeigen willst, lies die Dokumentation zur Klasse QtGui.QDialog. Diese Klasse erzeugt eine lokale Ereignisschleife und lässt sich deswegen modal anzeigen.

Desweiteren solltest du deine Namensgebung überdenken und an PEP 8 anpassen. Bei Namen wie "sText" bekommt man ja Angst ;)

Auch ist das "commands" Modul durch "subprocess" ersetzt worden: "The subprocess module provides more powerful facilities for spawning new processes and retrieving their results. Using the subprocess module is preferable to using the commands module."
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

Beitragvon xWolf » Sonntag 2. November 2008, 15:41

lunar hat geschrieben:Das sollte dich nicht wundern, schließlich erzeugst du zwei Instanzen der Klasse QApplication. Das überschreibt die Hauptereignisschleife und dürfte noch allerhand andere lustige Nebeneffekte haben, da QApplication noch allerhand andere globale Daten verwaltet.

Wenn du einen Dialog anzeigen willst, lies die Dokumentation zur Klasse QtGui.QDialog.


Hallo,
Danke fuer die schnelle Antwort.
Also mir steht die Dokumentation des Qt-Designer Version 4 fuer Linux zur Verfuegung.
und da steht:
int QDialog::exec () [slot]
Shows the dialog as a modal dialog, blocking until the user closes it. The function returns a DialogCode result.
If the dialog is application modal, users cannot interact with any other window in the same application until they close the dialog. If the dialog is window modal, only interaction with the parent window is blocked while the dialog is open.
By default, the dialog is application modal.
See also show(), result(), and setWindowModality().


Ich stolpere ueber die exec() - Funktion.
Denn m.E. wird eine Funktion doch so aufgerufen:

Code: Alles auswählen

 a = funktion(Parameter)


Ueber den Namen der Funktion wird der Ruckgabewert zurueckgegeben.
Nur dies funktioniert eben nicht, da diese Funktion halt mit speziellen Parametern aufgerufen werden muss.
Und wie in der Doc beschrieben QDialog.exec() funktioniert ueberhaupt nicht. da fliegen mir alle Fehlermeldungen um die Ohren.

Sie haben es ja bereits bemaengelt, (sText gefaellt ihnen nicht) aber ich komme aus der VisualBasic Ecke und programmiere mit dem OpenOffice StarBasic. Da sind diese Techniken nicht so kompliziert.
Deswegen verhake ich mich hier, weil mir wohl die Vorgehensweise bei der Programmierung dieser GUI noch fremd ist.
Leider hat auch der Kauf und das lesen des Buches "Python, das umfassende Handbuch" von Ernesti/Kaiser wenig Erhellendes gebracht.

Danke trotzdem fuer Ihr Bemuehen.

Wolf
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Sonntag 2. November 2008, 16:14

Die Dokumentation von Qt-Designer bezieht sich auf die C++ Version ;)
Für die PyQt Dokumentation sollte man www.riverbankcomputing.co.uk konsultieren.

Deinen Dialog solltest du von QDialog statt QMainWindow erben lassen.

QDialog.exec() gibt es in PyQt nicht, sondern wurde in .exec_() umbenannt.

Wenn das Buch von Galileo Press ist, dann solltest du es am besten im Mülleimer entsorgen - für Gründe: Forensuche anschmeissen ;).
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

Beitragvon xWolf » Sonntag 2. November 2008, 16:17

cofi hat geschrieben:Die Dokumentation von Qt-Designer bezieht sich auf die C++ Version ;)
...
Deinen Dialog solltest du von QDialog statt QMainWindow erben lassen.

QDialog.exec() gibt es in PyQt nicht, sondern wurde in .exec_() umbenannt.


Danke fuer die Hilfe.

Ja, das es .exec() nicht gibt in Python ist klar. Ich verwende auch .exec_()

Aber beim Aufruf der zweiten Form kommen eben Fehler.

Wolf
Zuletzt geändert von xWolf am Montag 3. November 2008, 02:23, insgesamt 1-mal geändert.
lunar

Beitragvon lunar » Sonntag 2. November 2008, 16:39

Wir können nicht raten, welche Fehlermeldung du erhältst. Wenn du Hilfe möchtest, dann solltest du deinen Quellcode unter Verwendung der QDialog-Klasse samt Fehlermeldung posten.
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

Beitragvon xWolf » Sonntag 2. November 2008, 17:23

Hallo zusammen,

Ich versuche es noch einmal.
Nun habe ich einmal zwei ganz simple Dialoge mit Qt-Design erstellt, nur ein Fenster und ein OK button.
Den Name fuer diese Buttons und auch die Dialognamen habe ich voellig verschieden benannt.

Mein Hauptdialog:
Datei: start.py

Code: Alles auswählen

#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys
from PyQt4 import QtCore, QtGui
from dlgHaupt import Ui_dlgHauptfenster as Dlg
from Erst import*

class Hfenster(QtGui.QDialog, Dlg):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.setupUi(self)
        self.connect(self.befHauptOK,QtCore.SIGNAL("clicked()"),self.onhauptOk)   
        self.show()
   
    def onhauptOk(self):
        # Hier soll mal der Aufruf des Dialogs "Erst" stehen
        # siehe nachfolgenden Code-Schnipsel
        pass   
         


app = QtGui.QApplication(sys.argv)
f = Hfenster()
app.exec_()


und mein Dialog, den ich aufrufen will, nach betaetigen des OK-Buttons.
Datei: Erst.py

Code: Alles auswählen

#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys
from PyQt4 import QtCore, QtGui
from dlgErst import Ui_dlgErst as Dlg

class Erst(QtGui.QDialog, Dlg):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.setupUi(self) 
        self.show()         


Wie im ersten Code zusehen ist, habe ich noch nicht einmal ein Ereignis fuer den OK-Button programmiert.
Nur allein die Zeile:

Code: Alles auswählen

from Erst import*

bewirkt die Fehlermeldung:

Code: Alles auswählen

File "./start.py", line 13, in __init__
self.connect(self.befHauptOK, QtCore.SIGNAL('clicked()'), self.onhauptOK)
Attribute Error: befHauptOK

Hier komme ich nicht weiter.
Kommentiere ich diese Zeile aus, gibt es keine Fehlermeldung.

Ach ja, in Wikipedia gibt es ein schoenes Programmbeispiel wo alles funktioniert.
http://de.wikibooks.org/wiki/Python_unter_Linux:_Qt4
Nur wird da der gesammte Dialog per Hand definiert und nicht per Qt-Designer.
Komischerweise funktioniert das. Nur mein einfacher Code klappt nicht.
Ich komm nicht dahinter.
Weiss jemand einen Rat?

ich weiss, Doc's lesen....
Aber ich habe eigentlich ein Problem was ich mit dem Werkzeug Python loesen muss. Und stehe ein bischen unter Zeitdruck.

Dank euch.

Wolf
Zuletzt geändert von xWolf am Sonntag 2. November 2008, 17:56, insgesamt 2-mal geändert.
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

geloest

Beitragvon xWolf » Sonntag 2. November 2008, 17:37

Also ich habe es geschafft.

Hier die Start-Routine (file: start.py):

Code: Alles auswählen

#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys
from PyQt4 import QtCore, QtGui
from dlgHaupt import Ui_dlgHauptfenster as Dlg
import Erst

class Hfenster(QtGui.QDialog, Dlg):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.setupUi(self)
        # Slots einrichten --------------------------------------------------------
        self.connect(self.befHauptOK,QtCore.SIGNAL("clicked()"),self.onhauptOk)   
        # Dialog anzeigen ---------------------------------------------------------
        self.show()
   
    def onhauptOk(self):
       E=Erst.Erst()
       E.exec_()

app = QtGui.QApplication(sys.argv)
f = Hfenster()
app.exec_()


Und nun der Dialog, der aufgerufen werden soll (file: Erst.py)

Code: Alles auswählen

#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys
from PyQt4 import QtCore, QtGui
from dlgErst import Ui_dlgErst as Dlg

class Erst(QtGui.QDialog, Dlg):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.setupUi(self) 
        # Slots einrichten --------------------------------------------------------
        self.connect(self.befdlgOK,QtCore.SIGNAL("clicked()"),self.Raus)   
        # Dialog anzeigen ---------------------------------------------------------
        self.show()
         
    def Raus(self):
       self.close()


Zeile 16 sollte nicht programmiert werden, wenn der Dialog "modal" also "gebunden" angezeigt werden soll. Dann wartet der aufrufende Dialog auf das Beenden des aufgerufenen Dialogs.

Danke fuer Eure Hilfe.

Wolf

P.S.
die Variable "sText" stammt aus der OpenOffice-Makro-Programmierung und dieses OOffice-Project wird ja durch Sun MicroSystems unterstuetzt. Da Sun auch wohl der Java-Ursprung ist (Objektorientierte Programmierung) und dort bei Sun auch so der Eine oder Andere C-Uebermensch rumlaeuft, habe ich mir nach der Sun Dokumentation eben diese Notation zu eigen gemacht wie:
sText steht fuer eine String Variable mit dem Namen "Text"
iGeld steht fuer integer-variable Geld
u.s.w.
Ich finde das schon sehr gut, dass beim Lesen eines Quelltextes allein durch den Namen einer Variable zu erkennen ist, was Sie darstellt bzw welchen Typ die Variable besitzt.
Ich werde wohl dabei bleiben.


Aber danke fuer den Tipp.

Freiheit ist immer die Freiheit der Andersdenkenden. Wie schon Rosa L. sagte :-)
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Sonntag 2. November 2008, 18:38

Nameskonventionen, die den Datentyp beschreiben, sind in Python nicht hilfreich, sondern sogar irreführend. Python ist eben eine dynamische Sprache, in der keine Variablen eines Datentyps erzeugt werden, sondern nur Namen, die dann als Referenzen dienen ;)

Naja dein Problem war, dass du dann 2 QApplications hattest ;)

Wo du gerade den Designer ansprichst: Du scheinst ihn falsch benutzt zu haben, wenn du einen Dialog erzeugst, der von QMainWindow erbst ;)
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

Beitragvon xWolf » Sonntag 2. November 2008, 18:43

cofi hat geschrieben:Nameskonventionen, die den Datentyp beschreiben, sind in Python nicht hilfreich, sondern sogar irreführend. Python ist eben eine dynamische Sprache, in der keine Variablen eines Datentyps erzeugt werden, sondern nur Namen, die dann als Referenzen dienen ;)

Ist tatsaechlich mein Problem, da ich eben ein bischen Ordnung in meinem Programm haben will.
Naja dein Problem war, dass du dann 2 QApplications hattest, denn Code auf Toplevel wird direkt ausgeführt. Du hättest den letzten Teil in deinen vorangehenden Codeschnippseln in ein

Code: Alles auswählen

if __name__ == "__main__":
    ...

verpacken sollen.

Danke fuer den Tipp, nach dem ich die Loesung bereits gefunden hatte.

Wo du gerade den Designer ansprichst: Du scheinst ihn falsch benutzt zu haben, wenn du einen Dialog erzeugst, der von QMainWindow erbst ;)

Das hatte ich in meinem letzten Code ja wohl selbstaendig geaendert.

Wolf
lunar

Re: geloest

Beitragvon lunar » Sonntag 2. November 2008, 19:12

Die ungarische Notation ist bei objektorientierten, dynamischen Sprachen wie Python völlig sinnlos, da keinerlei Möglichkeit existiert, die Einhaltung dieses Typs zu forcieren. Die Bindung eines Integers an den Namen "sText" ist möglich, folglich trägt "sText" keinerlei verwertbare Information. In der objektorientierten Programmierung ist der Typ des Objekts durch das Objekt selbst definiert und nicht durch den Namen, an den es gebunden ist. Auch ist ein bestimmter Typ mitunter gar nicht klar definiert. So stellt sich beispielsweise die Frage, welcher Datentyp nun tatsächlich mit dem Präfix "s" gemeint ist? Steht "sText" nun für einen "str"-Typ, einen "unicode"-Typ oder gar für "QString"? Alle diese Typen haben eine unterschiedliche Semantik, aber jeder ist bei der PyQt4-Programmierung präsent.

Deswegen ist diese Notation in keiner objektorientierten Sprache sinnvoll und wurde auch in keiner Sprache angewendet. Die einzige Ausnahme bildete Microsoft, das die Konventionen aus der WinAPI teilweise auf die MFC anwandte. Allerdings empfiehlt auch Microsoft, die ungarische Notation in neuem Code nicht mehr zu nutzen. Die Konvention, Namen mit Datentyppräfixen zu versehen, entstand übrigens auch nur, weil die Microsoft-Programmierer zu dumm waren, den Text des Erfinders der ungarischen Notation richtig zu lesen. Der hatte mit dieser Konvention nämlich eigentlich etwas völlig anderes im Sinn.

Im Übrigen ist Sun mit Java nicht Erfinder der Objektorientierten Programmierung, die gab es in Form von Smalltalk schon 15 Jahre vorher. Auch C++ und Python sind älter als Java. Und Sun hat auch nie die ungarische Notation für Java verwendet, noch die Nutzung derselben empfohlen.

Wenn du diese Notation nutzen willst, ist das deine Sache, denn mit dem resultierenden Code musst du ja arbeiten. Ich würde dir empfehlen, diese Notation aufzugeben und deine Namensgebung an PEP 8 zu orientieren. Das dürfte die Lesbarkeit deines Codes deutlich erhöhen und auch verhindern, dass du jedes Mal, wenn du Code hier postest, auf deine Namensgebung angesprochen wirst.

my 2 cents
lunar
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

Re: geloest

Beitragvon xWolf » Sonntag 2. November 2008, 22:03

lunar hat geschrieben: Die Bindung eines Integers an den Namen "sText" ist möglich, folglich trägt "sText" keinerlei verwertbare Information. In der objektorientierten Programmierung ist der Typ des Objekts durch das Objekt selbst definiert und nicht durch den Namen, an den es gebunden ist. Auch ist ein bestimmter Typ mitunter gar nicht klar definiert. So stellt sich beispielsweise die Frage, welcher Datentyp nun tatsächlich mit dem Präfix "s" gemeint ist? Steht "sText" nun für einen "str"-Typ, einen "unicode"-Typ oder gar für "QString"?

"s" steht fuer String und "i" fuer Integer wie ich es in meinem Beitrag auch formuliert habe.
Im uebrigen wird diese Notation in der Dokumentation zum StarBasic 8 unter OpenOffice verwendet.

lunar hat geschrieben:
Die einzige Ausnahme bildete Microsoft, das die Konventionen aus der WinAPI teilweise auf die MFC anwandte. Allerdings empfiehlt auch Microsoft, die ungarische Notation in neuem Code nicht mehr zu nutzen. Die Konvention, Namen mit Datentyppräfixen zu versehen, entstand übrigens auch nur, weil die Microsoft-Programmierer zu dumm waren, den Text des Erfinders der ungarischen Notation richtig zu lesen.

Autsch....
Ich bin kein Freund von Microsoft, wie sie in obigen Beitraegen erkennen koennen, arbeite ich mit Linux. Aber die MS-Programmierer als dumm zu bezeichnen, finde ich in hoechstem Masse bedenklich.
Da gehe ich auf weitere "Argumente" mal nicht ein.

:shock:

Uebrigens moechte ich mich hier im Forum nicht dafuer entschuldigen, dass ich neben meiner Arbeit als Maschinenbautechniker mich mit Programmierung beschaeftige um gewisse Problemstellungen in meiner Taetigkeit durch kleine Programme schnell und effektiv erledigen zu koennen. Sicher gibt es viele Forumteilnehmer die wie ich nur mal eben ein Problem loesen wollen/muessen.
Ich/wir sind damit keine Profi-Informatiker und wollen es auch nicht werden. Und deswegen werden unsere Programme oder auch Codeschnipsel nicht den hohen Erwartungen der menschlich hoehergestellten Profis gerecht.
Aber trotzdem denke ich, dass auch wir ein Recht auf unser Dasein besitzen und uns in die Grundzuege der Programmierung einarbeiten duerfen.
Aus diesem Grund habe ich eine kurze Loesung meines Problems konkret veroeffentlicht ohne herablassend irgendwelche unkonkreten Brocken in den Raum zu werfen.

Somit verbleibe ich mit freundlichen Gruessen

Wolf
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Beitragvon str1442 » Sonntag 2. November 2008, 22:13

@Dumme MS Entwickler:

Die von Simonyi entwickelte Konvention wurde bei Microsoft in der Application Group (Excel, Word etc.) mit großem Erfolg angewandt und in der Folge von der Systems Group (Windows) übernommen, wobei es zu einem grundlegenden Missverständnis kam. Simonyi spricht in seinem Paper vom „type“ einer Variablen, was vielfach als „Datentyp“ interpretiert wurde. Gemeint ist vielmehr die Art der Variablen im spezifischen Kontext einer Applikation. Es geht also nicht so sehr darum, ob eine Variable Ganzzahl oder Kommazahl ist, sondern ob es sich um einen Zähler handelt, eine Koordinate auf dem Bildschirm, einen Index in einem Array o. ä.

(Wikipedia)

In dem Fall kann man vielleicht nicht von Dummheit sprechen (da mehrdeutig), aber sicherlich von Einfalls- und Kreativlosigkeit mit integrierter Selber-Denk-Resistenz. Wozu soll es bitte überhaupt gut sein, mit i oder s einen Integer / String zu markieren, selbst in statischen Sprachen? Das seh ich beim deklarieren, und kann es bei guten Code auch gleich am Namen samt Kontext ablesen.

EDIT: Falsche Wörter genutzt wegen anderer Gedanken.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: geloest

Beitragvon Leonidas » Montag 3. November 2008, 01:40

xWolf hat geschrieben:"s" steht fuer String und "i" fuer Integer wie ich es in meinem Beitrag auch formuliert habe.

String sagt nichts aus. In Qt-Programmen hast du sowohl Bytestrings als auch Unicodestrings als auch QStrings die alle Unterschiedlich sind. Das ist so als würde man z vor alle Zahldatentypen setzen, obwohl sie eben nicht gleich sind.

xWolf hat geschrieben:Im uebrigen wird diese Notation in der Dokumentation zum StarBasic 8 unter OpenOffice verwendet.

Openoffice macht es falsch, also muss man deren Fehler wiederholen? Tut mir leid, diese Argumentation macht keinen Sinn. Openoffice macht so einiges falsch, so ist etwa UNO die blödste Idee die man sich ausdenken kann, etwas was konzeptuell toll klingt, aber in der Realisiation eine Welt aus Schmerz ist.

xWolf hat geschrieben:Ich bin kein Freund von Microsoft, wie sie in obigen Beitraegen erkennen koennen, arbeite ich mit Linux. Aber die MS-Programmierer als dumm zu bezeichnen, finde ich in hoechstem Masse bedenklich.

Blöd trifft es zwar nicht ganz, aber bei einigen Dingen in Microsoft-Produkten überlegt man schon ob sie auf Crack waren. Das überlege ich mir aber auch bei vielen anderen Programmen mit augenscheinlichen Defekten.

[quote="xWolf"]Ich/wir sind damit keine Profi-Informatiker und wollen es auch nicht werden. Und deswegen werden unsere Programme oder auch Codeschnipsel nicht den hohen Erwartungen der menschlich hoehergestellten Profis gerecht.
Aber trotzdem denke ich, dass auch wir ein Recht auf unser Dasein besitzen und uns in die Grundzuege der Programmierung einarbeiten duerfen./quote]
Das ist doch Quatsch. Lunar hat dir einen guten Tipp gegeben, ihn begrundet und du hast ihn abgeweisen, indem du lieber auf die schlechte Weise weitermachst. Jetzt versuchst du das zu rechtfertigen. Natürlich ist es deine Sache, machs wie du willst, aber mit der Einstellung wirst du generell unter Programmierern wenig Respekt ernten. Es ist eine Sache nicht jeder dahergeworfenen Empfehlung nachzulaufen, eine andere, begründete Empfehlungen in den Wind zu schlagen.

Eine Entschuldigung ist nicht nötig und auch an niemanden hier zu richten, die einzige Person die sich dadurch schadet bist ja sowieso du. Entschuldigungen wären angebracht wenn jemand jemand anderen beleidigt oder angegriffen hätte. Das ist hier aber auf keiner Seite der Fall.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

Re: geloest

Beitragvon xWolf » Montag 3. November 2008, 01:52

Leonidas hat geschrieben:Openoffice macht es falsch, also muss man deren Fehler wiederholen? Tut mir leid, diese Argumentation macht keinen Sinn. Openoffice macht so einiges falsch, so ist etwa UNO die blödste Idee die man sich ausdenken kann, etwas was konzeptuell toll klingt, aber in der Realisiation eine Welt aus Schmerz ist.

Hallo,

Oder besser Na HALLO ?!
OpenOffice macht alles falsch? Was soll dass denn?
Wollen Sie ueber richtig oder unrichtig in Programmierung entscheiden?
UNO ist auch nicht mein Ding. Da krieg auch ich graue Haare, aber ich kann doch diese Leute, die das entwickelt haben nicht zu Vollidioten erklaeren, nur weil ich/wir es nicht verstehen?!


Das ist doch Quatsch. Lunar hat dir einen guten Tipp gegeben, ihn begrundet und du hast ihn abgeweisen,...

Ich habe keinen Tipp abgewiesen. Sein Tipp war "lesen" und ich habe gelesen und habe meine Erkenntnis der Forumgemeinde zur Verfuegung gestellt. Wenn sie an dieser Loesung etwas auszusetzen haben, dann bitte konkret die Code-Passagen benennen.
Aber eigentlich... Wo haben Sie denn das her?
Sie muessen meinen Beitrag mit einem anderen verwechselt haben.
Was Sie hier schreiben entbehrt leider jeder Grundlage.

Mit freundlichen Gruessen

Wolf

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder