![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
anater |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Добрый день.
Проблема в следующем: При создании менеджера размещения в конструкторе менеджер не отрабатывает. Выдается в отладке такая штука. QWidget::setLayout: Attempting to set QLayout "" on qarm "", which already has a layout Уж что только не делал не работает и все тут. Рекомендации прочитать мануал и погуглить не нужны. Имеется код main
хейдер
код класса
|
|
|
![]() |
BRE |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Потому что у QMainWindow есть свой Layout, который ему нужен и переустанавливать его своим не стоит.
Сделай свой виджет, в котором будет все твои виджеты, настрой в нем свой layout и установи этот виджет методом void QMainWindow::setCentralWidget ( QWidget * widget ). |
|
|
anater |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Потому что у QMainWindow есть свой Layout, который ему нужен и переустанавливать его своим не стоит. Сделай свой виджет, в котором будет все твои виджеты, настрой в нем свой layout и установи этот виджет методом void QMainWindow::setCentralWidget ( QWidget * widget ). Спасибо! А как на примере выше изложенного кода это будет выглядеть? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
anater, при работе с QMainWindow, ты всегда создаёшь виджет, который затем помещаешь в главное окно.
Т.е. тебе лучше создать отдельный класс со своими виджетами, например, MainWidget, а затем в конструкторе главного окна: где w - указатель на MainWidget, член-класса главного окнаЛибо, вместо строчки (непосредственно про твой код): this->setLayout(layout); написать:
|
|
|
anater |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем спасибо!
По итогу сделал как:
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 4.6.2025, 7:34 |