Сделал диалог (QDialog) cинглтоном.. без передачи парента главной формы. Может быть в этом дело, может нет, не знаю.
Но комбобокс ведет себя немного странно. Если нажать на него, чтобы выпал список. Потом закрыть диалог, закрыть приложение. То программа крашится.
По колстеку показывает что именно при разрушении этого самого диалога. ЕСЛИ НЕ НАЖИМАТЬ чтобы не выпадал список, тоесть открыть диалог, закрыть диалог, закрыть приложение все нормально
qwindowsd.dll!QScopedPointer<QWindowsContextPrivate,QScopedPointerDeleter<QWindowsContextPrivate> >::operator->()Строка 118 C++
qwindowsd.dll!QWindowsContext::windowUnderMouse()Строка 700 C++
qwindowsd.dll!QWindowsWindow::destroyWindow()Строка 1154 C++
qwindowsd.dll!QWindowsWindow::~QWindowsWindow()Строка 1124 C++
qwindowsd.dll!QWindowsWindow::`scalar deleting destructor'(unsigned int) C++
Qt5Guid.dll!QWindow::destroy()Строка 1705 C++
Qt5Widgetsd.dll!QWidgetPrivate::deleteTLSysExtra()Строка 1910 C++
Qt5Widgetsd.dll!QWidget::destroy(bool destroyWindow, bool destroySubWindows)Строка 12348 C++
Qt5Widgetsd.dll!QWidget::~QWidget()Строка 1703 C++
Qt5Widgetsd.dll!QFrame::~QFrame()Строка 264 C++
Qt5Widgetsd.dll!QComboBoxPrivateContainer::~QComboBoxPrivateContainer() C++
Qt5Widgetsd.dll!QComboBoxPrivateContainer::`scalar deleting destructor'(unsigned int) C++
Qt5Cored.dll!QObjectPrivate::deleteChildren()Строка 1970 C++
Qt5Widgetsd.dll!QWidget::~QWidget()Строка 1696 C++
Qt5Widgetsd.dll!QComboBox::~QComboBox()Строка 1349 C++
ViewMBTCP.dll!QComboBox::`scalar deleting destructor'(unsigned int) C++
Qt5Cored.dll!QObjectPrivate::deleteChildren()Строка 1970 C++
Qt5Widgetsd.dll!QWidget::~QWidget()Строка 1696 C++
ViewMBTCP.dll!QWidget::`scalar deleting destructor'(unsigned int) C++
Qt5Cored.dll!QObjectPrivate::deleteChildren()Строка 1970 C++
Qt5Widgetsd.dll!QWidget::~QWidget()Строка 1696 C++
Qt5Widgetsd.dll!QGroupBox::~QGroupBox()Строка 210 C++
ViewMBTCP.dll!QGroupBox::`scalar deleting destructor'(unsigned int) C++
Qt5Cored.dll!QObjectPrivate::deleteChildren()Строка 1970 C++
Qt5Widgetsd.dll!QWidget::~QWidget()Строка 1696 C++
Qt5Widgetsd.dll!QDialog::~QDialog()Строка 361 C++
//конструктор
SearchForm::SearchForm(QWidget *parent) :
m_isFilterSet(false),
m_searchDirection(SD_FROM_END)
{
ui.setupUi(this);
ui.label->setText("Record type:");
ui.label_2->setText("Text:");
ui.label_3->setText("Direction:");
ui.groupBox->setTitle("Search conditions");
ui.btnSearch->setText("Search");
ui.btnCancel->setText("Cancel");
ui.cmbType->addItem(QString::fromStdString(S_Any));
...
ui.cmbType->addItem(QString::fromStdString(MsgTypeTrapStart));
ui.cmbType->addItem(QString::fromStdString(MsgTypeTrapStop));
ui.cmbType->addItem(QString::fromStdString(MsgTypeTrapReceived));
ui.cmbType->setCurrentIndex(1);
QStringList list;//{ Resource::DLG_SearchAllDown, Resource::DLG_SearchAllTop, Resource::DLG_SearchFromTop, Resource::DLG_SearchFromDown };
list.push_back(QString::fromStdString(DLG_SearchAllDown));
list.push_back(QString::fromStdString(DLG_SearchAllTop));
list.push_back(QString::fromStdString(DLG_SearchFromTop));
list.push_back(QString::fromStdString(DLG_SearchFromDown));
ui.cmbDirection->addItems(list);
ui.cmbText->setEditable(true);
connect(ui.btnSearch, &QPushButton::clicked, this, &SearchForm::findButtonClick);
connect(ui.btnCancel, &QPushButton::clicked, this, &QDialog::close);
}
// вот так открываю
bool SearchForm::execute()
{
loadFilter();
if (exec() == QDialog::Accepted)
{
m_isFilterSet = true;
return true;
}
return false;
}