zoukankan      html  css  js  c++  java
  • gtk学习笔记01 helloworld

    1. 先贴出油管大佬的教程博客https://prognotes.net/category/gtk-3/链接

    2. 然后是https://www.cnblogs.com/tennysonsky/p/4257037.html链接

    3. 接着是一些cairo的示例程序https://zetcode.com/gfx/cairo/链接

    4. 首先要有非常好用的clion工具

      • clion选择编译器,我这里选择了MinGW
        file->settings->ToolChains->点击+号(我这里自动识别了)->OK

      • 并且去配置cmake生成debugrelease

        • debug是默认有的,release我点加号的时候也自动识别了
      • 新建一个c++工程file -> new project -> c++ project并得到目录结构

    5. 搭建开发环境

      1. 下载GTK+ 3.6.4 Bundle for Windows

        网址http://www.tarnyko.net/dl/gtk.htm

    6. 解压后得到目录gtk+-3xxx

      • 我这里放到了H:mysoftclionclionWorkSpace目录下
      • 下面有binincludelib之类的目录
      • bin目录下的dll是要放在编译好.exe文件的同级目录下,.exe文件才能运行(windows下优先搜索当前文件夹下的dll)
    7. includelib里的东西添加到cmakelists.txt(使用cmake构建)

      1. H:mysoftclionclionWorkSpace部分需要自己修改哦
      2. include
        include_directories(
                H:/mysoft/clion/clionWorkSpace/gtk+364/include
                H:/mysoft/clion/clionWorkSpace/gtk+364/include/gtk-3.0
                H:/mysoft/clion/clionWorkSpace/gtk+364/include/cairo
                H:/mysoft/clion/clionWorkSpace/gtk+364/include/gdk
                H:/mysoft/clion/clionWorkSpace/gtk+364/include/glib-2.0
                H:/mysoft/clion/clionWorkSpace/gtk+364/include/pango-1.0
                H:/mysoft/clion/clionWorkSpace/gtk+364/include/atk-1.0
                H:/mysoft/clion/clionWorkSpace/gtk+364/include/gdk-pixbuf-2.0
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/glib-2.0/include
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/gtk-3.0/include
        )
        
        
      3. lib的所有.a文件
        link_libraries(
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libatk-1.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcairo-gobject.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcairo-script-interpreter.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcairo.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcroco-0.6.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libffi.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libfontconfig.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libfreetype.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgailutil-3.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgdk-3.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgdk_pixbuf-2.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgio-2.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libglib-2.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgmodule-2.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgobject-2.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgthread-2.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgtk-3.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libjasper.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libjpeg.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/liblzma.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpango-1.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpangocairo-1.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpangoft2-1.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpangowin32-1.0.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpixman-1.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpng.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpng15.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/librsvg-2.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libtiff.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libtiffxx.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libxml2.dll.a
                H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libz.dll.a
        )
        
      4. 使用Mingw编译好.exe后,双击运行时会弹出黑窗口控制台,在cmakelists.txt里添加以下代码可消除黑窗口
        # mingw消除黑窗口 C++工程
        set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -mwindows)
        
        # mingw消除黑窗口 C 工程
        # set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -mwindows)
        
    8. 编写helloworld代码,把以下代码拷贝到main.cpp里面

          #include <gtk/gtk.h>
          #include <string.h>
      
          int main(int argc, char **argv) {
              GtkWidget *window;
              // 要先init
              gtk_init(&argc, &argv); 
              // 才能new
              window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      
              g_signal_connect(window, "delete_event", gtk_main_quit, NULL);
              gtk_widget_show_all(window);
              gtk_main();
              return 0;
          }
      
    9. 点击clion的小绿锤子编译(当然是可选的)得到.exe可执行文件

    10. 把可执行文件和那些.dll放到同级目录下,双击运行即可(我还不知道如何把他们打包成单个可执行文件)

  • 相关阅读:
    程序员眼里IE浏览器是什么样的
    iOS UITableView 与 UITableViewController
    iOS 委托与文本输入(内容根据iOS编程编写)
    iOS 视图控制器 (内容根据iOS编程编写)
    iOS 视图:重绘与UIScrollView(内容根据iOS编程编写)
    Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)
    iOS 视图与视图层次结构(内容根据iOS编程)
    Python_Day_04 set方法总结
    iOS通过ARC管理内存(内容根据iOS编程编写)
    Python_Day_03 list,dic,tuple方法总结
  • 原文地址:https://www.cnblogs.com/majiao61/p/15085825.html
Copyright © 2011-2022 走看看