0

QMap & Qlist にデータを保存して QT で取得する方法は?

私の要件は、月曜日から日曜日のスケジュール名と、「日曜日、12:00 - 17:30」のようなスケジュール項目があることです........

今私は 2 つの QlistWidget を 1 つにはスケジュール名が含まれ、もう 1 つには Schedule items が含まれている必要があります。最初のリストボックスで 1 つのスケジュール名を選択すると、対応する関連するスケジュール項目が別のリストボックスにリストされます。

Qmap と Qlist を使用して listwiget に項目を追加するにはどうすればよいですか?

それを使用してデータをメモリに保持する方法は?

  QList<QString> ScheduleItemslist;
     ScheduleItemslist << "Saturday,09:00- 17:30" << "Sunday,10:00- 12:00" << "Sunday,01:30- 17:30" ;

 QList<QString> ScheduleItemslst;
  ScheduleItemslst << "Monday,09:00- 17:30" << "Tuesday,10:00- 12:00" << "Wednesday,01:30- 17:30" ;


QMap<QString,QList<QString> > map;
map["Weekend Plus"] = ScheduleItemslist ;
map["All"] = ScheduleItemslst ;

foreach (QString key, map.keys())
{
    ui->listWidgetTimeSet->addItem (key) ;
}


ui->listWidgetTime->addItems(ScheduleItemslist);

ItemselectionChanged イベントで:

QList<QString> ScheduleItemslist;
     ScheduleItemslist << "Saturday,09:00- 17:30" << "Sunday,10:00- 12:00" << "Sunday,01:30- 17:30" ;

  QList<QString> ScheduleItemslst;
    ScheduleItemslst << "Monday,09:00- 17:30" << "Tuesday,10:00- 12:00" << "Wednesday,01:30- 17:30" ;

if(ui->listWidgetTimeSet->currentItem()->text() == "Weekend Plus")
{
    ui->listWidgetTime->addItems(ScheduleItemslist);
}
else if (ui->listWidgetTimeSet->currentItem()->text() == "All")
{
    ui->listWidgetTime->addItems(ScheduleItemslst);
}
4

1 に答える 1

3

データを保存するには、このようなものが必要です。

//Declare your map
QMap <QString, QList <QString> > map;

//Populate your map in a function
void populateMap ()
{

    QList<QString> sundaylist;
    sundaylist<< "Sunday , 12:00 - 17:30" << "Sunday , 18:00 - 20:30";
    map ["Sunday"] = sundaylist;

    QList<QString> mondaylist;
    mondaylist<< "Monday , 12:00 - 17:30" << "Monday , 18:00 - 20:30";
    map ["Monday"] = mondaylist        
}

//Populate list1 with keys in your map
void populateList1 ()
{
    list1.addItems (map.keys ());
}

//This is your slot connected to currentItemChanged  signal of list1
void list1CurrentItemChanged ( QListWidgetItem * current, QListWidgetItem * previous ) 
{
    list2.clear ();
    QString key = current->text ();
    list2.addItems (map [key]);

}
于 2011-06-08T09:42:20.993 に答える