Название: Слой в докВиджете Отправлено: Disa от Январь 20, 2012, 10:58 Добрый день снова. Продалжаю ковыряться в Qt, с переодическими натыканиями на грабли :(
В общем почему-то не отображает слой (который по строкам) в док виждете: Инициализация док виджета: Код
Конструктор класса terminal_editor: Код
Без введения слоя - либо кнопку, либо линию отображает правильно. Но с добавлением какого-либо варианта компановки по слоям - отказывается (пробовал еще некоторые варианты, писал основываясь на исходниках о слоях с сайта для разработчиков Нокии (http://developer.qt.nokia.com/doc/qt-4.8/widgets-lineedits.html)) Спасибо! Название: Re: Слой в докВиджете Отправлено: Disa от Январь 20, 2012, 15:49 Попробовал вот так, тоже ничего кроме пустого тулбара :(
Код
MainWindow наследован от QMainWindow, но не уверен что это может играть роль. Доквиджет есть, внутрених слоев нет :( Название: Re: Слой в докВиджете Отправлено: Witcher от Январь 23, 2012, 00:10 Случаем не под Windows кодишь?
Просто в линукс все норм, а в виндовс такая же фигня. Доквиджет либо отрывать приходиться. либо панель(или groupbox) ставить, а поверх уже то что нужно. Это чисто мои наблюдения,возможно ошибаюсь Название: Re: Слой в докВиджете Отправлено: Disa от Январь 23, 2012, 08:40 Под MacOs 10.6.
Пока в процессе гугления проблемы, потому что даже с QFormLayout как нужно что-то не выходит, а пихать все по отдельности (кнопки, редакторы картинок и прочее) в QDockWidget не хочется, тк получается какая-то кривая логика. Название: Re: Слой в докВиджете Отправлено: Disa от Январь 23, 2012, 09:19 Проблема решилась при внимательном перечитывании документации (грешен переодической невнимательностью).
Если кому интеренсно смысл следующий: QDockWidget является оберткой для дочерних виджетов: Цитировать A QDockWidget acts as a wrapper for its child widget, set with setWidget(). Custom size hints, minimum and maximum sizes and size policies should be implemented in the child widget. QDockWidget will respect them, adjusting its own constraints to include the frame and title. Size constraints should not be set on the QDockWidget itself, because they change depending on whether it is docked; a docked QDockWidget has no frame and a smaller title bar. И вследствии этого не может отображать полноценно слой, тк тот же QFormLayout является детём QLayout. Решение (по мне так это хак): Сделать накой-нибудь QWidjet (QFrame например), в него засовывать слой и потом отображать в доквиджете: Код
Такое решение проблемы правда вызывает небольшие проблемы с моими сигналами и слотами, но ничего :) |