나는 GtkMenu 위젯을 가지고 있으며 버튼 클릭시 화면에 추가하려고합니다. 하지만 마우스 위치에 추가되지만 버튼의 끝 부분에 추가하고 싶습니다. 위젯 같은, 내가 팝업 메뉴를 추가하려면 다음 코드를 사용하고Gtk 위젯의 끝 가장자리에 GtkMenu 위젯을 추가하는 방법
+-------+
|BUTTON |
+-------+
+------------+
|Menu Item 1 |
|Menu Item 2 |
+------------+
는
// Add popup menu.
gtk_menu_popup(GTK_MENU (widget), NULL, NULL, NULL, NULL,
bevent->button, bevent->time);
확인이 기능을 추가하지만, 팝업 메뉴가 ...
하지 버튼 위젯의 끝에서 윈도우의 마지막에 추가됩니다
void set_position (GtkMenu *menu, gint *px, gint *py, gboolean *push_in, gpointer data)
{
gint w, h;
GtkBuilder *builder = GetBuilderPointer();
GtkWidget *button = GTK_WIDGET(gtk_builder_get_object(builder, "button_presence"));
gdk_window_get_size (button->window, &w, &h);
gdk_window_get_origin (button->window, px, py);
*py = h;
printf("\n\n w[%d] h[%d] px[%d] py[%d]\n\n", w, h, *px, *py);
*push_in = TRUE;
}
PRINTF는 w
출력을 제공한다 [350] H [400] PX [341] 피리 [607]
나 X, Y, 높이, 버튼의 폭을 검색 할 아니다 위젯 ...
참고 :이 버튼은 (GtkHBox + (GtkImage + GtkLabel))이있는 맞춤 위젯입니다.
감사합니다.
감사합니다. 이 기능을 추가했지만 여전히 문제가 있습니다. 문제의 바다를 업데이트하십시오. – User7723337