QT 用全局变量进行窗体传值的有关问题

QT 用全局变量进行窗体传值的问题
我在mainweindow.cpp中开头      
QString quanju;

然后有一个按键etn,
void MainWindow::on_etn_clicked()
{
    quanju=ui->label->text();
    my2.show();

}

在Dialog.cpp开头
extern QString quanju;
然后我想在这个子窗口的显示出quanju的值
void Dialog::distmp()
{
ui->textBrowser_2->setHtml(quanju);
}

我想在主窗口按一下etn,弹出子窗口后直接在子窗口的textBrowser显示主窗口quanju的值但像上面我这样写,按了etn后textBrowser不能显示,只有将void Dialog::distmp()用on_pushButton_clicked()才能得到quanju的值。

我就想问问这是什么原因,怎样才能做到在主窗口按一下etn子窗口就能随时显示quanju的值,不需要另外再按其他按钮
------解决思路----------------------
引用:
Quote: 引用:

很简单,无需使用全局变量:
2个类: MainWindow  MyDialog
需求: MyDialog显示的时候同步MainWindow的时间
首先在MyDialog定义一个槽函数
void MyDialog::distmp(QString time)
{
    ui->textBrowser_2->setHtml(time);
}
然后:MainWindow中如下操作
1、MainWindow中添加一个信号 signals: void currentTime(QString time);
2、MainWindow中定义MyDialog变量myDialog,然后在MainWindow设置按钮发送也行,定时器发送也行
3、关联按钮槽函数:
    connect(this, SIGNAL(currentTime(QString)), myDialog, SLOT(distmp(QString)));
在写btnClicke的槽函数
{
    emit currentTime(ui->labelTime->text());
}


2、MainWindow中定义MyDialog变量myDialog,
这个是怎样定义才对呢?
我在mianwindow的h文件中写   MyDialog myDialog;
然后在cpp中关联按钮槽函数后再这样写,编译就出错了
void MainWindow::on_etn_clicked()
{
    emit currentTime(ui->label->text());
    my2.show();
}



你把Mydialog定义成指针吧!