erstelltes LineEdit mit PyQt5 nicht sichtbar

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Hallo,

ich würde gern mit pyqt5 ein lineedit erstellen. Mein Code sieht so aus:

Code: Alles auswählen

import os                                      # Importieren von Systemmodulen
import sys
import PyQt5.QtCore as core
import PyQt5.QtWidgets as widget
import PyQt5.QtGui as gui # Importieren von PyQT5
import PyQt5.uic as uic

app = widget.QApplication(sys.argv)
hauptfenster = uic.loadUi("tabletest.ui")

hauptfenster.label1 = widget.QLineEdit()
hauptfenster.label1.move(180,40)
hauptfenster.label1.resize(280,40)
hauptfenster.label1.setText("hallo")

hauptfenster.show()
sys.exit(app.exec_())

Leider sehe ich das LineEdit beim Ausfühen des Programmes nicht. Weiß jemand, wo mein Denkfehler liegt? Fehlermeldungen erhalte ich keine...
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Cortez: Ein `QLineEdit` unter dem Namen `label1` von Aussen auf einem anderen Widget als Attribut zu setzen ist reichlich schräg.

Hauptproblem ist, das Du nirgends eine Verbindung zwischen dem `QLineEdit` und dem Widget herstellst in dem es angezeigt werden soll. Das braucht einen Papa (oder eine Mama).

Code: Alles auswählen

#!/usr/bin/env python3
import sys
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget


def main():
    app = QApplication(sys.argv)
    window = QWidget()
    window.resize(500, 500)

    line_edit = QLineEdit(window)
    line_edit.move(180, 40)
    line_edit.resize(280, 40)
    line_edit.setText('hallo')

    window.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
Das absolute platzieren und grösse wählen ist natürlich Mist. Und es stellt sich ja irgendwo auch die Frage warum Du das nicht im Designer erstellt hast‽
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Ja das als label zu bezeichnen ist schräg. Ich hatte erst ein Label und den Code kopiert und noch nicht umgeändert.

Zu deiner Frage: Ich möchte, falls das geht, eine Ausgabe erzeugen, die je nachdem, wie viele Suchergebnis vorhanden sind, dementsprechend Labels/LineEdits/was auch immer erzeugt. Also sprich: wenn meine Suche 10 Datensätze hat, soll mir das Programm 10 widgets erstellen. Geht das? Und wenn ja, wie weise ich den widgets dann variable Namen zu?
Bzw. wie kann ich das alternativ lösen, falls das nicht geht?
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

__blackjack__ hat geschrieben: Freitag 19. April 2019, 14:56 @Cortez: Ein `QLineEdit` unter dem Namen `label1` von Aussen auf einem anderen Widget als Attribut zu setzen ist reichlich schräg.

Hauptproblem ist, das Du nirgends eine Verbindung zwischen dem `QLineEdit` und dem Widget herstellst in dem es angezeigt werden soll. Das braucht einen Papa (oder eine Mama).

Code: Alles auswählen

#!/usr/bin/env python3
import sys
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget


def main():
    app = QApplication(sys.argv)
    window = QWidget()
    window.resize(500, 500)

    line_edit = QLineEdit(window)
    line_edit.move(180, 40)
    line_edit.resize(280, 40)
    line_edit.setText('hallo')

    window.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
Das absolute platzieren und grösse wählen ist natürlich Mist. Und es stellt sich ja irgendwo auch die Frage warum Du das nicht im Designer erstellt hast‽
Ja das als label zu bezeichnen ist schräg. Ich hatte erst ein Label und den Code kopiert und noch nicht umgeändert.

Zu deiner Frage: Ich möchte, falls das geht, eine Ausgabe erzeugen, die je nachdem, wie viele Suchergebnis vorhanden sind, dementsprechend Labels/LineEdits/was auch immer erzeugt. Also sprich: wenn meine Suche 10 Datensätze hat, soll mir das Programm 10 widgets erstellen. Geht das? Und wenn ja, wie weise ich den widgets dann variable Namen zu?
Bzw. wie kann ich das alternativ lösen, falls das nicht geht?
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Cortez: Das geht schon, aber es macht wahrscheinlich mehr Aufwand als ein `QList…`, `QTree…`, oder `QTable…`-Widget für die Anzeige zu verwenden.

Variable Namen verwendet man nicht. Es gibt zum Beispiel Listen in Python. :-)
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

__blackjack__ hat geschrieben: Freitag 19. April 2019, 15:56 @Cortez: Das geht schon, aber es macht wahrscheinlich mehr Aufwand als ein `QList…`, `QTree…`, oder `QTable…`-Widget für die Anzeige zu verwenden.

Variable Namen verwendet man nicht. Es gibt zum Beispiel Listen in Python. :-)
Mit Listen habe ich das auch vor. Ich bin bis jetzt so weit, dass mein Programm Nutzereingaben in eine Datei speichert. Und von dieser Datei soll er die Datensätze dann laden und in Objekte speichern. Auf Kommandozeilenbasis klappt das auch alles. Jetzt mit der GUI sollen die Treffer halt nicht über die Kommandozeile ausgeprintet werden, sondern in einer Tabelle, Textfeld oder was es da für geeignete Möglichkeiten gibt, ausgegeben werden. Und da hängts gerade bei mir, weil ich den textedit-widgets nicht so klarkomme. Wichtig ist auch, dass der Nutzer dann ein Ergebnis auswählen und dann durch Buttonklick zum weiterarbeiten auswählen kann.
Antworten