【发布时间】:2014-02-02 08:00:34
【问题描述】:
我想从QToolButton 切换到QToolBar 中的另一个。我用过QStackedWidget,从一个widget 移动到另一个太简单了,但在这里我无法通过使用keyReleaseEvent 来了解如何移动。
mywindow::mywindow() : QMainWindow()
{
widget = new QWidget();
setCentralWidget(widget);
tool = new QToolBar();
vertical = new QVBoxLayout();
button1 = new QToolButton();
connect( button1, SIGNAL(clicked()), this, SLOT(fileNew()) );
button2 = new QToolButton();
button3 = new QToolButton();
button1->setIcon(QIcon("download.jpg"));
button1->setGeometry(0,0,100,200);
button2->setIcon(QIcon("images.jpg"));
button3->setIcon(QIcon("settings-icon.jpg"));
//stack1->addWidget(button1);
//stack1->addWidget(button2);
//stack1->addWidget(button3);
tool->addWidget(button1);
tool->addWidget(button2);
tool->addWidget(button3);
//tool->addWidget(stack1);
vertical->addWidget(tool);
widget->setLayout(vertical);
}
void mywindow::keyReleaseEvent(KeyEvent *event)
{
switch(event->key())
{
case:Qt::Key_Left:
}
}
【问题讨论】:
-
使用`QToolBar::addAction()`向工具栏添加按钮不是更容易吗?
-
好的,我将使用 addAction 添加按钮。但是如何从一个按钮导航到另一个按钮?
-
对于导航或触发特定按钮,您可以使用
QAction::setShortcut()函数为每个按钮分配一个快捷方式。 -
我不想添加快捷方式。我想使用 KeyReleaseEvent 进行导航
-
这叫焦点。例如
if (button1->hasFocus()) { button2->setFocus(); }
标签: c++ qt qtgui qmainwindow qtoolbar