Название: Проблема с кастомными контролами в менюбаре Отправлено: korel от Октября 21, 2010, 10:58 ??? Собственно мне нужно создать, что то типа кастомного меню (кастомные батоны для него есть - просто нужно их отобразить в верхней части окна, чтобы это все выглядело как менюбар).
Сейчас, что я пытался сделать: В дизайнере выбрасываю на форму контролы, после этого создаю лейаут, и в него добавляю эти виджеты. Лейаут в свою очередь кидаю QWidget_у и дальше для мейн виндова setMenuWidget(&m_widget) Но кнопки отображаются срезаными по высоте. А если, просто, кнопку, без помещения ее в лейаут, запиндюрить setMenuWidget(ui.customButton) - то она отображается так как мне нужно. Может кто-то знает, что нужно делать, чтобы создать адекватный менюбар? Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: GreatSnake от Октября 21, 2010, 11:05 Цитировать А если, просто, кнопку, без помещения ее в лейаут, запиндюрить setMenuWidget(ui.customButton) - то она отображается так как мне нужно. Ответ сам напрашивается - смотри лейаут - что-то там не так.Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: korel от Октября 21, 2010, 11:46 Да - в лейауте дело. Я это уже обнаружил. Попробовал еще до того как добалсять виджеты
m_menu_layout.setGeometry(QRect(0, 0, 600, 200)); - таким способом хотел ресайзить лейаут. Но по прежнему виджеты в лейауте отображаются не полность (срезану по высоте). Вообще сейчас попал в какой-то тупик.... ??? Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: GreatSnake от Октября 21, 2010, 11:51 Без кода здесь вам никто не поможет.
Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: korel от Октября 21, 2010, 12:04 Код: TestControl::TestControl(QWidget *parent, Qt::WFlags flags) Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: GreatSnake от Октября 21, 2010, 12:08 Ну, а остальное где?
Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: korel от Октября 21, 2010, 12:14 8) - вот еще код кастомной кнопки - которую я в нескольких экземплярах ложу в лейаут
Код: #ifndef CUSTOMBUTTON_H Код: #include "custombutton.h" Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: GreatSnake от Октября 21, 2010, 12:24 Мде...
Создавать иконку при отрисовке кнопки и там же изменять её размер это ... хм... вообщем я промолчу... Почему в конструкторе кнопки не загрузить иконки и хранить их в статических свойствах класса? Чем для этого не подошел QIcon? Соответсвенно неправильный sizeHint(). Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: korel от Октября 21, 2010, 12:35 Мде... Создавать иконку при отрисовке кнопки и там же изменять её размер это ... хм... вообщем я промолчу... я об этом знал с самого начала. Просто задача стояла - очень быстро набросать... От пока этот код - набросок. т.е. я это держу в памяти - что нужно пофиксить))) Почему в конструкторе кнопки не загрузить иконки и хранить их в статических свойствах класса. Соответсвенно неправильный sizeHint(). в кончтрукторе грузить иконки - это парвильно. И я об этом уже думал. Но хранить как статику.... разве, что массив иконок будет статичным. И каждый обьект - кнопка, будет от туда брать то, что ей нужно. - это как вариант. А на счет sizeHint() - он неправильный потому, что отталкиваюсь от размера шрифта, а нужно от размера иконки. Что то в таком роде? Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: GreatSnake от Октября 21, 2010, 12:42 Цитировать я об этом знал с самого начала. Просто задача стояла - очень быстро набросать... От пока этот код - набросок. В корне неправильный подход.т.е. я это держу в памяти - что нужно пофиксить))) Дело в том что в событии отрисовки вы генерите событие изменения размера, которое в свою очередь тоже генерит событие отрисовки. Спасибо Qt, что от такого изнасилования он не ушел в рекусию и не шлёпнулся. Такие вещи нельзя делать даже в набросках. Соответственно из-за всего этого у вас проблемы с компоновкой. Название: Re: Проблема с кастомными контролами в менюбаре Отправлено: korel от Октября 21, 2010, 13:44 В корне неправильный подход. Дело в том что в событии отрисовки вы генерите событие изменения размера, которое в свою очередь тоже генерит событие отрисовки. Я исправлю все!!! Спасибо за консультацию. |