Russian Qt Forum
Июля 04, 2025, 01:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

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

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

Сообщений: 4747



Просмотр профиля 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.808 секунд. Запросов: 22.