LINUX.ORG.RU

[Gtk] Наложение одного виджета на другой


0

0

Есть обычный виджет, который запакован в HBox. Мне нужно поверх него на какой-то позиции показывать другой виджет. Как это можно сделать? Я смотрю на GtkFixed, но мне пока не удалось сделать так, чтобы нижний виджет растягивался в своем HBox.

★★

на правильность не претендую, но
прятать ненужный виджет?

yltsrc ()
Ответ на: комментарий от yltsrc

Мне нужно, чтобы они оба были видны одновременно. Верхний виджет не обязан полностью перекрывать нижний.

troorl ★★ ()
Ответ на: комментарий от troorl

>Мне нужно, чтобы они оба были видны одновременно

Просто интересно, а зачем - что за задача?

golodranez ★★★★ ()
Ответ на: комментарий от golodranez

Есть виджет, который что-то отображает. Я хочу вынести управляющий элемент поверх этого виджета, как это делается в современных интерфейсах.

troorl ★★ ()

посмотрите в сторону goocanvas

ananas ★★★★★ ()
Ответ на: комментарий от troorl

да, не совсем правильно понял что вам нужно.

самый простой способ - в hbox воткнуть еще один box со всеми нужными вам виджетами. и делать gtk_widget_show() только нужному в данный момент, остальные держать скрытыми

ananas ★★★★★ ()
Ответ на: комментарий от ananas

Мне нужно, чтобы они оба были видны в один и тот же момент времени. Вот картинка, а то я наверное плохо выражаю свои мысли:

http://img651.imageshack.us/img651/3905/example.png

Идея в том, чтобы, при наведении курсора в определенную область первого виджета, появлялся второй виджет. Хочу это сделать, чтобы не загромождать интерфейс ненужными кнопками. Честно говоря, не помню gtk-программы, которая бы так делала. Поэтому негде смотреть.

troorl ★★ ()
Ответ на: комментарий от troorl

впихнуть второй виджет в отдельное окно, задав ему тип GTK_WINDOW_POPUP, и вызывать из обработчика motion-notify-event

ananas ★★★★★ ()
Ответ на: комментарий от troorl

А если положить Fixed в Box и нижний виджет при ресайзе Fixed ресайзить соответственно а у верхнего высчитывать позицию и перемещать?

anotheranonymous ()
Ответ на: комментарий от ananas

Вот это буду пробовать. О результатах отпишусь чуть позже.

troorl ★★ ()
Ответ на: комментарий от troorl

>виджет, который что-то отображает. Я хочу вынести управляющий элемент поверх этого виджета

а можно примерчик в каком приложении и где такое?

anonymous ()
Ответ на: комментарий от anonymous

Скоро будет в моем (смайлик). В линуксе я уже говорил, что не помню такого, а во всяких макосях и вендах - полно. Первое, что приходит на ум - это IE6 при наведении мышки на картинку.

Да, и у меня получилось, работает вполне нормально. Ананас, спасибо.

troorl ★★ ()
Ответ на: комментарий от troorl

так label есть у виджетов...
или я чего-то недопонимаю?

yltsrc ()
Ответ на: комментарий от yltsrc

А label здесь при чем? Лично мне нужно показывать ToolButton для управления отображением, грубо говоря. Я не хочу делать для двух кнопок отдельную панель. Поэтому вывожу их поверх, когда надо. Как мне в этом занятии поможет label?

troorl ★★ ()
Ответ на: комментарий от troorl

>IE6 при наведении мышки на картинку.

ааа, только теперь понял. я бы просто новый виджет(в идеологии Qt) вывел. ИМХО это самое очевидное.

golodranez ★★★★ ()

Есть альтернативы. Первый конечно-же popup window. Еще посмотрите, не подходит ли вам

void  gtk_tooltip_set_custom  (GtkTooltip *tooltip,GtkWidget *custom_widget);
vertexua ★★★☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.