Pull to refresh

Comments 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.
Впрочем, делать свои кастомные виджеты имеет смысл, чтобы сделать, например, как вертикальный тулбар посередине Тотал Командера.
Sign up to leave a comment.

Articles