Russian Qt Forum
Сентябрь 30, 2024, 16:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Виджет с креплением  (Прочитано 5860 раз)
Xambey
Гость
« : Март 10, 2016, 19:11 »

Здравствуйте Форумчане! Подскажите, можно ли (и если можно как, реализовать) сделать QWidget, с креплением для QPushButton . P.s я хочу сделать сетку из таких QWidget с возможностью перемещения кнопок между ними. Заранее Спасибо!
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Март 10, 2016, 19:18 »

что такое «крепление»?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #2 : Март 10, 2016, 19:59 »

Видимо он имеет что то типо координатной сетки с прилипанием к ней при перемещении QPushButton мышкой.

Да, можно сделать QWidget с креплением для QPushButton. Теперь осталось понять чего вы хотите Веселый
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #3 : Март 10, 2016, 20:32 »

Сделать это можно. Сложность зависит от того, насколько красиво это должно выглядеть в плане внешнего вида и анимации. Для простого случая должно хватить одного QWidget с QGridLayout, в ячейках которого будут располагаться QPushButton. Для перетаскивания, скорей всего, придётся воспользоваться Drag and Drop. Там внизу есть примеры про перетаскивание, возможно они помогут.
Записан

Пока сам не сделаешь...
Xambey
Гость
« Ответ #4 : Март 10, 2016, 23:09 »

Сделать это можно. Сложность зависит от того, насколько красиво это должно выглядеть в плане внешнего вида и анимации. Для простого случая должно хватить одного QWidget с QGridLayout, в ячейках которого будут располагаться QPushButton. Для перетаскивания, скорей всего, придётся воспользоваться Drag and Drop. Там внизу есть примеры про перетаскивание, возможно они помогут.

Вы имеете ввиду, что каждый qwidget, будет иметь в себе слой, в который и будет крепиться переместившиеся кнопка? Если да, то вопрос, как 'отлавливать' тот момент, что кнопка попала в зону 'крепления', спасибо
Записан
Xambey
Гость
« Ответ #5 : Март 10, 2016, 23:11 »

Видимо он имеет что то типо координатной сетки с прилипанием к ней при перемещении QPushButton мышкой.

Да, можно сделать QWidget с креплением для QPushButton. Теперь осталось понять чего вы хотите Веселый
Сетка шахмат,  состоящая из виджетов клеток(qwidget), и к каждому может прикрепляться кнопка
Записан
Bepec
Гость
« Ответ #6 : Март 10, 2016, 23:31 »

При движении мыши с зажатой кнопкой генерируется событие MouseMove.
так же у каждого виджета имеются события входа мыши и выхода из своего пространства. Вам остаётся только написать проверки на наличие кнопки и заставить кнопку перетягиваться.

Но опять всё зависит от конечной цели. Мб лучше будет один виджет, который будет разбит на клетки Веселый
Записан
Smogg
Гость
« Ответ #7 : Март 11, 2016, 03:32 »

Драгэндроп, определенно. Реализация может сперва и покажется переусложненной, но там есть все, что вам надо: событие начала таскания баттона, событие позиционирования баттона, гарантированное оповещение о успехе или неуспехе перетаска.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Март 11, 2016, 12:25 »

Сетка шахмат,  состоящая из виджетов клеток(qwidget), и к каждому может прикрепляться кнопка
Не видно зачем каждую клетку делать виджетом

Вы имеете ввиду, что каждый qwidget, будет иметь в себе слой, в который и будет крепиться переместившиеся кнопка? Если да, то вопрос, как 'отлавливать' тот момент, что кнопка попала в зону 'крепления', спасибо
Какой "слой"? Зачем вообще выдумывать неестественный термин "крепление"? Нужно чтобы фигура перетаскивалась и встала в нужную клетку? Это делается простейшими средствами - перекрытием mousePressed/Released/Moved и даже без всякого drag'n'drop
Записан
Bepec
Гость
« Ответ #9 : Март 11, 2016, 12:32 »

Тут важна конечная цель. А без неё можно что угодно фантазировать Веселый
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #10 : Март 11, 2016, 13:05 »

Вы имеете ввиду, что каждый qwidget, будет иметь в себе слой, в который и будет крепиться переместившиеся кнопка? Если да, то вопрос, как 'отлавливать' тот момент, что кнопка попала в зону 'крепления', спасибо

Можно в одном qwidget располагать несколько кнопок, которые будут иметь позиции и размеры в соответствии с ячейками QGridLayout. Вообще по-разному можно делать, зависит от потребностей. Изучайте примеры и выбирайте подходящий вариант.
Записан

Пока сам не сделаешь...
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #11 : Март 11, 2016, 14:06 »

в итоге что надо то? редактор типа Qt Designer?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Xambey
Гость
« Ответ #12 : Март 11, 2016, 18:12 »

Спасибо всем! Вместе вы составили полную картину того, что мне надо:)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.075 секунд. Запросов: 22.