Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
47 / 42 / 12
Регистрация: 27.08.2012
Сообщений: 290
1

Перемещение окна за панель

20.12.2014, 19:06. Показов 2752. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! У главного окна скрыл бордюр и кнопки. Вверху этой формы установил панельку frame. Как сделать, что бы можно было "схватить" за панельку и перенести всё окно? Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2014, 19:06
Ответы с готовыми решениями:

Перемещение окна
Есть окно без WindowHint(верхней панели с крестиком, свернуть и т.д.) Есть кнопка QPushButton. Надо...

Перемещение окна
Всем привет. Возникла такая ситуация, после вызова maximize необходимо изменить размер окна и его...

Перемещение окна
Здравствуйте, я использую QMouseEvent для перемещения окна без стандартной рамки Windows, но окно...

Стили Qt: Как изменить верхнюю панель окна?
Привет. Как изменить внешний вид компонентов я знаю (QStyleSheet), но вот как изменить верхнюю...

10
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.12.2014, 19:40 2
Попробуй так
Delphi
1
2
3
4
5
6
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
ReleaseCapture;
Form1.perform(WM_SysCommand,$F012,0);
end;
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
20.12.2014, 20:12 3
Лучший ответ Сообщение было отмечено serёга как решение

Решение

Puporev, лол, это не делфи

serёга, первая ссылка гугла
http://qt-project.org/faq/answ... windowhint
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.12.2014, 20:34 4
А по ссылке самый что ни наесть Делфи...
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
20.12.2014, 20:38 5
Puporev, wut?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.12.2014, 20:41 6
Пардон, был уверен что нахожусь в ветке Делфи...
0
47 / 42 / 12
Регистрация: 27.08.2012
Сообщений: 290
22.12.2014, 15:59  [ТС] 7
Я сделал так, чтобы можно было таскать за окно. Но если на форме находятся кнопки, то перемещать форму можно за кнопки. Как сделать так, чтобы за кнопки форма не перемещалась?
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
22.12.2014, 17:13 8
Покажите свой код.
0
47 / 42 / 12
Регистрация: 27.08.2012
Сообщений: 290
22.12.2014, 17:43  [ТС] 9
Весь код уже относительно большой.
К инициализации класса добавил:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::LeftButton) {
       window->move(event->globalPos() - m_dragPosition);
        event->accept();
    }
}
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton) {
        m_dragPosition = event->globalPos() - frameGeometry().topLeft();
        event->accept();
    }
}
А в описания класса:
C++ (Qt)
1
2
3
protected:
    void mouseMoveEvent(QMouseEvent *event);
    void mousePressEvent(QMouseEvent *event);
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
22.12.2014, 18:49 10
Тут или mouse*Event отлавливать в самом панельке вашей, которую вы вверху поставили. Или через eventFilter проверять мышку, там можно будет отследить какой виджет прислал событие и фильтровать все кроме нужного.
0
47 / 42 / 12
Регистрация: 27.08.2012
Сообщений: 290
22.12.2014, 20:44  [ТС] 11
А может есть такая функция, которая возвращает QWidget если курсор наведён на него?

Добавлено через 12 минут
Вот если на панели находятся, то форму перетащить можно и за них. А это убрать?

Вот так переделал условие:

(event->buttons() & Qt::LeftButton & childAt(event->localPos()) != QPushButton)

Конечно компилятор ругается. Как исключить абсолютно все кнопки на панели от перетаскивания за них?
0
22.12.2014, 20:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2014, 20:44
Помогаю со студенческими работами здесь

Запретить перемещение главного окна приложения
Как запретить перемещение главного окна приложения?

Перемещение окна и получение координат центра окна
Всем доброго времени суток. у меня есть два заданя 1.Написать программу, используя средства...

Перемещение панелей, на панель
Как сделать так, что бы можно было панели, перетягивать на 1 главную панель? как в ворде. Главная...

Матрица.Нахождение максимального его перемещение.Через панель программирования.
Задана такая задача: Из 36 положительных, отрицательных и нулевых значений чисел сформируйте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru