gpt4 book ai didi

c++ - 在 QStackedWidget Item 中通过键盘导航

转载 作者:太空狗 更新时间:2023-10-29 23:04:56 25 4
gpt4 key购买 nike

我正在尝试使用 KeyPressEvent 导航 QStackedWidget 项。但是我做不到。我们应该为 keyPressEvent 使用什么 Signal 函数?

我的代码:

mywindow::mywindow() : QMainWindow()

{

stack = new QStackedWidget();
list1 = new QListWidget();
list2 = new QListWidget();
list3 = new QListWidget();

list1->addItem("Item 1");
list1->addItem("Item 2");

list2->addItem("Item 3");
list2->addItem("Item 4");

list3->addItem("Item 5");
list3->addItem("Item 6");

stack->addWidget(list1);
stack->addWidget(list2);
stack->addWidget(list3);

setCentralWidget(stack);
}

void mywindow::keyPressEvent(QKeyEvent *event)

{

switch(event->key())
{
case Qt::Key_Left:
connect(stack,SIGNAL(KeyPressEvent(QKeyEvent *event)),stack,SLOT(setCurrentIndex(int)));
break;
case Qt::Key_Right:
connect(stack,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));
break;
}
}

最佳答案

您需要获取当前索引,然后手动增加它,然后设置它。该类没有“下一个”方法。所以,你会写这样的东西:

void mywindow::keyPressEvent(QKeyEvent *event)

{

switch(event->key())
{
case Qt::Key_Left:
stack->setCurrentIndex(stack->currentIndex() - 1); // <--- Added
break;
case Qt::Key_Right:
stack->setCurrentIndex(stack->currentIndex() + 1); // <--- Added
break;
}
}

基于该 QStackedWidget 实现,您可能需要自行处理索引的不足和溢出,因此请注意这一点。

关于c++ - 在 QStackedWidget Item 中通过键盘导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989281/

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