Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

qmake to cmake

Posted on 2012 年 4 月 7 日2021 年 3 月 12 日 By 日落 在〈qmake to cmake〉中尚無留言
qmake to cmake

以 Qt Creator 預設的 GUI Appplication 為例:

zero@zero-desktop:~/dev$ tree example/
example/
|-- example.pro
|-- main.cpp
|-- mainwindow.cpp
|-- mainwindow.h
`-- mainwindow.ui

建立 CMakeLists.txt,先寫入最常用到的幾個設定:

project( example )
cmake_minimum_required(VERSION 2.6)

set( SRC main.cpp mainwindow.cpp )
set( HEADER mainwindow.h )

讓 cmake 先載入 Qt 會用到參數:

find_package( Qt4 REQUIRED )

加入 Qt 函式庫位置:

include( ${QT_USE_FILE} )
add_definitions( ${QT_DEFINITIONS} )

因為 Qt 在編譯前會先透過 moc、uic 等對程式做處理,將 SIGNAL/SLOT、ui 轉成程式碼再做編譯。Cmake 透過 wrapper 做設定:

set( FORM mainwindow.ui )

qt4_wrap_cpp( HEADER_MOC ${HEADER} )
qt4_wrap_ui( FORM_HEADER ${FORM} )

如果專案中有使用到 qrc 檔,則需加入:

qt4_add_resources( RESOURCES_RCC resource.qrc )

有時編譯位置與程式碼放置位置不同,編譯器會讀不到 moc 轉出來的程式碼,所以要將編譯位置加入:

include_directories( ${CMAKE_CURRENT_BINARY_DIR} )

最後,編譯設定:

add_executable( exe ${SRC} ${HEADER_MOC} ${FORM_HEADER} )
target_link_libraries( exe ${QT_LIBRARIES} )

完整的 CMakeLists.txt 大致上長這樣:

project( example )
cmake_minimum_required(VERSION 2.6)
find_package( Qt4 REQUIRED )

include( ${QT_USE_FILE} )
add_definitions( ${QT_DEFINITIONS} )

set( SRC main.cpp mainwindow.cpp )
set( HEADER mainwindow.h )
set( FORM mainwindow.ui )

qt4_wrap_cpp( HEADER_MOC ${HEADER} )
qt4_wrap_ui( FORM_HEADER ${FORM} )

include_directories( ${CMAKE_CURRENT_BINARY_DIR} )

add_executable( exe ${SRC} ${HEADER_MOC} ${FORM_HEADER} )
target_link_libraries( exe ${QT_LIBRARIES} )

建立 Makefile:

zero@zero-desktop:~/dev/example$ mkdir build
zero@zero-desktop:~/dev/example$ cd build/
zero@zero-desktop:~/dev/example/build$ cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt-Version 4.6.2 (using /usr/bin/qmake)
-- Looking for _POSIX_TIMERS
-- Looking for _POSIX_TIMERS - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zero/dev/example/build

沒有錯誤訊息的話,目錄下應該就會有 Makefile 了,接下來 make 吧!

Reference:
Using CMake to Build Qt Projects | Qt Developer Network
http://qt-project.org/quarterly/view/using_cmake_to_build_qt_projects

「 」: CMake to QMake note
https://b2.zeroplex.tw/2009/12/cmake-to-qmake-note.html

Tags:Qt, 程式設計

更改 Ubuntu 10.04 登入畫面背景圖片

Posted on 2012 年 4 月 7 日2021 年 3 月 12 日 By 日落 在〈更改 Ubuntu 10.04 登入畫面背景圖片〉中尚無留言
更改 Ubuntu 10.04 登入畫面背景圖片

從「系統」=>「偏好設定」=>「外觀」中只能修改登入後的桌面背景,登入畫面的背景還是不會變。

若要修改登入畫面的背景圖片,則需要使用 gdm 身份開啟 gnome-control-center 來修改設定:

  1. 首先,先將帳號登出,退回到登入畫面
  2. 接著按下 Ctrl+Alt+F1 切換 tty
  3. 使用自己的帳號、密碼登入
  4. 設定圖形介面應用程式顯示位置:
    export DISPLAY=:0.0
  5. 使用 gdm 身份執行 gnome-control-center:
    sudo -u gdm gnome-control-center
  6. 按下 Ctrl+Alt+F8 切換回圖形介面,這時候會看到「控制中心」
  7. 接著就能從「外觀」中設定登入畫面的背景圖片

Tags:Ubuntu

「Code Smart, Don’t Code hard」by CrBoy

Posted on 2012 年 4 月 5 日2021 年 3 月 12 日 By 日落 在〈「Code Smart, Don’t Code hard」by CrBoy〉中尚無留言

備註:CrBoy’s Blog:「那些老師沒教的事」簡報釋出

其中印象最深刻的應該是傻傻的用 printf 除錯,如果只是一般型態還好,遇到物件等之資料型態用 printf 真會把自己搞死。

另外把壓縮檔塞進版本庫裡面也很經典!SVN 或是 git 等版本管理工具其中一大功能就是比對 code 的異動,程式碼壓縮後這些工具就沒辦法做比對。誇張的是有人還會好心的把 *.o、*.exe 一起打包 commit …. XD

ps. 用 cmake 好像還蠻威的!

Tags:C/C++, 分享, 程式設計

SQLite 單引號處理

Posted on 2012 年 4 月 5 日2021 年 3 月 12 日 By 日落 在〈SQLite 單引號處理〉中尚無留言

一般處理 SQL 查詢時,遇到單引號或雙引號都會加上反斜線做跳脫。不過字串是餵給 SQLite 時,處理單引號的方式不同,是將一個單引號改為二個。

例如:

select * from content where text like '%Zero's note%'

上述字串「Zero’s note」中的單引號會造成查詢錯誤,所以將單引號修改後成為:

select * from content where text like '%Zero''s note%'

Reference:
How do I use a string literal that contains an embedded single-quote (‘) character?

Tags:程式設計, 資訊學習

CSS3 Background Future

Posted on 2012 年 2 月 14 日2021 年 3 月 12 日 By 日落 在〈CSS3 Background Future〉中尚無留言

在 JaceJu 的噗浪上看到 CSS3 background 新的特性,可以讓瀏覽器控制背景圖片的一些屬性,頗好用的。

CSS3 Backgrounds of the Future
http://www.andismith.com/blog/2012/02/css-backgrounds-of-the-future/

設定背景圖片:

body {
   backgroud: bg.jpg;  /* 1024x768 */
}

以上的設定,當視窗大小如你預期相同時,畫面便會與最初的設計相同,但若視窗較大或較小,都可能會讓畫面走樣。

加上 background-size 屬性,讓瀏覽器決定圖片的大小:

body {
   backgroud: bg.jpg;
   background-size: contain; 
}

修改之後,背景圖片便會依照視窗大小做調整。

Tags:CSS, 網頁設計

文章分頁

上一頁 1 ... 125 126 127 ... 318 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.