Qt菜单栏没有下拉菜单(单级菜单栏)



我想在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; }
};

最新更新