QT窗体间传值之全局变量

        上一次的文章讲到了使用Signal&Slot机制进行窗体间数据的传递。这里介绍另一种方式全局变量进行传值,在上一次的界面中的mainWindow和dialog中分别加入一个Label和LineEdit以及一个pushbutton。效果如:

QT窗体间传值之全局变量_第1张图片

       运行方式为在主界面mainWindow中单击全局变量按钮对全局变量进行赋值,赋值完成后,在Dialog中单击全局变量在LineEdit中显示全局变量的值,可以发现这种方式下可以很容易的反转传递内容。

        具体实现为:

       在mainWindow.cpp文件中加入:

QString globaldata;         //声明一个全局变量用于窗体间传值
      在全局传值按钮的clicked事件中对gloabaldata进行赋值:
void MainWindow::on_globalpb_clicked()
{
    globaldata = ui->lineEdit->text();
}
    在Dialog.cpp文件中声明外部变量:

extern QString globaldata;
    在全局传值按钮的clicked事件中对gloabaldata进行显示:

void Dialog::on_pushButton_clicked()
{
    ui->lineEdit_2->setText(globaldata);
}
         这种方式,可以看到一些缺点,就是不容易对UI界面进行实时显示,但是这对于一个系统来讲也有一些优势,就是可以方便地将一个系统的配置分配到相关的UI界面中去,但是,同样的,也增加了程序之间的耦合性。

      为了节省篇幅,这里不将最后的结果上传上来了, 下一博文,将介绍窗体间传值的另一种方式:public函数接口方式。




你可能感兴趣的:(QT)