Seite 1 von 1

Woher kommt das qt_spinbox_lineedit in meiner QList

Verfasst: 24. Dezember 2008 11:27
von gboelter
Moin, Moin!

Ich habe hier ein Eingabemaske mit diversen QLineEdit, ComboBoxen und einem QTextEdit.

Was ich dort garantiert nicht habe, ist eine oder auch mehrere SpinBoxen. Genauer gesagt, SpinBoxen tauchen in dem Source ueberhaupt nicht auf!

Wenn ich mir aber jetzt mit findChildren() die QLineEdits ausgeben lasse, dann taucht dort mal mehr, mal weniger - im vorliegenden Beispiel 2 x - ein QLineEdit(0x89599f0, name = "qt_spinbox_lineedit").

Die UI's wurden mit dem Designer erstellt und es gibt dort keine SpinBoxen.

Hat jemand eine Idee, wo die Dinger herkommen? Denn so kann ich mit meiner Liste ja wenig anfangen, es sei denn ich validiere alle Elemente vor der Weiterverarbeitung, was aber den Vorteil einer Liste ja nahezu aufhebt.
QLineEdit(0x8a58420, name = "lineEditSummeVkNetto")
QLineEdit(0x8a5b260, name = "lineEditSummeEkNetto")
QLineEdit(0x8a588c0, name = "lineEditSummeVkBrutto")
QLineEdit(0x8a461b0, name = "lineEditObject")
QLineEdit(0x8957bc0, name = "qt_spinbox_lineedit")
QLineEdit(0x8958988, name = "lineEditBestellName")
QLineEdit(0x8958938, name = "lineEditBestellNr")
QLineEdit(0x89599f0, name = "qt_spinbox_lineedit")
QLineEdit(0x8958f98, name = "lineEditDebitNr")
QLineEdit(0x8a84d80, name = "lineEditSuchbegriff")
Bei den entsprechenden Listen fuer die ComboBoxen und dem QTextEdit gibt es dieses Problem seltsamerweise nicht, sondern anscheinend nur in Zusammenhang mit QLineEdit.

Der komplette Source ist mir etwa 2.500 Zeilen leider etwas zu lang, um den hier zu posten. Aber vielleicht hat ja auch so jemand eine Idee ....

Kann das ein Bug in findChildren() sein?

Ich verwende uebrigens Qt-4.43 in der OpenSource Version fuer Linux/X11.

Ich danke Euch im voraus und wuensche ein Frohes und besinnliches Weihnachtsfest.

Guenther

Verfasst: 24. Dezember 2008 13:43
von qtNiko
hi,

zunächst ist die Frage, auf welcher Ebene/Objekt etc. das findChildren() aufgerufen wird. Und dann, kann es sein, dass es LineEdit's mit visible=false gibt, oder vielleicht Label, die "qt_spinbox_lineedit" heißen?

Suche doch mal die ui-Datei nach dem String "qt_spinbox_lineedit" ab.


Jetzt werde ich mich dann mal über unseren Christbaum hermachen.
Frohe Weihnachten

Verfasst: 24. Dezember 2008 15:15
von pfid

Code: Alles auswählen

grep qt_spinbox_lineedit *

Verfasst: 24. Dezember 2008 15:55
von gboelter
qtNiko hat geschrieben:Suche doch mal die ui-Datei nach dem String "qt_spinbox_lineedit" ab.
Zunaechst mal vielen Dank fuer Eure Muehe.

Nach dem "qt_spinbox_lineedit" hatte ich natuerlich schon gesucht, aber den String gibt es nirgendwo in meinen Project-Files, also weder in *.ccp, noch *.h noch *.*.

Ein " grep -r qt_spinbox_lineedit * " auf das gesamte Verzeichnis ergibt absolut nichts!

Dennoch, viel Spass noch mit dem Tannenbaum ....

Gruss Guenther

Verfasst: 25. Dezember 2008 03:15
von gboelter
Guten Morgen!

Ich habe es gerade noch mal in einem anderen Teil meine Programms getestet, und auch hier tauchen wieder das "qt_spinbox_lineedit" auf ....
QLineEdit(0x9813c30, name = "lineEditKundenMatchcode")
QLineEdit(0x9814078, name = "lineEditKundenKundenNr")
QLineEdit(0x9814368, name = "lineEditKundenFibuKonto")
QLineEdit(0x98f7658, name = "qt_spinbox_lineedit")
QLineEdit(0x9816150, name = "lineEditKundenName1")
QLineEdit(0x9816528, name = "lineEditKundenName2")
QLineEdit(0x9816860, name = "lineEditKundenName3")
QLineEdit(0x9816b98, name = "lineEditKundenStrasse")
QLineEdit(0x9816f30, name = "lineEditKundenLand")
QLineEdit(0x9817268, name = "lineEditKundenPlz")
QLineEdit(0x98175c8, name = "lineEditKundenOrt")
QLineEdit(0x981f780, name = "qt_spinbox_lineedit")
QLineEdit(0x9818620, name = "lineEditKundenTelefon")
QLineEdit(0x98189b0, name = "lineEditKundenTelefax")
Wie gesagt, in meinem eigenen Source gibt es kein "qt_spinbox_lineedit"!

Dann habe ich's mal mit grep -r qt_spinbox_lineedit * auf das Verzeichnis von Qt4 probiert, und damit habe ich dann immerhin die "Quelle" ausmachen koennen:

[root@gbs01 Qt-4.4.3]# grep -r qt_spinbox_lineedit *
Binary file lib/libQtGui.so.4.4.3 matches

Nur bringt mich diese Erkenntnis auch nicht wirklich weiter, denn mit diesen "qt_spinbox_lineedit" Eintraegen in meiner QList ist Liste fuer mich unbrauchbar! Ich koennte die Teile natuerlich rausfiltern, aber dann kann ich auch gleich 'ne Liste manuell erstellen.

Aber vielleicht hat ja noch jemand von Euch 'ne Idee ... :idea:

Froehliche Weihnachten

Verfasst: 27. Dezember 2008 15:43
von qtNiko
hi,
die Sache klingt mysteriös. Aber vielleicht noch ein Tipp.
Könnte es sein, dass neben dem Projekt, das Du aktuell bearbeitest, noch ein (mehrere) weiteres geöffnet ist, und die geheimnisvolle qt_spinbox_lineedit dort vorkommt?
Ich arbeite mit Eclipse unter Linux. Dort ist es z.B. möglich, ein Projekt in ein anderes einzubeziehen. Jedesmal, wenn man compiliert, werden stets alle offenen Projekte compiliert, usw.. Vielleicht gibt es bei Dir auch so etwas - irgendwo muss doch die Definition stehen.

Verfasst: 28. Dezember 2008 03:39
von gboelter
qtNiko hat geschrieben:Könnte es sein, dass neben dem Projekt, das Du aktuell bearbeitest, noch ein (mehrere) weiteres geöffnet ist, und die geheimnisvolle qt_spinbox_lineedit dort vorkommt?
Leider Fehlanzeige. Das qt_spinbox_lineedit erscheint auch dann, wenn ich das Project per command line komplett neu bauen lasse.

Ich habe mal mein System von Qt 4.4.3 auf Qt 4.4.1 zurueckgesetzt, brachte aber leider auch keine Besserung. Weiter zurueck kann ich leider nicht, da ich einige Routinen verwende, die es erst seit Qt 4.4.x gibt.