導航:首頁 > 程序命令 > qrc的命令

qrc的命令

發布時間:2023-07-17 02:29:04

『壹』 qrc_images.cpp是什麼是qt庫自帶的文件嗎

圖片是一種資源,而在Qt中,對於資源的使用是有其獨特的方式的!

①:一般來說:資源在內存中是用資源對象樹來表示的,該樹在程序啟動時創建。

②:而對於資源而言:我們都是需要先將其加入到這棵樹中才能載入到內存中並被程序使用!!

③:而將一個圖片資源放到程序的資源對象樹中是用函數QResource::registerResource()來實現的。亦即:要將資源向這顆資源對象樹進行注冊,這樣才對在系統中new創建這個資「葉子」。

Qt中經常會使用一些圖片作為程序的界面,經常用的有三種方法,這里借鑒了小竇朋友的方法總結

1、在程序運行時候載入圖片,

也是最簡單的方法

image=new QImage("1.png");

這種方法在程序運行時候再去載入圖片,需要在程序的運行目錄下添加事先放置好圖片,這樣做的優點是程序運行時候不需要的圖片不載入,節省了內存,但是讀取速度慢。

2、將圖片編譯進工程中,

這樣在程序發布時候不需要在目錄下放置圖片,主要通過的是.qrc文件,例如添加image.qrc文件,這個文件會在編譯時候生成qrc_image.cpp文件,,我們可以自己看下這個生成的cpp文件,發現其中就是主要有三個static const數組。

qt_resource_data[]

qt_resource_name[]

qt_resource_struct[]

這其中qt_resource_data[]中存放的就是圖片的二進制數據。而後邊的兩個數組我們猜測是做了一個圖片名字到上邊數據的映射,方便系統找到data中的二進制數據。

至於內部作用機制,有的資料上說是:當使用qrc資源文件時:系統會自動將所有的圖片資源都向程序的資源對象樹進行注冊,並且當程序結束運行時再進行反注冊。這也正好解釋了為什麼此種方法下圖片資源會一直佔用內存的原因。

使用這種方法時:由於圖片資源一直在內存中,避免了I/O操作,從而加快了讀取速度。但是卻是以消耗內存為代價的

方法如下:

在qrc文件中加上下面的代碼。

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>1.png</file>

<file>2.ico</file>
</qresource>
</RCC>
然後再.pro文件中添加下面的代碼

RESOURCES = res.qrc

在程序中使用圖片文件時候,通過

:1.png的方法來使用

例如

image=new QImage(":1.png");

3、手動進行注冊

第二種方法相當於靜態載入,但很多情況下我們更希望是動態載入,亦即:用到哪個資源才將該資源載入進來,而不用的則不載入。

上邊第二種方法之所以顯示出靜態載入的特性,這是由於系統一次性自動把所有圖片資源都進行了注冊,並且在程序運行過程中一直沒有進行反注冊才導致的。 如果我們可以自行決定:什麼時候對那一部分圖片資源進行注冊?什麼時候對哪一部分圖片資源進行反注冊。則顯然我們可以手動控制整個資源在內存中的生存周期!!

這種方法的主要步驟為:

①:生成外部二進制資源文件。

②:在需要時將該資源向程序的資源對象樹進行注冊並使用。

③:在不需要時進行反注冊。

步驟①主要是用了Qt自帶的一個工具:rcc.exe (處於bin文件夾中)。這是Qt的一個資源編譯器,其編譯對象是qrc文件,而生成rcc二進制資源文件。

那我們可以用它來執行命令 rcc -binary name.qrc -o name.rcc 來把qrc資源文件轉成rcc二進制資源文件。

而後在程序內部:當需要使用某一圖片資源時:則直接調用

QResource::registerResource(「name.rcc」)進行注冊創建分配內存即可! 而不使用時候則調用反注冊函數!!

這種方式算是動態載入,會少佔用內存。但是如果圖片過多的話,什麼時候需要載入,什麼時候需要去掉,這些邏輯就需要十分注意了。

『貳』 python怎麼使用qtdesigner設計的ui

軟硬體環境

『叄』 python怎麼輸入圖片

python導入圖片的方法:

一、直接從源圖片中導入(圖片位於images文件夾內)self.label1=QLabel(self)

self.label1.setPixmap(QPixmap(r"images/head.jpg"))

layout.addWidget(self.label1)

#或者 layout.addWidget(QLabel(self, pixmap=QPixmap("images/head.jpg")))

二、利用qrc資源導入

1、先寫qrc文件

images/head.jpg

images/body.jpg

2、將qrc文件轉化成py文件

轉化命令為:pyrcc5 res.qrc -o res_rc.py

3、導入res_rc.py:import res_rc

4、layout.addWidget(QLabel(self,pixmap=QPixmap(":/images/head.jpg")))

注意需要添加:/符號作為前綴。

閱讀全文

與qrc的命令相關的資料

熱點內容
安卓i怎麼查找蘋果手機 瀏覽:947
雲伺服器宕機概率 瀏覽:227
在線買葯用什麼app知乎 瀏覽:810
ubuntu解壓xz文件 瀏覽:674
宏傑加密時電腦關機 瀏覽:388
自己寫單片機編譯器 瀏覽:598
單片機按鍵閃爍 瀏覽:380
為什麼icloud總是顯連接伺服器失敗 瀏覽:888
如何設置域控伺服器 瀏覽:738
想在上海租房子什麼app好 瀏覽:184
編譯程序各部分是必不可少的嗎 瀏覽:885
編程不超過十行 瀏覽:763
數電編譯器的作用 瀏覽:337
時間演算法與現在有什麼區別 瀏覽:164
7zip解壓後沒文件夾 瀏覽:903
為什麼安卓送玫瑰ios收不到 瀏覽:10
美篇文章加密是什麼意思 瀏覽:83
ilasm編譯dll 瀏覽:39
呼吸燈單片機程序 瀏覽:954
linux域socket 瀏覽:250