首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QPointer到MainWindow

QPointer到MainWindow
EN

Stack Overflow用户
提问于 2015-02-08 07:48:27
回答 1查看 596关注 0票数 1

我正在创建一个对话框窗口,并想知道如何传递指向它的MainWindow指针?

比如说,我需要访问对话框中的MainWindow中的getter方法。

MainWindow声明直接来自向导:

代码语言:javascript
复制
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

在我的对话中:

代码语言:javascript
复制
QPointer <MainWindow> mainwindow;

在构造函数中:

代码语言:javascript
复制
MyDialog::MyDialog(MainWindow *mw_ptr, QWidget *parent) :
    QDialog(parent),
    ui(new Ui::SceneDialog)
..
mainwindow = mw_ptr;

这给出了错误:从类型'MainWindow*‘到键入'QPointer::QObjectType* {又名QObject*}’的无效static_cast。

我也不知道为什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-08 09:22:12

使用投射将指针转换为MainWindow类型,而且由于文档并不表示使用空指针构造QPointer是安全的,所以可以更安全地执行此操作

代码语言:javascript
复制
MainWindow* ptr = qobject_cast<MainWindow*>(mw_ptr);
if(ptr != 0)
    mainwindow = ptr;

或者另一种方法是使用信号和插槽在主窗口和对话框之间进行通信。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28391779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档