2016-06-04 3 views
2

이것은 가능한지와 어떻게 수행하는지 알아 내려고 노력해 왔습니다. Gtk + 컨트롤/위젯을 웹킷보기에 임베드 할 수 있기를 원합니다.이 컨트롤은 웹 페이지의 일부로 통합되었습니다. 예를 들어 Gtk + 응용 프로그램에서 Webkit 인스턴스에로드 된 프로그래밍 방식으로 생성 된 웹 페이지 중간에 특정 컨트롤을 통합 할 수 있기를 기대했습니다. 가능한 경우 DOM의 일부로 만들고 싶습니다.Webkit보기에 네이티브 위젯 포함

내 의도는 UI의 일부분에 대한 기초로 webview를 사용하는 것이지만 원래 Gtk + 일 필요가있는 몇 가지 특정 컨트롤이 있습니다.

폼의 컨트롤을 다루는 경우, 예를 들어, Webkit-gtk는 Gtk + 컨트롤과 같이 보이도록 명시 적으로 렌더링하거나 실제 Gtk + 컨트롤을 사용하고 포함시킵니다. 현실이 두 번째 경우라면, 실제로 다른 컨트롤과 함께 할 수도 있습니다.

나는 GTK #로 C# (모노)로 응용 프로그램을 개발하고 있지만 Gtk +에서 직접 할 수 있다면 결국 GTK #에서 할 수있을 것이라고 기대하고있다.

답변

0

Broadway을 살펴볼 수 있습니다. 이것은 GTK +의 웹 백엔드이며 HTML5를 사용하여 GTK + 위젯을 표시합니다. 웹 페이지에서 전적으로 GTK +를 사용해야 할 수도 있지만 GTK + 요소가 포함 된 웹 페이지를 만드는 유일한 방법 인 것 같습니다.

+0

실제로 그 목적을 이깁니다. 내 페이지에서 Gtk + 만 사용할 수 있다면 추가 된 처리 레이어에서 지연 시간과 성능이 저하되므로 쓸모 없게 될 것이므로 실제로는 그 반대의 가치가 없습니다. 브로드 웨이가 어떤 경우에는 유용하지만이 것은 아닙니다. – Joaommp

+0

당신은 얼마나 깊이 들여다 보았습니까? 내 대답은 명확히해야하지만, 자세히 보지 않았으므로 페이지에서 GTK + 만 사용할 수 있는지 확신 할 수 없습니다. 내가 더 자세한 정보를 찾을 수 있는지 알지 못한다는 것을 분명히 할 것입니다. – oldtechaa

+1

제 답변의 일부는 당신의 의견에 기반을 두었습니다. 그러나 테스트를 거친 후에는 아무런 이점도 없었습니다. 매우 간단한 하나의 창과 하나의 대화 상자가있는 간단한 인터페이스가 32GB의 i7-6700T에서 느린 크롤링 속도였습니다. RAM 및 응답 성이 거의 없습니다. – Joaommp

0

이전에는 WebKitGTK 1.x에서 사용할 수 있었지만 WebKitGTK가 다중 프로세스가 되었기 때문에 기능이 제거되었습니다.

GTK #는 꽤 오래된 버전의 라이브러리를 사용하기 때문에 운이 좋을 수도 있습니다. 사용중인 WebKitGTK의 버전을 알 수 없지만, 신호가 create-plugin-widget이면이 작업을 수행 할 수 있어야합니다.

이전에는이 ​​신호를 사용하지 못했지만 다음과 같이 작동합니다 : <object> 태그를 HTML에 넣은 다음 webview에서 위젯을 삽입해야 할 때 신호가 방출됩니다. 시그널 핸들러에서 위젯을 생성하여 시그널 핸들러의 리턴 값으로 전달합니다.

+0

시그널을 잡을 수는 있었지만 시그널을 제대로 처리하기위한 인자 타입을 제공하지 못했기 때문에 시그널에 대해서는 아무 것도하지 않았습니다. 만약 내가 m_viewWelcome.AddSignalHandler ("create-plugin-widget", 새로운 GLib.GSignalHandler (onCreatePluginWidget), typeof (GLib.GSignalArgs)); ' 을 사용하려고해도 System.EventArgs를 적용하고 있습니다 : 예외 Gtk # 콜백 위임자 주 : 응용 프로그램은 GLib.ExceptionManager.UnhandledException을 사용하여 예외를 처리 할 수 ​​있습니다. System.Exception : 알 수없는 형식의 GHashTable' – Joaommp