Qt ListWidget
Qt ListWidget
Guten Abend,
ich versuche gerade ein Programm zu schreiben, in welchem verschiedene Namen eingetragen werden sollen. Den Namen sollen verschiedene Eigenschaften zugwiesen werden und dann die Namen in einem ListWidget angezeigt werden. Sobald man im ListWidget auf einem Namen klickt soll in einem zweiten ListWidget alle Eigenschaften mit zugehörigem Wert angezeigt werden und auch dort bearbeitet werden können (wie in Qt Designer oder so). Was ist die eleganteste Methode diese Namen, welche dynamisch generiert werden, abzuspeichern und im ListWidget anzuzeigen.
Hab mir gedacht, das über eine verkettete Liste zu machen, welche wiederum eine Klasse enthält, welche die Eigenschaften der verschiedenen Namen enthält. Da mir diese Methode ein wenig unelegant vorkommt, wollte ich mal fragen, wie man das besser machen könnte?
Grüße
Murmele
ich versuche gerade ein Programm zu schreiben, in welchem verschiedene Namen eingetragen werden sollen. Den Namen sollen verschiedene Eigenschaften zugwiesen werden und dann die Namen in einem ListWidget angezeigt werden. Sobald man im ListWidget auf einem Namen klickt soll in einem zweiten ListWidget alle Eigenschaften mit zugehörigem Wert angezeigt werden und auch dort bearbeitet werden können (wie in Qt Designer oder so). Was ist die eleganteste Methode diese Namen, welche dynamisch generiert werden, abzuspeichern und im ListWidget anzuzeigen.
Hab mir gedacht, das über eine verkettete Liste zu machen, welche wiederum eine Klasse enthält, welche die Eigenschaften der verschiedenen Namen enthält. Da mir diese Methode ein wenig unelegant vorkommt, wollte ich mal fragen, wie man das besser machen könnte?
Grüße
Murmele
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Qt ListWidget
Abgehesen davon dass eine verkettete Liste m.E. der falsche Container ist (Vector/Map wäre wohl sinnvoller) üsste ich nicht was falsch daran sein sollte.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Qt ListWidget
Vielen Dank für die Antwort. Doch leider komm ich jetzt doch nicht weiter: Welches Widget ist am besten geeignet, Listen von Strings zu speichern, bei welcher man z.B. auf den Namen Doppelklick macht, dass man den dann noch ändern kann? Zum anderen dachte ich, die Eigenschaften in einem TableWidget zu speichern, also ersten Spalte die EIgenschaften und in der zweiten Spalte die Werte zu den dazugehörigen Eigenschaften. Die Eigenschaften möchte ich in einer Eigenen Klasse gespeichert haben
Ich weiß jetzt nur nicht, wie ich die Werte im TableWidget eintrage, sobald ich im ListWidget auf den Namen klicke.
Ich habe einen Dialog der vom MainWindow aus aufgerufen wird. Wie kann ich von diesem Dialog auf Widgets vom MainWindow zugreifen, um auszulesen, ob der Namen bereits in der ListWidget vorhanden ist?
Code: Alles auswählen
class Pad
{
public:
QString name;
QString pos_x;
QString pos_y;
QString width;
QString height;
};
Ich habe einen Dialog der vom MainWindow aus aufgerufen wird. Wie kann ich von diesem Dialog auf Widgets vom MainWindow zugreifen, um auszulesen, ob der Namen bereits in der ListWidget vorhanden ist?
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Qt ListWidget
Wie man ein QTableWidget füllt kann man in der Doku nachlesen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Qt ListWidget
ich übergebe das MainWindow mit Wieso kann ich nicht auf das ListWidget zugreifen?
Code: Alles auswählen
NameDialog::NameDialog(MainWindow *window)
{
setupUi(this);
main_window = window;
Code: Alles auswählen
if(main_window->listWidget_pads_name->findItems(le_new_name->text(), Qt::MatchExactly).isEmpty())
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Qt ListWidget
Was sagt der Compiler? --> C++ Grundlagen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Qt ListWidget
Dieser Fehler wird angezeigt:
Code: Alles auswählen
/ui_mainwindow.h:65: Fehler: 'QListWidget* Ui_MainWindow::listWidget_pads_name' is inaccessible QListWidget *listWidget_pads_name;
/namedialog.cpp:38: Fehler: within this context
if(main_window->listWidget_pads_name->findItems(le_new_name->text(), Qt::MatchExactly).isEmpty())
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Qt ListWidget
Und was sagt uns das? Zum einen sollte man von einer Klasse nicht direkt auf Member einer anderen Klasse zugreifen und wenn man es doch will (was sehr schlechter Stil ist) dann muss dieser Member public sein. Ich empfehle hier ein C++ Grundlagenbuch.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung