Qt переопределить строку заголовка и строку меню? - PullRequest
2 голосов
/ 16 сентября 2011

Я начал проект, который планировал, и у меня быстрый вопрос.

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

Есть ли функция, позволяющая быстро сжимать строку заголовка.

Я почти уверен, что мне нужно использовать setMenuWidget () для создания пользовательской строки меню, а затем просто добавить метки, сигналы и другие забавные элементы меню. Правильно ли я, setMenuWidget () все, что мне нужно, кроме функции, которая устанавливает все метки и соединения? Должен ли я создать переменную в классе, или я мог бы просто создать функцию с именем setUpMenuBar ()?

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 сентября 2011

Нужна ли вам переменная-член для виджета пользовательской строки меню, зависит только от того, как вы ее используете. Если все, что вы делаете, это создаете меню, то нет, вам не нужно хранить переменную-член для него. «QMainWindow становится владельцем указателя menuBar и удаляет его в соответствующее время.»

MyMainWindow::setUpMenuBar() {
    MyCustomMenuBar * menubar = new MyCustomMenuBar;
    // add all the menus
    setMenuWidget( menubar );
}  

Вы даже можете получить указатель на строку меню позже:

MyCustomMenuBar * menubar = qobject_cast<MyCustomMenuBar *>( menuWidget() );

Если вам нужен этот указатель чаще, вы можете либо переопределить MyMainWindow :: menuWidget (), либо сохранить указатель как член.

0 голосов
/ 16 сентября 2011

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

...