Каждый раз, когда я открываю виджет, я добавляю все элементы widgetItem и устанавливаю значение по умолчанию равным нулю. В первый раз при запуске приложения widgetItem возвращает действительный адрес, но закрытие виджета и повторное открытие возвращает адрес widgetitem как ноль.
void csGuiSSHModuleSavedConnWindow::showSavedConnWindow(QMap<QString, StoreInfo> &savedConnInfo,const QPoint &pos)
{
m_savedConnMap.clear();
m_savedConnMap = savedConnInfo;
if(m_savedConnMap.keys().count() == 0)
return;
m_pConnList->clear();
foreach (QString connName, m_savedConnMap.keys()) {
QListWidgetItem* lwi = new QListWidgetItem(connName);
m_pConnList->addItem(lwi);
lwi->setTextAlignment(Qt::AlignLeft);
}
if(m_pConnList->count() == 0)
{
return;
}
m_pConnList->item(0)->setSelected(true);
executeDialog(pos);
}
void csGuiSSHModuleSavedConnWindow::slotAddConnection()
{
QListWidgetItem *listItem = m_pConnList->currentItem();
QList<QListWidgetItem *> itemsSelected = m_pConnList->selectedItems();
int count = itemsSelected.count();
int cc = m_pConnList->count();
if(listItem)
{
//Returns NULL on second time opening the widget
}
}