class CAlarmLevMenu: public QObject
{
Q_OBJECT
public:
CAlarmLevMenu();
~CAlarmLevMenu();
public:
QMainWindow *m_pAlarmLevDlg;
QDialog *m_pAlarmSetDlg;
private slots:
void AlarmSetDlgClose(QObject *pObj);
void DlgClose(QObject * pObj);
}
通过点击m_pAlarmLevDlg对话框上的一个按钮会生成m_pAlarmSetDlg对话框。如果点击m_pAlarmSetDlg对话框上的关闭按钮,我希望做的是销毁m_pAlarmSetDlg指针。
生成m_pAlarmLevDlg如下过程:
if(m_pAlarmLevDlg == NULL)
{
m_pAlarmLevDlg = new QMainWindow(m_pICore->GetWindow());
//////////////////////////////中间有几句是为这个对话框创建按钮的///////////////////////////
connect(m_pAlarmLevDlg, SIGNAL(destroyed(QObject*)), this, SLOT(DlgClose(QObject*)));通过这个为m_pAlarmLevDlg创建关闭的对话框的信号与槽的连接来释放指针。
(PS:关闭这个对话框时通过调试有进入槽函数DlgClose进行销毁指针)
}
生成m_pAlarmSetDlg的过程如下:
点击了m_pAlarmLevDlg上的一个按钮之后生成。
if(m_pAlarmSetDlg == NULL)
{
m_pAlarmSetDlg = new QDialog(m_pICore->GetWindow());
//////////////////////////////中间有几句是为这个对话框创建按钮的///////////////////////////
connect(m_pAlarmSetDlg, SIGNAL(destroyed(QObject*)), this, SLOT(AlarmSetDlgClose(QObject*)));
通过这个为m_pAlarmSetDlg传教关闭对话框时的信号与槽的连接来释放m_pAlarmSetDlg指针
}
该槽函数实现如下:
void CAlarmLevMenu::AlarmSetDlgClose(QObject* pObj)
{
delete m_pAlarmSetDlg;
m_pAlarmSetDlg = NULL;
}
关闭这个对话框时并没有进入槽函数,应该是信号未被触发。
请教各位大哥大侠 和版主,这是什么情况导致的?该怎么解决呢?
雪地裸奔跪求啦~~