原创 QT調用Window系統API獲取屏幕分辯率及縮放比例

GetSystemMetrics()函數,獲取屏幕的分辯率,這個分辯表示的是當前顯示的分辨率。 通過設置標識符獲取相應的值 ,例如,獲取屏幕的寬度和高度 int width = GetSystemMetrics(SM_CXSCREEN);

原创 VS2019的C++項目如何查看源文件(.h,.cc.cpp等)所在的工程

在大型的C++項目中,一個解決方案有多個.vcxproj工程文件,每個工程文件裏又有很多源文件,比如: 8071個項目,文件數則更多,因此,當你打開一個源文件時,想知道該源文件在哪個工程下,就很有必要了, 你可能能會說,打開文件的屬性看

原创 pyqt5之拖拽

拖拽 在GUI裏,拖放是指用戶點擊一個虛擬的對象,拖動,然後放置到另外一個對象上面的動作。一般情況下,需要調用很多動作和方法,創建很多變量。 拖放能讓用戶很直觀的操作很複雜的邏輯。 一般情況下,我們可以拖放兩種東西:數據和圖形界面。把一個

原创 使用類成員函數作爲回調函數示例

開發環境:windows 10 Qt5.13.1 回調函數在不同模塊的交互過程中使用非常廣泛,比如說,B模塊想獲取A可以模塊的進度,就可以使用回調函數來回調進度,但在使用的過程中,回調函數不能直接使用類的成員函數,因此必須中轉一下,來調用

原创 Qt實現只運行一個程序

在項目開發過程中,有時候一個程序在一臺機器上只允許運行一個程序,因此需要用代碼來控制實現, 用到的技術是共享內存和信號量 具體代碼實現如下: #include "mainwindow.h" #include <QApplication

原创 qml顯示gif動畫

在Qt中可以用QMive加QLable顯示Gif動,而在Qml中,有一個專門的控件顯示Gif,即AnimatedImage AnimatedImage 提供了五個屬性:     currentFrame,指示當前正在播放的幀序號    

原创 Chromium編譯(83.0.4103.0版本)

編譯環境按這個官方文檔來,不然很容易報錯, 1.按官方的配置要求安裝VS2019 SDK版本10.0.18362.0 (之前我的電腦裝的是VS2017結果編譯的時候報#error Windows 10.0.18362.0 SDK or h

原创 字符數組賦值報“表達式必須是可修改的左值”的錯誤

在C/C++程序中,main函數可以傳遞了兩個參數(int argc, char *argv[]), 後面那個是字符數組,當我們接收直接用字符數組接收參數時會報“表達式必須是可修改的左值”的錯誤,例如 #include <iostrea

原创 C++ Template類模板

與函數相似,類也可以被一種或多種類型參數化。容器類就是一個具有這種特性的典型例子,它通常被用於管理某種特定類型的元素。只要使用類模板,你就可以實現容器類,而不需要確定容器中元素的類型。 1.類模板的定義 template <typenam

原创 C++ std::move的使用和使用

在C++11中,標準庫在<utility>中提供了一個有用的函數std::move,std::move並不能移動任何東西,它唯一的功能是將一個左值強制轉化爲右值引用,繼而可以通過右值引用使用該值,以用於移動語義。 在對象拷貝的時候,在運行

原创 C++ Template函數模板參數

在前面的示例中,我們使用的函數模板的實參都是一樣的,但其實函數模板的參數也可以不一樣,並且可以是多個 ,這樣就可以定製化一些特殊用途的函數模板,例如: //函數模板的參數 #include <iostream> #include <s

原创 C++ Template初識函數模板

C++模板是泛型編程基礎,泛型編程即以一種獨立於任何特定類型的方式編寫代碼。 爲什麼要使用模板,有哪些好處呢,首先來看下面一個示例      #include <iostream> using namespace std; int

原创 C++ Template重載函數模板

    和普通函數一樣,函靈敏模板也可以被重載。就是說,相同的函數名稱可以具有不同的函數定義:於是,當使用函數名稱進行函函數調用的時候,C++編譯器必須決定究竟要調用哪個候選 函數。 //重載函數模板 #include <iostre

原创 qml設置透明度

qml設置透明度有兩個方式,一種是Qt.rgba()方法是:將十六進制轉成rgb,每個數值都除以255,另一種是opacity屬性值設置,但是這兩種是有區別的,Qt.rgba()設置只能當前的Rectangle有效,而opacity的設置

原创 qml Popup彈出控件使用

開發環境Qt5.13.1 window10 //main.qml import QtQuick 2.13 import QtQuick.Window 2.13 import QtQuick.Controls 2.5 Window {