QT窗体间传值之全局变量


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

运行方式为在主界面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 的详细介绍:请点这里
Qt 的下载地址:请点这里

推荐阅读:

Ubuntu 环境下Gtk与QT编译环境安装与配置

Linux系统下QT环境搭建

Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法

Ubuntu 10.04下QT4.7.4移植详解

Linux下为刚安装好的Qt Creator 创建桌面启动图标

Ubuntu 11.04安装QT Creator 2.5.0

Qt creator for PlayBook安装过程

相关内容