2016-04-18 2 views
0

В моем довольно сложном приложении я создаю несколько QmainWindows, которые показывают/скрывают в зависимости от условий. Чтобы сделать их поведение более детерминированным, я хочу установить свою позицию, используя setPosition(). Проблема в том, что QMainWindow не получен из QWindow, как я предполагал. Таким образом, он не имеет setPosition(). Мои вопросы:Как установить положение QMainWindow?

  • Почему QMainWindow не является производным от QWindow? (Просто мое любопытство)

  • Как установить положение QMainWindow?

+2

Почему 'двигаться (целое х, у ИНТ)' не подходит для вас? – Tarod

+0

QWindow - это скорее новый класс и является адаптером между автономными и независимыми от платформы пользовательскими окнами. QWidget исторически является родителем для большинства классов Qt UI. На самом деле QWindow еще долго не существует. И да, QMainWindow получен из QWidget. – AlexanderVX

+0

@Tarod, потому что я нашел setPosition() :). А также, потому что я пытаюсь установить перед тем, как показать() это. Спасибо, я необразован в истории Qt. – katang

ответ

1

(@Tarod и @AlexanderVX уже дал ответы в комментарии, но здесь они снова)

Почему QMainWindow не является производным от QWindow?

Главным образом потому, что QMainWindow существовал задолго до QWindow был изобретен.

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

Как установить положение QMainWindow?

Таким же образом установить положение любого другого QWidget: http://doc.qt.io/qt-5/qwidget.html#pos-prop (QWidget::move())

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