Название: Виджет-контейнер для других виджетов[Решено] Отправлено: soiam от Май 21, 2012, 14:00 Доброго времени суток!
Пытаюсь создать свой виджет, который бы содержал упорядоченную структуру других виджетов. Есть созданный на основе QWidget класс Код: class QDevControl_Widget : public QWidget Его конструктор Код: QDevControl_Widget::QDevControl_Widget(QWidget *parent):QWidget(parent) Заранее благодарен за помощь. Название: Re: Виджет-контейнер для других виджетов Отправлено: mutineer от Май 21, 2012, 14:02 setLayout(layout);
Название: Re: Виджет-контейнер для других виджетов Отправлено: soiam от Май 21, 2012, 14:05 никакого эффекта.
Название: Re: Виджет-контейнер для других виджетов Отправлено: trot от Май 21, 2012, 14:21 сам объект класса QDevControl_Widget надо разместить в какой-то layout
Название: Re: Виджет-контейнер для других виджетов Отправлено: soiam от Май 21, 2012, 14:24 Да, я в проекте размещаю его в один из лейаутов формы. Хотя в будущем планируется этот виджет drag-and-drop делать
Название: Re: Виджет-контейнер для других виджетов Отправлено: GreatSnake от Май 21, 2012, 14:25 setLayout(layout); Код Как бы уже подразумевает это. По идее этот код должен создать красивую структуру: матрицу 3 на 2 кнопки, под ней поле для ввода числа, а слева label для картинки. Все именно так и получается. С лейаутоми в QDevControl_Widget всё в порядке. Укажи 0 в качестве родителя и сам увидишь.Название: Re: Виджет-контейнер для других виджетов Отправлено: soiam от Май 21, 2012, 14:26 Но что удивительно, оно так не отображается :)
Цитировать Укажи 0 в качестве родителя и сам увидишь. В качестве родителя чего?Название: Re: Виджет-контейнер для других виджетов Отправлено: GreatSnake от Май 21, 2012, 14:32 В качестве родителя чего? QDevControl_WidgetКод
Название: Re: Виджет-контейнер для других виджетов Отправлено: soiam от Май 21, 2012, 14:45 Всё, понял. Я вам немного урезанный класс дал, там было еще несколько функций, которые я посчитал несущественными. Первоначально у меня был класс QBoxLayout и я для него сделал функции hide(), show(),setVisible(), которые отображали либо прятали внутренние виджеты. И забыл их убрать, когда переделал с QBoxLayout на QWidget. Наверное, они конфликтовали как-то. Убрал эти virtual функции, всё заработало.
Большое спасибо |