2009-08-13 1 views
3

Возможно ли создание пользовательских областей док-станции с использованием Qt 4.4. Я знаю, что это возможно в Qt 3, как это предлагает document. Выдержка из документа «... Если вам нужно создать свои собственные области стыковки, мы предлагаем создать подкласс QWidget и добавить Q3DockAreas в ваш подкласс ...». Тем не менее, мне кажется, что в Qt 4 Q3DockArea был удален, и теперь сам QMainWindow имеет области стыковки. Я в основном хочу иметь собственный виджет области док-станции, в который я могу подключить виджеты. Этот виджет области док-станции может находиться где угодно в приложении. Любые идеи о том, как я могу это сделать?Пользовательская область док-станции с использованием Qt 4.4

ответ

4

Сначала Q3DockArea не был удален в Qt4, на самом деле он был добавлен. Класс, который был удален, был QDockArea. Вы можете использовать эти классы Q3 *, если у вас старый код, для чего они созданы.

Но я бы не рекомендовал использовать классы совместимости. Как насчет использования QMainWindow, как QWidget. Создайте его с родительским виджетами, но без меню, панели инструментов, панели состояния и отмените статус верхнего уровня с помощью setWindowFlags() и т.п.

Вы можете использовать его как старый стиль QDockArea, поместить его туда, где хотите, и добавить QDockWidgets.

Кроме того, в настоящее время Qt версии 4.5.2, нет необходимости использовать устаревшие версии ;-)

+0

Проблема я вижу с созданием QMainWindow как плавающая область является то, что вы можете состыковать только слева, справа , сверху и снизу QMainWindow. Поэтому, когда вы уронили что-то в этой области, он не будет заполнять весь виджет, а будет размещаться только на присоединяемых участках. Это не выглядит красиво. ;) – Juba

+0

Это не так, по крайней мере, если в этом QMainWindow нет центрального виджета, единственный док будет охватывать всю область, если это разрешено. Области доков не имеют собственного предела по размеру. Но используйте классы Q3Dock *, если вы чувствуете, что они ведут себя так, как хотите. Или напишите свой собственный класс QDockArea, используя док-станцию ​​QMainWindow в качестве шаблона. – hirschhornsalz

 Смежные вопросы

  • Нет связанных вопросов^_^