Найти - Пользователи
Полная версия: как в pyGTK перемещать окно мышью?
Начало » GUI » как в pyGTK перемещать окно мышью?
1
strobe
Подскажите как в pyGTK сделать, чтобы окно можно было перемещать при нажатой кнопке мыши в области окна? надо отлавливать нажатие кнопки, отслеживать координаты курсора и двигать по ним окно или есть способ по проще?

еще как можно сделать окно которое отдетачивается от handlebox - поверх всех окон - в документации написано про простые окна, что не рекомендуется делать т.к. этим должен заниматься виндовс менеджер но на win его как такового нет ..а у handlebox даже и свойства такого нет
The gray Cardinal
Под Gnome любое окно можно перемещать при нажатой кнопке мыши с альтом. Под виндой есть специальные утилиты, которые могут это эмулировать. Имхо, изобретать здесь лисапед не имеет смысла, овчинка не стоит выделки.
strobe
а что за утилиты? если такие которые можно встроить в приложение?
в общем надо это для того чтобы сделать нечто похожее на “корзинку” как например у flashget, в которую пользователь может перетащить драг анд дропом файлы. Помнится в linux у kget тоже есть такая - в виде синей стрелки, да и если вспомнить у многих прог есть подобные окна.

Может я проcто не понимаю и пытаюсь делать это с помощью окна а нужен какой-то другой виджет или еще что?
The gray Cardinal
Скажу честно, утилит, которые можно “встроить в приложение” - не знаю. Есть утилита AutoHotkey, на скриптовом языке которой можно написать скрипт, который даст возможность перемещать любое окно таким способом.
P.S. Может, насчёт “овчинки” я и не прав.
strobe
вот что то похожее есть в доке:
gtk.Window.begin_move_drag

def begin_move_drag(button, root_x, root_y, timestamp)

button :
the mouse button that initiated the drag

root_x :
the X position where the user clicked to initiate the drag, in root window coordinates

root_y :
the Y position where the user clicked to initiate the drag

timestamp :
the timestamp from the click event that initiated the drag

The begin_move_drag() method starts moving a window when the user presses the mouse button specified by button at the location specified by root_x and root_y at the time specified by timestamp. This method is used if an application has window movement grips. When PyGTK can support it, the window movement will be done using the standard mechanism for the window manager or windowing system. Otherwise, PyGTK will try to emulate window movement, potentially not all that well, depending on the windowing system.
только не пойму от куда все это : “button, root_x, root_y, timestamp” взять? у меня опыт c gtk да и вобще с gui не большой)
gmorgunov
Привет.
Я нашел у себя в SUSE примерчик DragDropDemo.py и к нему dndpixmap.py ( образы открытой и закрытой корзины
- Trash). Если хотите могу переслать. Но там непросто все(имхо) :)
strobe
да этот примерчик есть я собственно им и пользуюсь, но там нет ничего насчет того, чтобы перемешать окна, в принципе да через драг энд дроп по всей видимости можно это сделать т.е как только наступает событие захвата надо отслеживать положения курсора и соответственно двигать окно по этим координатам, но это кажется слишком сложным решением чтобы было правдой. Мне думается способ перемещения окна должен был предусмотрен в самом виджете.

что это за функция gtk.Window.begin_move_drag ? не она ли
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB