qt 两个界面 参数传递

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt 两个界面 参数传递相关的知识,希望对你有一定的参考价值。

mainwindow.h文件:
#include "dialog.h"
private:
Ui::MainWindow *ui;
Dialog dlg;

mainwindow.cpp文件:
void MainWindow::on_pushButton_clicked()

dlg.show();//dlg是做的一个数字键盘,这里可以实现把他调出来
//ui->lineEdit->setText(sss);


下面问题来了,我在dialog.cpp中
void Dialog::on_okbtn_clicked()

sss=s1;//这里我设了一个extern QString sss, 把最后在键盘上输入的值传给sss.
this.hide();//隐藏键盘

然后我需要在mainwindow的lineedit显示这个值,这里要怎么处理,怎么让这个值在我一把键盘隐藏掉之后就在mainwindow的lineedit里面显示出来,求大神
我那个程序值是传过去的,就是在mainwindow里面我点击一下按键,跳出键盘界面,在键盘界面点击OK返回到主界面,都正常,值也传过去了,就是存在sss这个全局变量中,那么在mainwindow里面现在sss这值怎么显示,如果我再搞个按键按下显示sss是可以的,但是我想在键盘隐藏的同时,在主界面的lineedit里面同时显示这个值

可以建立信号和槽的连接啊 也可以写个接口

信号和槽

在dialog里写个信号 在mainwindow写个槽 连接就可以

还有可以写个接口
写个函数 返回你要的值 直接接受也可以啊追问

新手啊,求具体点,比如:
dialog.h
signals: void sendstr()
是这样写个信号?
那这个信号要怎么发出?难道在dialog.cpp中
void Dialog::on_okbtn_clicked()

sendstr();//发送信号?
this.hide();//隐藏键盘
这样发出信号?
void Dialog::sendstr()//信号函数就这样?

后面在评论里写

追答

发送信号用emit...

void Dialog::on_okbtn_clicked()

emit sendstr();//发送信号 书里都有讲的吧...
this.hide();//隐藏键盘 //这里 this是指针 应该用->

追问

void Dialog::on_okbtn_clicked()

this->hide();
emit sendstr(sss);
这个我查了网上知道了
但是maninwindow里面的connect怎么连接
connect(Dialog,SIGNAL(sendstr(QString)),this,SLOT(setlineedit()));这样不行啊
你有推荐书看看吗?

追答

应该可以的 你的信号定义好象没有QString参数 书的话 Qt creator 快速入门 入门的书籍 介绍了一些Qt的功能 但是内容很浅显 纯粹是为了初学者写的 c++ gui Qt4 也不错的入门书籍 介绍的就相对较深

这两本看完之后 我还是感觉看看Qt自带的例子 就是最好的教程了 毕竟现在qt5 的书籍很少 Qt自带的例子很全面 哪里不会就看帮助文档

追问

dialog.h 我定义的
signals:
void sendstr(QString);
然后mainwindow里面连接就是不行啊
dialog这个我是在mainwindow.h里定义的
private:
Ui::MainWindow *ui;
Dialog dlg; 然后dlg->show dlg->hide 都行的
不知道是不是这样的

追答

按下OK


再按0 mainWindow 显示0 是这个意思吗?

追问

是的,我主界面按了pushbutton弹出键盘,我在键盘按OK主界面就显示我输入的值

追答

只是简单实现了一下你要求的信号和槽  可以去看一看

参考技术A MainWindow 里加入slots:setTextLineEdit() 方法负责将值显示在lineEdit上.
MianWindow下加入信号槽.
connect(dialog,SIGNAL(hide()),this,setTextLineEdit());追问

你这是想当然的吧,我就是这么搞的,不行,连不起来

追答

你可以这样做。
在dialog里面自己加一个signal 方法声明。
然后在你按钮里emit一个自己的信号。
将MainWindow的处理函数和这个信号连接。

以上是关于qt 两个界面 参数传递的主要内容,如果未能解决你的问题,请参考以下文章

QT 多界面跳转以及窗口之间参数传递

QT中UI主窗口如何与子线程相互传递参数

在 QT 中的两个 QWidget 表单之间传递参数

两个jsp界面之间使用window.location.href使用?传递参数以及接受参数

Qt ui界面调用问题

Qt 槽函数怎么传递参数