Как удалить панель из QMainWindow

#qt #toolbar #statusbar

#qt #панель инструментов #строка состояния

Вопрос:

Я пытаюсь удалить эту панель, но не могу от нее избавиться (она находится прямо под панелью инструментов):

введите описание изображения здесь

Как называется эта панель, как я могу получить к ней доступ? Спасибо.

Ответ №1:

То, что вы вызываете, на самом toolbar деле является строкой меню, а то, что вы вызываете, на самом other bar деле является панелью инструментов emtpy.

Наиболее вероятная причина, по которой у вас пустая панель инструментов, заключается в том, что вы создали свое окно с помощью QtDesigner. Если вы выберете a QMainWindow в качестве отправной точки, он автоматически добавит в окно пустую панель меню и пустую панель инструментов. Если вам не нужна панель инструментов, найдите ее в инспекторе объектов с правой стороны, щелкните правой кнопкой мыши и выберите Remove Toolbar 'mainToolbar' (или любое другое имя по умолчанию).

Ответ №2:

Если вы добавили эту панель инструментов, у вас, вероятно, есть указатель на нее? Если да, вы можете просто вызвать:

 removeToolBar(toolbar);
  

в вашем QMainWindow классе. В противном случае вы можете удалить все панели инструментов из главного окна как:

 QList<QToolBar *> allToolBars = mainWindow->findChildren<QToolBar *>();
foreach(QToolBar *tb, allToolBars) {
    // This does not delete the tool bar.
    mainWindow->removeToolBar(tb);
}
  

Комментарии:

1. Я не добавлял эту панель инструментов, она поставляется с каждым QMainWindow по умолчанию.

2. @xpg94, правда? Я не вижу панели инструментов при создании экземпляра QMainWindow.

3. Вы неправильно меня поняли. Я не говорю о панели инструментов, я говорю о другой «панели», о том, что я пытался показать на изображении, которое я загрузил с моим вопросом.

4. @xpg94 То, что вы показали, — это панель инструментов (чуть ниже строки меню). Вы можете взглянуть на qt-project.org/doc/qt-4.7/qmainwindow.html#removeToolBar чтобы увидеть варианты его удаления. Если вы создаете свое окно в Qt Designer, проверьте qt-project.org/doc/qt-5/designer-creating-mainwindows.html чтобы узнать, как удалить панель инструментов.

5. Вы правы. Кажется, я вас неправильно понял в конце. Проблема решена, большое вам спасибо.

Ответ №3:

Ниже немного добавляется к ответу @RobbieE.

При создании QMainWindow формы она создается mainToolBar для пользователя.

Если щелкнуть по ней правой кнопкой мыши и выбрать Remove Toolbar 'mainToolBar' , она исчезнет.

Или в коде в верхней части вашего конструктора:

 ui->setupUi(this);

delete ui->mainToolBar; // add this line
  

Надеюсь, это поможет.

Комментарии:

1. Название вашей строки меню может отличаться. Моим по умолчанию была панель меню, поэтому: удалить пользовательский интерфейс-> панель меню;