Как стать автором
Обновить

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

Я не совсем понял, зачем тут таймеры и все эти обработчики?
Всё же из коробки работает, без написания кода. Просто правильно лэйауты расставить.

Это действительно излишняя реализация. Наследуем два виджета от QMainWindow, бросаем на основное окно в сплиттер. Наследование от QMainWindow нужно чтобы можно было добавить тулбар в виджет.

А оно действительно нужно? :)
Первое и главное — надо понять, у нас SDI или MDI. Но как по мне — MDI это уже прошлый век.
А дальше уже плясать от этого. Мне очень сложно представить необходимость таких тулбаров.
Но в любом случае — статья про компоновку кнопочек в редакторе это не уровень хабра.

Я — начинающий разработчик и опыта у меня не много. Когда я искал в интернете информацию по реализации данного интерфейса, найти мне удалось довольно таки мало. Теперь же по подобным запросам есть страничка на хабре, где другие разработчики могут ознакомиться с написанным мною кодом и поделиться своим опытом, что, как мне кажется, очень даже хорошо. За критику же благодарю, критика всегда полезна :)

Для начала надо оформить весь код в виде отдельного виджета, а не химичить с QMainWindow.
А потом можно сделать репозиторий на github с хорошим readme. Поисковики вас проиндексируют. Либо написать вопрос/ответ на stackoverflow.
Всё таки Хабр — ресурс профессиональный. Если все начнут писать сюда тотуриалы для джунов вида «как перетащить виджет на форму», то ресурс умрёт из-за низкокачественного контента.

Согласен, это верно. Впредь постараюсь не допускать ошибок, которые допустил при написании данной статьи. Еще раз спасибо за ценные советы.
В таком виде возможно и нет, но мне периодически надо прикрутить тулбар с кнопками (QAction) к виджету, который не является окном и лежит где-то внутри интерфейса. Ниже написали, что тулбар из кода можно положить в любой лейаут (действительно, не знал о такой возможности), но лично мне набрать интерфейс в дизайнере быстрее, проще, чище и нагляднее, чем собирать его из кода, поэтому наследование виджета от QMainWindow это вполне валидный прием.

Наследование от QMainWindow не всегда нужно. QToolbar прекрасно добавляется в любой компоновщик.

Просто об этом никто не знает, потому что QtDesigner этого не умеет :)

15 лет назад это решалось бросанием на форму стандартного компонента в Дельфи.

Так оно и сейчас так же решается

Мануалы не читай, сразу код пиши :)

Я бы каждую панель делал как QVBox { QDockArea, QWidget }, а QToolbar после создания сразу докал через QDockArea::moveDockWindow.
Т.е. примерно такой лэйаут:
userPanel := QVBox { QDockArea, QWidget }
QMainWindow {
    QSplitter {
        userPanel,
        userPanel
    }
}

И остается еще место под главный тулбар QMainWindow.
Впрочем, делать свои кастомные виджеты имеет смысл, чтобы сделать, например, как вертикальный тулбар посередине Тотал Командера.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории