月度归档:2019年01月

git pull 代码的时候默认使用 rebase 而不是 merge

git pull 实际会有两个操作,一个是 git fetch,另外一个是 git merge。一般 merge 的情况下会产生一个新的提交名字为 Merge branch ****,如下图所示:

这个新的提交会导致提交记录中产生多余的提交信息,实际与解决问题相关的提交不符而且对于一些洁癖来说这种难以接受,所以 git 提供了一个 rebase 的方式来替代 merge,rebase 可以按顺序结构重新整合提交顺序而不是产生一个新的提交。具体的区别大家可到网络上搜索一下这里重点不是介绍他们两个的区别。

而如果你希望每次拉代码的时候不需要执行 git fetch 后再执行一次 git rebase,而是像以前一样直接执行 git pull 而是使用 rebase 来合并代码的话,那以下命令可以帮到你。

git config --global pull.rebase true

执行次命令后,每次 git pull 都将是一个 git fetch + git rebase 的过程了,而不是以前的那种方式。

Qt Creator 项目属性配置常用设置

设置编译后目标保存目录

DESTDIR     = bin

设置一些编译过程中临时文件目录

MOC_DIR     = tmp/moc
OBJECTS_DIR = tmp/obj
UI_DIR      = tmp/ui
RCC_DIR     = tmp/rcc

设置头文件的拓展目录

INCLUDEPATH += $$PWD/libs/

根据不同属性链接不同的静态库

win32:CONFIG(release, debug|release):       LIBS += -L$$PWD/libs/ -ljsoncpp
else:win32:CONFIG(debug, debug|release):    LIBS += -L$$PWD/libs/ -ljsoncpp_d

或者

LIBS        += -L$$PWD/libs/
win32 {
    CONFIG(debug, debug|release) {
        LIBS += -ljsoncpp_d
        LIBS += -lnim_cpp_sdk_d
    } else {
        LIBS += -ljsoncpp
        LIBS += -lnim_cpp_sdk
    }
}

根据不同操作系统设置平台化差异属性

unix {
    target.path = /usr/local/lib
}

win32 {
    target.path = C:\Windows
}

INSTALLS    = target

更多请参考:http://doc.qt.io/qt-5/qmake-variable-reference.html

CEF 设置页面缩放级别

现在很多高分屏在笔记本和家用市场逐步扩大,普通应用大小在一个 2K 或者 4K 屏幕下就像一个便利签一样贴在屏幕上面,看着很小。于是操作系统提供了对分辨率进行缩放的功能,比如我可以设置当前分辨率放大到 125%,这样就可以让字体或者窗口看着更大一些。同样基于 CEF 制作的客户端程序也会随之放大到 125%,但是内嵌的网页呢?当然也需要根据系统设置放大缩小,CEF 给我们提供了 SetZoomLevel 方法让我们来设置页面的缩放比例。

继续阅读

CEF 拦截打开超链接事件

使用 CEF 加载指定页面后,如果你希望控制页面在打开超链接时根据自己预定义的一些行为来操作,比如在自己的 UI 框架中新建一个 Tab 页又或者阻止打开新的页面等。我们就需要通过 CEF 提供的两个接口来实现这个功能了,分别是 OnBeforeBrowser 和 OnBeforePopup,两个接口各有各的用处,下面分别来详细介绍两个接口的作用。

继续阅读

CEF 文件下载功能实现

CEF 下载功能非常容易拓展,它提供了丰富的接口和控制功能,比如对正在下载的文件实现暂停、继续、取消等操作。并且 CEF 还帮我们默认实现了一个另存为的对话框,如果不是必须你甚至都不需要去自己实现这个保存对话框。接下来我们来看 CEF 对于下载功能提供的两个接口(使用 cefclient 项目举例)

继续阅读

利用 WM_NCHITTEST 消息自定义窗口可拖动区域

最近接到一个比较个性化的需求,原来团队基于 Electron 开发的项目由于不支持 XP 系统,想完全移植到基于 CEF 2623 版本的空壳中,以此来兼容 XP 系统。而程序的界面则完全交由前端来处理了,比如标题栏、最小化、最大化等功能按钮。这其中就涉及到一些原生应用的功能比如拖动窗口的功能是需要原生窗口提供的,微软提供拖动窗口的机制如此文章所描述:https://www.cnblogs.com/GnagWang/archive/2010/09/12/1824394.html。为了保证内容不丢失,我特意截图保留一份。

继续阅读