0
如何在QMap中存儲數據& Qlist和QT中的Reterive主題?如何將數據存儲在QT中的QMap和Qlist中?
我的要求是我有計劃名稱這是週一 - 週日及附表的項目,如「週日,12:00 - 17:30」 .........
現在我想有2 QlistWidget一個containsSchedule名稱和其他包含Schedule項目,現在當我在第一個列表框中選擇一個時間表名稱時,相應的相關時間表項目會在另一個列表框中列出。
如何使用Qmap和Qlist將項目添加到listwidget? 如何使用它保持數據im內存?
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);
}
@OrcunC:現在如何在運行時將這些數據添加到Qlistwidget? – user662285 2011-06-08 09:49:54
填充地圖後,遍歷鍵並將它們添加到第一個列表中,如下所示。 foreach(QString key,map.keys()){firstwidget-> addItem(key)}然後將一個插槽連接到currentItemChanged()或currentRowChanged()信號。 currentItemChanged()似乎是一個更好的選擇。獲取項目的文本並將其作爲關鍵字來填充第二個列表,如上所示。 – 2011-06-08 10:04:04
@OrcunC:你可以添加示例代碼嗎? – user662285 2011-06-08 10:07:13