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

怎么在一个对话框中获得MainWindow中的成员变量值?

9
回复
11049
查看
[复制链接]

尚未签到

来源: 2014-7-9 22:55:54 显示全部楼层 |阅读模式
1Qter豆
qt新人,以前是用MFC的,像MFC有框架类文档类有相应的类指针可以从其他类直接访问其中的数据,类似地对于qt怎么能够在某一个类成员函数中获得MainWindow中的变量呢?

最佳答案

查看完整内容

如果你这个对话框是mainwindow的一个成员,那直接在对话框访问parent就是了
回复

使用道具 举报

尚未签到

2014-7-9 22:55:55 显示全部楼层
hrbypz 发表于 2014-7-11 13:58
mainwindow的定义在main函数,要访问mainwindow中的成员直接在另一个对话框中访问好像不行吧。 ...

如果你这个对话框是mainwindow的一个成员,那直接在对话框访问parent就是了
参与人数 1人气 +1 收起 理由
hrbypz + 1 对我帮助很大!

查看全部评分总评分 : 人气 +1

回复

使用道具 举报

尚未签到

2014-7-10 00:42:45 显示全部楼层
从c++的角度来说,直接访问mainwindow的public成员不就行了?

从qt角度来说,如果mainwindow是父对象的话也好办,直接用parent指针访问
回复

使用道具 举报

尚未签到

2014-7-11 13:58:03 显示全部楼层
Joey_Chan 发表于 2014-7-10 00:42
从c++的角度来说,直接访问mainwindow的public成员不就行了?

从qt角度来说,如果mainwindow是父对象的话 ...

mainwindow的定义在main函数,要访问mainwindow中的成员直接在另一个对话框中访问好像不行吧。
回复

使用道具 举报

尚未签到

2014-7-11 19:58:36 显示全部楼层
Joey_Chan 发表于 2014-7-11 19:34
如果你这个对话框是mainwindow的一个成员,那直接在对话框访问parent就是了

具体怎么做呢?
我先在mainwindow.h中定义了比如Dlg *dlg;
然后mainwindow.cpp初始化的时候用dlg = new Dlg(this);

然后在对话框cpp函数中调用parentWidget()->(某一成员变量)   仍然找不到mainwindow中的成员变量
回复

使用道具 举报

累计签到:6 天
连续签到:1 天
2014-7-11 20:15:03 显示全部楼层
hrbypz 发表于 2014-7-11 19:58
具体怎么做呢?
我先在mainwindow.h中定义了比如Dlg *dlg;
然后mainwindow.cpp初始化的时候用dlg = new D ...

可以在创建对话框的时候,把相应变量以参数形式传入
回复

使用道具 举报

尚未签到

2014-7-11 20:24:09 显示全部楼层
imlison 发表于 2014-7-11 20:15
可以在创建对话框的时候,把相应变量以参数形式传入

参数还挺多的,感觉不是一劳永逸的方法
回复

使用道具 举报

累计签到:6 天
连续签到:1 天
2014-7-11 20:28:00 显示全部楼层
hrbypz 发表于 2014-7-11 20:24
参数还挺多的,感觉不是一劳永逸的方法

或者把mainwindow的指针传入对话框中,然后在对话框里直接访问。
回复

使用道具 举报

尚未签到

2014-7-11 20:31:00 显示全部楼层
imlison 发表于 2014-7-11 20:28
或者把mainwindow的指针传入对话框中,然后在对话框里直接访问。

您能给个例子么。。。哪有mainwindow指针哪里能得到。。。。。。。。
回复

使用道具 举报

尚未签到

2014-7-11 20:49:02 显示全部楼层
Joey_Chan 发表于 2014-7-11 19:34
如果你这个对话框是mainwindow的一个成员,那直接在对话框访问parent就是了

我懂了,,parentwidget要强制转换成mainwindow型的,,多谢
回复

使用道具 举报

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

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