原创 Qt socket傳送自定義結構體數據

簡介 在Socket中,數據一般是char型(一般情況下,其實最好是用uchar來傳輸,避免莫名其妙的錯誤,但用char也是可以的),而在Qt裏面可以使用QByteArray,這個在QSocket裏面,是一個神器,根據C++中ch

原创 編譯利器qmake——關於makefile、make、cmake、qmake、make install

1.基礎知識 1.1、gcc(編譯器套件,可命令行手動編譯) gcc是GNU Compiler Collection(就是GNU編譯器套件),也可以簡單認爲是編譯器,它可以編譯很多種編程語言(括C、C++、Objective-C、

原创 Qt的QString與stl的string之間互相轉化

因爲QString和string的轉化出現問題,在此進行記錄。 QString qstr; string str; str = qstr.toStdString(); qstr = QString::fromStdString(s

原创 快速解決qmake編譯錯誤:could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory

使用qmake編譯試時,出現錯誤: qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’: No such file or directory 需要修改如下

原创 QML新功能——TapHandler信號處理器

TapHandler是用於觸摸屏上的點擊或鼠標單擊的信號處理器。使用時需要導入import QtQuick 2.12 舉例來說,對於以前的Rectangle,如果鼠標點擊時執行某代碼塊,一般會在該Rectangle上添加一個子對象

原创 關於Qt編譯庫(1):在子項目中編譯動態庫並且使用

本文演示了將一個自己編寫的類(SalesData)編譯爲動態庫或者靜態庫,並且新建的項目中使用該庫。 對於小白用戶,自己查了網上一些資料,進行了摸索,並將過程記錄下來,供他人蔘考。 1、本文主要說明了linux下的使用,windo

原创 一文看懂Qt creator的ui文件設計及PIMPL原理

在Qt creator中,可以使用Qt Designer(Qt設計師)來快速設計界面,只需拖放就可以設計並快速瀏覽樣式,並且可以生成代碼,替代了用代碼設計界面的工作。主要是生成了ui文件代替了用代碼生成界面。那麼這個過程是如何實現

原创 C++直接初始化,拷貝初始化,調用哪個構造函數?

很多C++新手不明白直接初始化、拷貝初始化,不清楚初始化過程中使用哪個構造函數。在學習過程中,要有基本概念,並且養成正確的認識也是非常重要的。因此整理了本文。 常見錯誤認識1: 1.使用()和使用=定義對象沒什麼區別。(直接初始化

原创 弄懂QtCreator中qmake、構建、運行、清理都幹了什麼

qmake: 根據之前項目指南創建的項目文件.pro,並且運行qmake生成debug或release目錄,裏面含有qmake後生成的Makefile,但此時還未生成.exe; 構建 構建mingw32-make、moc、uic等

原创 QML組件的訪問以及修改視圖delegate的屬性

1.訪問通過QML文件定義的組件 通過對qml文檔實例化建立對象。 訪問組件實例中的屬性:組件實例的id.屬性名 調用組件實例中的函數:組件實例的id.函數名() 2.訪問通過Loader定義的組件 通過對Loader動態加載組件

原创 最快速度解決ubuntu系統中Qt無法輸入中文

問題 在ubuntu系統中常使用fcitx輸入法,此時Qt5中無法輸入中文。Qt5之所以無法切換fcitx的輸入法是因爲Q t5的庫文件和插件都沒有加入fcitx輸入法管理工具的相關支持,如果使用ibus輸入法是可以在Qt中輸入中

原创 qmake學習記錄——常用變量

SOURCES,HEADERS 告訴qmake項目包含的頭文件和源文件 TARGET 設置生成的目標名稱。如果項目文件名爲hello.pro,則目標將是Windows上的hello.exe和Unix上的hello。 如果要使用其他

原创 Qt creator中項目的構建配置和運行設置

使用 Qt Creator 集成開發環境構建和運行程序是一件非常簡單的事情,一個按鈕或者一個快捷鍵搞定全部,大家已經都瞭解了。但是,這些看起來簡單的過程,背後到底發生了什麼呢? 點擊 Qt Creator 項目模式,可以看到當前項

原创 一文看懂const extern static如何定義?究竟放在源文件還是頭文件?

編譯單元(模塊) 在VC或VS上編寫完代碼,點擊編譯按鈕準備生成exe文件時,編譯器做了兩步工作: 第一步,將每個.cpp(.c)和相應的.h文件編譯成obj文件; 第二步,將工程中所有的obj文件進行LINK,生成最終.exe文

原创 關於Qt編譯庫(0):靜態庫與動態庫的區別

這次分享的宗旨是——讓大家學會創建與使用靜態庫、動態庫,知道靜態庫與動態庫的區別,知道使用的時候如何選擇。這裏不深入介紹靜態庫、動態庫的底層格式,內存佈局等,有興趣的同學,推薦一本書《程序員的自我修養——鏈接、裝載與庫》。 1.什