當前位置:首頁 » 編程軟體 » qt5編譯svglength

qt5編譯svglength

發布時間: 2023-02-13 07:39:13

A. qtsvgitem設置大小

給界面或者按鈕上顯示一個圖標或背景圖片,日常使用.png格式的文件完全夠用,但是有些使用場景需要把圖片放大顯示時,使用.png文件就會開始模糊,這時需要載入.SVG文件,即使放大也很清晰。在界面添加一個QLabel控制項,最終是要把.Svg圖片顯示到QLabel中的。
(1)使用QSvgRenderer載入矢量圖片.
(2)提供繪制設備,QPixmap對象;
(3)提供畫家,QPainter對象;並與繪制設備建立聯系;
(4)調用QSvgRenderer的render(painter)函數,讓畫家執行渲染操作!
(5)最後將繪制設備放到QLabel中。在界面添加一個QLabel控制項,最終是要把.Svg圖片顯示到QLabel中的。

(1)使用QSvgRenderer載入矢量圖片.

(2)提供繪制設備,QPixmap對象;

(3)提供畫家,QPainter對象;並與繪制設備建立聯系;

(4)調用QSvgRenderer的render(painter)函數,讓畫家執行渲染操作!

(5)最後將繪制設備放到QLabel中。

B. 「干貨」python-qt5在centos7下編譯方法

本指南提供了在CentOS 7 for Python 2.7上編譯PyQt5的基本說明

1、安裝Qt

2、安裝依賴項

3、編譯SIP

4、編譯PyQt

現在可以從首次運行的Python版本訪問PyQt configure.py。

如果這樣會產生一個帶有單個按鈕的新窗口,那麼恭喜成功了!

C. 討論上Windows平台怎麼編譯Qt5

Qt5的編譯官方有一篇wiki:http://developer.qt.nokia.com/wiki/Building_Qt_5_from_Git
簡要的總結下我的體會,歡迎補充完善、批評指正。

1.First clone the top-level qt5 git repository:

git clone git://gitorious.org/qt/qt5.git qt5

這一行不用說了,自然是將Qt5的代碼克隆。不過,如果你只是初次克隆Qt5的代碼,會很驚訝:為何克隆後的代碼只有十幾MB?
原來,Qt5已經實現了Qt的模塊化,詳見:http://labs.qt.nokia.com/2011/05/12/qt-moles-maturity-level-the-list/
所以可以在克隆得到的Qt5源碼根目錄下看到:.gitmoles 文件,其內容部分摘錄如下:
[submole "qtbase"]
path = qtbase
url = git://gitorious.org/qt/qtbase.git
[submole "qtsvg"]
path = qtsvg
url = git://gitorious.org/qt/qtsvg.git
[submole "qtdeclarative"]
path = qtdeclarative
url = git://gitorious.org/qt/qtdeclarative.git
...
這時,有Git基礎的朋友一定會想到:
git submole init
git submole update
不過,請不要這樣做!

2. Following the README file we initialize the repository. This clones the various sub-moles of Qt5:
./init-repository

這是一個perl腳本。如果是在msys-git下,會發現Perl的版本不夠。
我們需要安裝一個Windows版本的Perl:http://www.activestate.com/activeperl/downloads
安裝好以後,Perl就添加到PATH環境變數中去了。
在MSVC的控制台下執行:
perl init-repository --help

注意,不是直接執行init-repository,要用perl來執行它。看看幫助:大致了解下有哪些功能。

3. 注意它的三個小提示:
Hint1: If you』re going to contribute to Qt 5, you』ll need to pass the —codereview-username <Jira/Gerrit username> option to set up a 「gerrit」 remote for all the sub-moles.
Hint2: If you』re having problems downloading the webkit repository (which is quite big), you can pass —no-webkit.
Hint3: If you』re behind a firewall, pass —http

4. 我的方法:
perl init-repository -f --codereview-username loaden

這樣就可以實現子模塊的批處理了。特別要注意的是:在處理這些子模塊時,其實是git clone了這些子模塊,以致於他們可以獨立使用。在qt5\qtbase目錄下可以找到.git目錄。
這與git submole update的結果是不一樣的!!
同時我使用了codereview的用戶名,是為了可以創建一個名為gerrit的遠程倉庫,可以將貢獻的代碼推送進去,類似:
git push gerrit HEAD:refs/for/master

5. 源碼下載是非常慢的,因為QtWebkit達到了1.7GB。源碼下載完成後,進入Qt5源碼目錄,配置環境變數:
set PATH=%CD%\qtbase\bin;%PATH%

之後echo看一下結果是否正確:
echo %PATH%

6. 建議直接在Qt5的源碼目錄下執行配置!
configure -confirm-license -opensource -release -shared -platform win32-msvc2010 -fast -no-stl -no-qt3support -nomake examples -nomake demos -nomake tests

7. 編譯全部模塊,直接執行nmake就可以了。如果只編譯一個模塊,可以這樣:
nmake mole-qtbase

雙擊打開Qt5目錄下的Makefile文件,可以看到有這些模塊:
SUBTARGETS = \
mole-qtbase \
mole-qtsvg \
mole-qtphonon \
mole-qtxmlpatterns \
mole-qtdeclarative \
mole-qttools \
mole-qttranslations \
mole-qtdoc \
mole-qlalr \
mole-qtqa \
mole-qtlocation \
mole-qtactiveqt \
mole-qtsensors \
mole-qtsystems \
mole-qtmultimedia \
mole-qtfeedback \
mole-qtquick3d \

mole-qtdocgallery \
mole-qtpim \
mole-qtconnectivity \
mole-qtwayland \
mole-qtjsondb \
sub-qtwebkit-pri \
mole-qtwebkit-examples-and-demos

D. Qt5.12.5 靜態編譯以及裁剪大小對比

最近在研究用靜態編譯的 Qt 做個 Qt 的安裝包程序,因為 nsis 在界面自定義還有多語言適配等問題上不太理想。做安裝包程序基本上只需要有最基礎的 Qt 界面模塊即可,不過把除了 UI 的模塊全部去掉又比較難用...這里記錄下兩種極端編譯配置下生成的程序大小作為參考。

編譯需要的環境可以看官方文檔, windows-requirements 中的 Building from Source 有說明需要安裝的工具,所有工具都記得要添加到環境變數。

最後的-mp 是多核編譯的參數,多核編譯用 jom 快得一匹,全模塊也只要 20 分鍾編譯完成。

這個配置把能刪的模塊都刪了,編譯出來後基本也就基礎UI相關類能用...所以編譯起來超快的。

比全模塊配置生成的exe減少了 30%的大小,不過 30%也就 3M,在 windows 平台的話倒是沒必要追求這種極致了=-=

此時如果是移動了編譯後的路徑,可能報錯 Qt version is not properly installed,please run make install 。在 qmake.exe 所在目錄新建一個 qt.conf 文件,並添加下面的內容即可:

E. 為什麼qt 5 編譯構建 configure 作用意義原因

你這個程序會調用某些其他系統裡面的功能庫,這個東西就是定義使用什麼地方的庫。因為有些時候某個庫不會裝到標准通用的 /usr 裡面,而是裝到了某些莫名其妙的地方。但這個時候系統提供的查詢方式就會找不到。只能進行手工指定,這個時候這個參數的作用就體現出來了。
有的程序這種設置也可以不要參數,默認就回去系統默認位置找。一般這種情況下,configure 可能會:1、不加這個參數就不打開對應的功能;2、不加參數系統會默認自己檢測相應的環境決定是否啟用對應的功能,設置這個參數後系統會強制啟用這個參數對應的功能。
具體要看當前的程序是怎麼設計的了。

F. Qt5 在linux 下的編譯,該怎麼處理

[wanglj@localhost testQT]$ make
g++ -o testQT main.o -L/opt/Qt5.1.1/5.1.1/gcc_64/lib -lqt-mt -lXext -lX11 -lm
main.o: In function `main':
/home/wanglj/testQT/main.cpp:6: undefined reference to `QApplication::QApplication(int&, char**, int)'
main.o: In function `QString':
/usr/include/QtCore/qstring.h:413: undefined reference to `QString::fromAscii_helper(char const*, int)'
main.o: In function `main':
/home/wanglj/testQT/main.cpp:7: undefined reference to `QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)'
main.o: In function `~QString':
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
collect2: ld 返回 1
make: *** [testQT] 錯誤 1

但若直接用 qtcreator 打開編譯,則無錯誤
並且find -name libqt-mt* 也找不到其他版本的該文件

用qtcreator編譯好的可執行文件,也找不到連接該lib文件

[wanglj@localhost build-testQT-桌面-Debug]$ ldd testQT
linux-vdso.so.1 => (0x00007fff4ddff000)
libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x000000397f000000)
libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x000000397ea00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003978600000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fda6a081000)
libm.so.6 => /lib64/libm.so.6 (0x0000003977a00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003983a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003977e00000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x000000397a600000)
librt.so.1 => /lib64/librt.so.1 (0x0000003978e00000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003979200000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x000000397be00000)
libz.so.1 => /lib64/libz.so.1 (0x0000003978a00000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x000000397ba00000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003979e00000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000003985a00000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003984e00000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x000000397ce00000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x000000397d600000)
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x000000397de00000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x000000397da00000)
libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x000000397e200000)
libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x000000397e600000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x000000397d200000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x000000397c600000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x000000397b600000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003978200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003977600000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003983600000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x000000397c200000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x000000397ae00000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x000000397aa00000)

------解決方案--------------------
INCPATH = -I/usr/lib64/qt-3.3/mkspecs/default -I. -I. -I$(QTDIR)/include
這一行看上去你調用的qmake不是5.1.1的。試試指定完整路徑運行qmake
/opt/Qt5.1.1/5.1.1/gcc_64/bin/qmake testQT.pro

G. QtCreator配置交叉編譯工具鏈

環境:ubuntu16.04桌面環境。

說明:使用ubuntu16.04桌面環境,安裝QtCreator之後,再利用QtCreator開發QT5 GUI程序,如果編譯的程序要運行在arm linux嵌入式系統中,則必須配置交叉編譯工具鏈。

主要配置內容:調試器、編譯器、QT版本。

1、打開工具,點擊選項。

2、選擇選項中的構建與運行,概要界面。

3、構建套件(kit)界面。

4、Qt Versions界面。

5、編譯器界面。

6、Debuggers界面。

7、Qbs界面。

8、交叉編譯例子:

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:532
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:29
linux485 發布:2025-07-05 14:38:28 瀏覽:310
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:760
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:436
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:716
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:246
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:692
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:288
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:837