我在mainwindow里有个槽,点击一个按钮就弹出一个dialog。然后想在dialog中写个槽,点击一个按钮mainwindow中的控件做一些改变。那么问题来了,我只能在mainwindow中操作dialog 的成员,而不能反过来。所以这个槽函数写在dialog的构造函数中应该是不可行的。 写在mainwindow构造函数的话,我如果写在new dialog之前,那么由于没有对象所以会内存冲突,写在之后也是无效的。那么现在,我到底该怎么做呢?
新人,没有分,大家见谅啊!
很简单,在mainwindow中写slot函数,在dialog中写signal函数,二者绑定后,dialog发信号给mainwindow的槽函数,槽函数中写改变控件的方法
好像并没有效果啊。我是在mainwindow中的一个槽函数中调用的dialog。还是上代码把。
connect(button3, SIGNAL(clicked()), this, SLOT(signal_slaot()));
void Set_window::signal_slaot()
{
emit set_signal();
this->reject();
}
//我i在dialog类里面声明了信号和槽
connect(button1_1, SIGNAL(clicked()), this, SLOT(slots_test())); //我mainwindow里面连接了一个槽
//这个槽是弹出一个dialog,并且接受发射的信号,在槽里面改变mainwindow控件
void qt::slots_test()
{
dialog = new Set_window(this);
connect(dialog, SIGNAL(set_signal()), this, SLOT(set_window_ret()));
while(dialog->exec() == QDialog::Accepted)
{
delete dialog;
dialog = new Set_window(this);
}
delete dialog;
}
//这样并没有什么效果