#include "PersonListWidget.h" #include "PersonDialog.h" #include #include #include #include #include PersonListWidget::PersonListWidget() : personList( new QListWidget() ), addButton( new QPushButton ("+" ) ), removeButton( new QPushButton( "-" ) ), dialog( new PersonDialog( this ) ) { QVBoxLayout *vLayout = new QVBoxLayout(); QHBoxLayout *hLayout = new QHBoxLayout(); // Es kann nur ein Element der Liste selektiert werden. personList->setSelectionMode( QAbstractItemView::SingleSelection ); // Verbindungen aufbauen connect( addButton, &QPushButton::clicked, dialog, &QDialog::open ); connect( removeButton, &QPushButton::clicked, this, &PersonListWidget::removeSelectedMessage ); connect( dialog, &PersonDialog::personSelected, this, &PersonListWidget::addPerson ); // Widgets in Layout einfügen hLayout->addStretch(); hLayout->addWidget( addButton ); hLayout->addWidget( removeButton ); vLayout->addWidget( personList ); vLayout->addLayout( hLayout ); setWindowTitle( "Persons" ); setLayout( vLayout ); resize( 400, 400 ); } void PersonListWidget::addPerson( const Person& person ) { personList->addItem( person.firstName() + " " + person.lastName() + ", " + QString::number( person.age() ) + ", " + ( person.gender() == Gender::MALE ? "Male" : "Female" ) ); } void PersonListWidget::removeSelectedMessage() { QList items = personList->selectedItems(); delete items.first(); }