找回密码
 立即注册
收起左侧

如何在QT的mainwindow中输入数据然后,且将值返回主程序

14
回复
13575
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2017-9-7 16:36:30 显示全部楼层 |阅读模式
1Qter豆
QT mainwindow中输入数据然后显示数据,且将值返回主程序?
qt 小白,还望大家海涵
希望大家能够说的详细仔细的,谢谢大家啦~~~~~


最好就是在main.cpp中写几段代码就行。

回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-9-7 16:38:50 显示全部楼层
直接在main.cpp中对lineEdit进行操作,这样可行吗?
能不能给个示例之类的啦,小女子在此谢过
回复

使用道具 举报

累计签到:2088 天
连续签到:7 天
2017-9-8 10:47:27 显示全部楼层
不是很明白,是不是在main.cpp中获取mainwindow输入的数据。
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-9-8 10:55:58 显示全部楼层
程默的叛逆者 发表于 2017-9-8 10:47
不是很明白,是不是在main.cpp中获取mainwindow输入的数据。

对的呀,就是想把mainwindow的数传给main.cpp

点评

用信号槽方式实现 mainwindow代码: main函数代码:  详情 回复 发表于 2017-9-8 11:08
回复

使用道具 举报

累计签到:2088 天
连续签到:7 天
2017-9-8 11:08:13 显示全部楼层
完美中国 发表于 2017-9-8 10:55
对的呀,就是想把mainwindow的数传给main.cpp

用信号槽方式实现
mainwindow代码:
  1. connect(ui->lineEdit, &QLineEdit::textChanged, this, &MainWindow::txtChanged);
复制代码

main函数代码:
  1. QObject::connect(&w, &MainWindow::txtChanged, [=](QString txt){
  2.         qDebug() << txt << endl;
  3.     });
复制代码
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-9-10 11:48:18 显示全部楼层
程默的叛逆者 发表于 2017-9-8 11:08
用信号槽方式实现
mainwindow代码:
main函数代码:

C:\main.cpp:15: error: 'txtChanged' is not a member of 'MainWindow'
     QObject::connect(&w, &MainWindow::txtChanged, [=](QString txt){
                           ^

报错了,mainwindow没有txtchanged这个函数啊

点评

txtchanged是mainwindow里面自定义的一个信号  详情 回复 发表于 2017-9-11 19:23
回复

使用道具 举报

累计签到:2088 天
连续签到:7 天
2017-9-11 19:23:15 显示全部楼层
完美中国 发表于 2017-9-10 11:48
C:\main.cpp:15: error: 'txtChanged' is not a member of 'MainWindow'
     QObject::connect(&w, &Mai ...

txtchanged是mainwindow里面自定义的一个信号
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-9-11 21:03:59 显示全部楼层
程默的叛逆者 发表于 2017-9-11 19:23
txtchanged是mainwindow里面自定义的一个信号

能再麻烦您一下,说得更明白详细一些吗,头文件,cpp文件,main函数 具体怎么写,感觉好像qt小白痴一样

点评

代码都放在附件里面了  详情 回复 发表于 2017-9-12 09:10
回复

使用道具 举报

累计签到:2088 天
连续签到:7 天
2017-9-12 09:10:37 显示全部楼层
完美中国 发表于 2017-9-11 21:03
能再麻烦您一下,说得更明白详细一些吗,头文件,cpp文件,main函数 具体怎么写,感觉好像qt小白痴一样 ...

代码都放在附件里面了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-9-12 10:36:35 显示全部楼层
程默的叛逆者 发表于 2017-9-12 09:10
代码都放在附件里面了

//非常感谢大神提供的代码,小白还有一个问题
//main.cpp
int N;
    QObject::connect(&w, &MainWindow::txtChanged, [=](QString txt){
        qDebug() << txt << flush;
        N=txt.toInt();
    });
    qDebug() <<"mainN"<<N<<endl;


// 上面的用法显示N是只读的,不可写的 error: assignment of read-only variable 'N'
         N=txt.toInt();
          ^
//我想在connect函数的外面调用txt的值,请问该怎么样调用呢,再次感谢~~~~~~
回复

使用道具 举报

累计签到:2088 天
连续签到:7 天
2017-9-12 11:15:25 显示全部楼层
完美中国 发表于 2017-9-12 10:36
//非常感谢大神提供的代码,小白还有一个问题
//main.cpp
int N;
  1. int N=0;
  2.     QObject::connect(&w, &MainWindow::txtChanged, [&](QString txt){
  3.         qDebug() << txt << flush;
  4.         N = txt.toInt();
  5.     });
  6.     while(N ==0){
  7.         QApplication::processEvents(QEventLoop::AllEvents, 100);
  8.     }
  9.     qDebug() << "mainN" << N << flush;
复制代码
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-9-12 11:47:27 显示全部楼层

再次感谢~~~~~~~~~
再次感谢~~~~~~~~~
再次感谢~~~~~~~~~
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-9-12 16:06:02 显示全部楼层

抱歉,大神,打扰了,还想再问一个问题

我想把这个N显示在ui里面的lineedit,请问如何实现呢,谢谢大神了~~~~
回复

使用道具 举报

累计签到:2088 天
连续签到:7 天
2017-9-12 19:11:19 显示全部楼层
可以使用全局变量,不知道你的具体需求是什么,但是建议不要在main函数里面做太多的事情。
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-6-27 16:17:39 显示全部楼层
你好 你的问题解决了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了