当前位置: 首页 > news >正文

云主机 几个网站上上海海网网站站建设

云主机 几个网站,上上海海网网站站建设,邳州网站建设,搭建本地视频网站Ubuntu 上实现 AWTK-WIDGET-WEB-VIEW 开始以为很简单#xff0c;后来发现是最麻烦的。因为 Ubuntu 上的 webview 库是 基于 GTK 的#xff0c;而 AWTK 是基于 X11 的#xff0c;两者的窗口系统不同#xff0c;所以期间踩了几个大坑。 1. 编译 AWTK 在使用 Linux 的输入法时…Ubuntu 上实现 AWTK-WIDGET-WEB-VIEW 开始以为很简单后来发现是最麻烦的。因为 Ubuntu 上的 webview 库是 基于 GTK 的而 AWTK 是基于 X11 的两者的窗口系统不同所以期间踩了几个大坑。 1. 编译 AWTK 在使用 Linux 的输入法时链接了 GTK3所以编译 webview 时也要链接 GTK3, 需要指定参数 WEBVIEW_WEBKITGTK_API“4.0”。 3rd/build_linux.sh cmake -S webview -B build -DWEBVIEW_WEBKITGTK_API4.0 -DCMAKE_BUILD_TYPEDebug mkdir -p build/core/amalgamationcmake --build buildmkdir ../bin cp -avf ./build/core/libwebview*.so* ../bin2. 运行 GTK 在 Ubuntu 上默认使用 Wayland但是 AWTK 使用的是 X11所以在运行时需要设置 GDK_BACKEND 为 x11保证两者使用的是同一个窗口系统。 export GDK_BACKENDx113. 创建窗口 在 Ubuntu 上创建一个 GTK 窗口然后将 webview 嵌入到这个窗口中。 不使用 webview 的主循环在 AWTK 定时器中去处理 GTK 的事件发现 webview 可以处理窗口事件但窗口上没有显示内容后来发现需要调用 gdk_window_process_all_updates()。 static int s_webview_count 0; static uint32_t s_timer_id 0;static ret_t web_view_on_timer(const timer_info_t* timer) {g_main_context_iteration(NULL, FALSE);gdk_window_process_all_updates();return RET_REPEAT; }static ret_t sdl_window_set_child(SDL_Window* parent, webview_os_window_t os_window, int x, int y,int w, int h) {SDL_SysWMinfo wmInfo;SDL_VERSION(wmInfo.version);SDL_GetWindowWMInfo(parent, wmInfo);Window parent_win wmInfo.info.x11.window;Display* display wmInfo.info.x11.display;GtkWindow* gtk_window GTK_WINDOW(os_window);GdkWindow* gdk_window gtk_widget_get_window(GTK_WIDGET(gtk_window));Window win gdk_x11_window_get_xid(gdk_window);XReparentWindow(display, win, parent_win, x, y);gtk_window_move(GTK_WINDOW(gtk_window), x, y);gtk_window_resize(GTK_WINDOW(gtk_window), w, h);return RET_OK; }webview_os_window_t webview_os_window_create(SDL_Window* parent, int x, int y, int w, int h) {GtkWidget* gtk_window gtk_window_new(GTK_WINDOW_POPUP);gtk_window_set_decorated(GTK_WINDOW(gtk_window), FALSE);gtk_window_move(GTK_WINDOW(gtk_window), x, y);gtk_window_resize(GTK_WINDOW(gtk_window), w, h);gtk_widget_show_all(gtk_window);if (s_webview_count 0) {s_timer_id timer_add(web_view_on_timer, NULL, 30);s_webview_count;}sdl_window_set_child(parent, gtk_window, x, y, w, h);return (webview_os_window_t)gtk_window; }4. 调整窗口大小 调整窗口大小时需要调整 GTK 窗口的大小。 遗憾的是窗口大小调整了但是 webview 的内容并没有跟着调整还需要进一步研究。 void webview_os_window_move_resize(SDL_Window* parent, webview_os_window_t subwindow, int x, int y,int w, int h) {GtkWidget* gtk_window GTK_WIDGET(subwindow);gtk_window_move(GTK_WINDOW(gtk_window), x, y);gtk_window_resize(GTK_WINDOW(gtk_window), w, h);GList* children gtk_container_get_children(GTK_CONTAINER(gtk_window));if (children ! NULL) {GtkWidget* widget GTK_WIDGET(children-data);gtk_widget_set_size_request(widget, w, h);} }5. 销毁窗口 销毁窗口时需要销毁 GTK 窗口。在销毁最后一个窗口时停止定时器。 void webview_os_window_destroy(webview_os_window_t subwindow) {GtkWidget* gtk_window GTK_WIDGET(subwindow);gtk_widget_destroy(gtk_window);s_webview_count--;if (s_webview_count 0) {timer_remove(s_timer_id);s_timer_id 0;}gdk_window_process_all_updates(); }
http://www.hkea.cn/news/14347807/

相关文章:

  • 云虚拟主机怎么建网站wordpress小兽
  • 可以做网站的编程有什么WordPress源码带会员中心系统
  • 怎么修改公司网站图片宁波网站推广合作商
  • 黑龙江省建设教育网站查询站长工具seo推广
  • 做智能网站系统长沙景点排行榜前十名
  • 需要证书的建筑公司网站wordpress描述怎么改
  • 简洁汽车配件网站模板网站代码如何导入
  • 排名好的网站建设企业建设网站的风险分析
  • 做贵网站多少钱陕西住房和城乡建设厅官网
  • 德庆网站建设网站时间显示
  • 泉州有哪些做网站的客源汇软件怎么样
  • 保险网站有哪些情感网站seo
  • 什么网站可以做装修效果图的企业主页图片
  • 网站建设与管理实践报告总结网站名申请
  • 门户网站建设专业dede后台做两个网站
  • 切管机维修 东莞网站建设小程序游戏怎么开发
  • 网站打不开显示asp空气炸锅做糕点的网站
  • 给别人做网站赚钱吗京东金融
  • 老薛主机wordpress模板wordpress 搜索引擎优化
  • 网站开速度 流失网页设计师个人网站
  • 自己怎么做商城网站视频教程中国建筑网官网查询系统
  • 织梦dedecms医院类网站在线预约挂号插件_utf8表白网
  • 网站助手 伪静态中国航空集团有限公司
  • cms与php做网站的区别信阳网
  • 设计网站推荐素材网站网站开发 协作平台
  • 欧莱雅网站建设与推广方案洛阳青峰做网站
  • 外贸营销网站推广建设比较好网站
  • 玉林做绿化苗木网站的是哪个单位宿迁司法拍卖房产网
  • 黄渡网站建设跑步机 东莞网站建设
  • 上市公司数据查询网站什么网站可以自己接工程做预算