首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QShortcut -如何在小部件中正确声明?

QShortcut -如何在小部件中正确声明?
EN

Stack Overflow用户
提问于 2022-04-16 05:11:09
回答 1查看 54关注 0票数 0

我试图使用QShortcut,并在小部件构造函数中声明如下:

代码语言:javascript
复制
   QShortcut  *keyCtrlL;
    keyCtrlL = new QShortcut(this);
    keyCtrlL->setKey(Qt::CTRL + Qt::Key_L);
    connect(keyCtrlL, &QShortcut::activated, this, &MyPage::loadB);

我不确定它是否能工作,即使它编译得很好,因为变量在构造函数中是本地的。因此,我试图将它声明为整个类MyPage的私有变量,

并获得编译错误:

代码语言:javascript
复制
error: cannot initialize a parameter of type 'QWidget *' with an rvalue of type 'MyPage *'
    ui->setupUi(this);
                ^~~~
./qt/forms/ui_mypage.h:69:27: note: passing argument to parameter 'MyPage' here
    void setupUi(QWidget *MyPage)
                          ^
qt/mypage.cpp:153:20: error: no matching constructor for initialization of 'QShortcut'
    keyCtrlL = new QShortcut(this);

甚至MyPage也是从QWidget继承的。为什么会发生这个错误,我该如何修复呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-16 09:32:45

你可能丢失了#include of MyPage报头..。没有它,它就不能将MyPage*向上转换为QWidget*。检查它是否不见了。

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

https://stackoverflow.com/questions/71891288

复制
相关文章

相似问题

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