Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Doszhan от Февраль 20, 2011, 20:47



Название: menuBar не в MainWindow.cpp
Отправлено: Doszhan от Февраль 20, 2011, 20:47
Здравствуйте,

Раньше создавал menuBar в файле mainwindow.cpp

Код:
#include "mainwindow.h"
#include <QtGui>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QMenu *fileMenu = new QMenu;
    fileMenu = menuBar() -> addMenu("&File");
}

Как сделать menuBar в QMainWindow(parent), а в QWidget(parent)?

Делал "по-старому", появилась ошибка: 'menuBar' was not declared in this scope

Код:
  fileMenu = QMainWindow::menuBar() -> addMenu("&File");
Теперь появляется ошибка:
cannot call member function 'QMenuBar* QMainWindow::menuBar()' without object

Как мне осуществить menuBar?


Название: Re: menuBar не в MainWindow.cpp
Отправлено: alexman от Февраль 20, 2011, 21:24
Код:
    QMenu *fileMenu = new QMenu;
    fileMenu = menuBar() -> addMenu("&File");
Зачем память выделяете? Меню создается внутри addMenu!

Код:
QMainWindow::menuBar()
не статическая функция.

QMenuBar - наследник от QWidget. То есть необходимо использовать лайауты для добавления на виджет...


Название: Re: menuBar не в MainWindow.cpp
Отправлено: Doszhan от Февраль 20, 2011, 21:44
alexman, большое спасибо. Наконец-то сдам этот долбаннай калькулятор :)