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



我正在尝试使用QShortcut,并在小部件构造函数中声明:

   QShortcut  *keyCtrlL;
    keyCtrlL = new QShortcut(this);
    keyCtrlL->setKey(Qt::CTRL + Qt::Key_L);
    connect(keyCtrlL, &QShortcut::activated, this, &MyPage::loadB);

我不确定它是否会工作,即使它编译得很好,因为变量在构造函数中是局部的。所以我试图声明它作为一个私有变量为整个类MyPage,

和编译错误:

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);

甚至我的页面是继承自QWidget。为什么会发生这个错误,我如何修复它?

您可能缺少MyPage头的#include…没有它,就不能将MyPage*上推到QWidget*。检查是否有遗漏

相关内容

  • 没有找到相关文章

最新更新