2015-09-14 5 views
1

Я хотел бы иметь виджет меню уровня в Qt, который выглядит как обычная строка меню, но не отображает выпадающее меню, когда элемент меню нажмите. Моему приложению требуется только несколько вариантов, и одна строка с одним нажатием кнопки или одним нажатием клавиши сочетания клавиш лучше всего подходит.Строка меню Qt без выпадающих меню (строка меню одного уровня)

Я не хочу панель инструментов или ряд кнопок. Я не хочу создавать значки, я предпочитаю простой текст для каждой опции с подчеркнутым сочетанием клавиш.

Должен ли я использовать QMenu или что-то еще для его реализации?

ответ

1

Я уверен, 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; } 
}; 
+0

Я не хочу создавать иконки, я предпочитаю простой текст с сочетание клавиш подчеркнуты. Я редактирую свой вопрос, чтобы было ясно. –

+0

Возможно, тоже. Просто используйте метод 'addAction (const QString &)' QToolBar. Возвращенный указатель действия может быть подключен к слоту, используя сигнал «toggled (bool)» – Gombat

+0

Сигнал 'triggered()', а не 'toggled (bool)'. – Gombat

Смежные вопросы