gpt4 book ai didi

c++ - QShortcut 不工作

转载 作者:太空狗 更新时间:2023-10-29 20:58:29 24 4
gpt4 key购买 nike

我似乎无法使用我的键盘快捷键。这是代码:

class Interface : public QObject 
{
Q_OBJECT

private:

QMainWindow myWindow;
QWidget mainWidget;
QShortcut shortcut;

public:

Interface();
~Interface();
void show(void);

public slots:

void haha(void);
};

Interface::Interface() :
QObject(),
shortcut(QKeySequence(Qt::Key_Enter), &mainWidget)
{
myWindow.setFixedSize(1200, 600);
myWindow.setCentralWidget(&mainWidget);
QObject::connect(&shortcut, SIGNAL(activated()), this, SLOT(haha()));
}

void Interface::show(void)
{
myWindow.show();
}

void Interface::haha(void)
{
std::cout << "foo" << std::endl;
}

我的主要功能是:

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

Interface myInterface;
myInterface.Show();
return app.exec();
}

它编译时没有任何警告/错误,但是当我执行它时,当我按 Enter 时没有打印“foo”。我已经在网上查过了,但我没有找到足够接近的东西。如果我错过了相关内容,我很抱歉。

最佳答案

Qt::Key_Enter 指的是键盘上的键。如果您希望在按下键盘上的主 Enter 键时调用槽,则应使用 Qt::Key_Return:

Interface::Interface() : 
QObject(),
shortcut(QKeySequence(Qt::Key_Return), &mainWidget)
{
myWindow.setFixedSize(1200, 600);
myWindow.setCentralWidget(&mainWidget);
QObject::connect(&shortcut, SIGNAL(activated()), this, SLOT(haha()));
}

关于c++ - QShortcut 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27590083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com