我想在Qt中有一个单级菜单小部件,它看起来像一个普通的菜单栏,但不显示下拉菜单时,菜单栏上的一个项目被点击。我的应用程序只需要几个选项,一个单行菜单栏,一次点击或一个快捷键激活似乎是最合适的。
我不想要一个工具栏或一排按钮。我不想设计图标,我更喜欢一个简单的文本为每个选项与快捷键下划线。
我应该使用QMenu
或其他东西来实现这一点吗?
我敢肯定,QToolBar就是你正在寻找的。它是一个工具栏,就像你从ide或Photoshop程序中知道的那样,它使用图标或文本显示选项。
代码示例
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow( QWidget* parent = 0 ) : QMainWindow(parent)
{
QToolBar* toolBar1 = new QToolBar(this);
QAction* action1 = toolBar1->addAction("one");
QObject::connect( action1, SIGNAL(triggered()), this, SLOT(onActionOne()));
action1->setShortcut(QKeySequence("ctrl+o"));
QAction* action2 = toolBar1->addAction("two");
QObject::connect( action2, SIGNAL(triggered()), this, SLOT(onActionTwo()));
action2->setShortcut(QKeySequence("ctrl+t"));
addToolBar(Qt::TopToolBarArea, toolBar1);
}
public slots:
void onActionOne(){ std::cout << "Action one!" << std::endl; }
void onActionTwo(){ std::cout << "Action Two!" << std::endl; }
};