QShortcut - 如何在小部件中正确声明?
QShortcut - how to correcly declare in widget?
我正在尝试使用 QShortcut,并在小部件构造函数中声明如下:
QShortcut *keyCtrlL;
keyCtrlL = new QShortcut(this);
keyCtrlL->setKey(Qt::CTRL + Qt::Key_L);
connect(keyCtrlL, &QShortcut::activated, this, &MyPage::loadB);
我不确定它是否会工作,即使它编译得很好,因为变量在构造函数中是局部的。
所以我试图将其声明为整个 class 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);
连MyPage都是继承自QWidget。
为什么会出现此错误,我该如何解决?
您可能缺少 MyPage
的 #include
header...没有它,它无法将 MyPage*
向上转换为 QWidget*
。检查是否没有丢失
我正在尝试使用 QShortcut,并在小部件构造函数中声明如下:
QShortcut *keyCtrlL;
keyCtrlL = new QShortcut(this);
keyCtrlL->setKey(Qt::CTRL + Qt::Key_L);
connect(keyCtrlL, &QShortcut::activated, this, &MyPage::loadB);
我不确定它是否会工作,即使它编译得很好,因为变量在构造函数中是局部的。 所以我试图将其声明为整个 class 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);
连MyPage都是继承自QWidget。 为什么会出现此错误,我该如何解决?
您可能缺少 MyPage
的 #include
header...没有它,它无法将 MyPage*
向上转换为 QWidget*
。检查是否没有丢失