QT E心得 視窗無邊框,顯示中文

2021-04-13 09:29:04 字數 2701 閱讀 5869

沒搞多九qt/e,只是想把自己前段時間的學習心得跟大家交流...

此文為本人工作時的小記,其中關於了一些qt/e程式如何在arm開發板上執行的內容.

在虛擬機器中對程式進行編譯時,需要先進行export設定一些路徑,如下:

[root@localhost tmake-1.8]# export tmakedir=$pwd

[root@localhost tmake-1.8]# export tmakepath=$tmakedir/lib/qws/linux-x86-g++

[root@localhost tmake-1.8]# export path=$tmakedir/bin:$path

[root@localhost qt-2.3.7]# export qtdir=$pwd

[root@localhost qt-2.3.7]# export qtedir=$qtdir

[root@localhost qt-2.3.7]# export path=$qtdir/bin:$path

[root@localhost qt-2.3.7]# export ld_library_path=$qtdir/lib:$ld_library_path

上面是將程式編譯成可在虛擬機器下執行(模擬楨緩衝中顯示,即qvfb中顯示)。

如果是要將程式交叉編譯成在開發板中執行的程式, export設定路徑需要改動一處:

[root@localhost tmake-1.8]# export tmakepath=$tmakedir/lib/qws/linux-arm-g++.

在虛擬機器的home/wangxl目錄下面有兩個關於libqte.so檔案的目錄,乙個是lib_qte此為在開發板上qt/lib中的libqte.so等檔案,另乙個lib_qte_old是虛擬機器上qt-2.3.7/lib中的libqte.so等檔案。

要在開發板上顯示虛擬機器中的qte程式,需要在虛擬機器中裝入交叉編譯環境(arm-elf-gcc-3.2-full-tar.bz2與arm-linux-gcc-3.3.tar.bz2,板上自帶程式),裝入位址為:

/usr/local/arm。另需要將/usr/local/arm/3.2-elf/bin與/usr/local/arm/3.3/bin路徑寫入.bash_profile檔案當中。

此外,需要在虛擬機器路徑/usr/local/arm/3.3/lib/gcc-lib/arm-linux/3.3中加入開發板中的libqte.so等四個檔案(位於../qt/lib下),這個是在虛擬機器中將c++檔案編譯成可在開發板中執行的檔案所必須的qte庫支援檔案。

如果是要將編譯為arm下可執行改為編譯為虛擬機器下可執行,需要將前面講到的export設定改動一處,另外,需要刪除makefile檔案,重新建立makefile檔案。

另外,用designer設計的ui檔案生成標頭檔案和cpp檔案的uic命令格式如下:

uic –o test.h test.ui

uic –i test.h –o test.cpp test.ui

由pro檔案生成makefile檔案的格式如下

tmake –o makefile test.pro

另外,開發板從15號開發機上獲取檔案,由於開發板速度慢,用超級終端(串列埠連在開發板與主機之間)對開發板進行操作(但對qte程式執行操作需要在開發板子上操作)。

開發板從開發機獲取可執行檔案命令如下:

wget

http://172.20.6.15/可執行檔名

顯示中文方法一:

qfont unifont("unifont",12,50); unifont.setpixelsize(10);

label = new qlabel( p, "red_label" );

label->setgeometry( qrect( 80, 5, 90, 14 ) );

label->setfont( unifont );

label->settext( qstring::fromutf8("漢字顯示") ) ;

我已經用了三中方法嘗試,但是都有問題,不知道問題在哪兒?

方法一:qlabel *lb=new qlabel(qstring::fromlocal8bit("中文顯示"),this);

顯示出來的是方框。

方法二:qlabel *lb=new qlabel(qstring::fromutf8("中文顯示"),this);

顯示出來的還是方框。

方法三:qtextcodec *code=qtextcodec::codecforname("gbk");

qstring unistr=code->tounicode("中文顯示");

qlabel *lb=new qlabel(unistr,this);

顯示出來的結果是:只顯示了乙個「中」字,其餘的仍然是方框。

我已經很努力的研究了一陣子了,但是不知道是何問題,還請各位高手指點。

能夠顯示漢字,說明qt帶有中文字庫。

靠,這個問題都還在問呀最簡單的方法如下:

qlabel *label11;

label11 = new qlabel(qstring::fromlocal8bit("背光亮度設定"), this );

label11->move(20,10);

label11->resize(150,20);

視窗無邊框方法:

#include

mainform(0,0,qt::wstyle_customize|qt::wstyle_noborder);  

form 無邊框 移動視窗

winform 最近想弄乙個桌面專案 用到了 製作無邊框的窗體 這裡記錄下 第一步 將 form1的 fromborderstyle 設定為none 第二步 拖乙個panl 放到 窗體的邊上 設定panel的mosedown 事件 可直接控制的控制項 region 視窗移動 定義無邊框窗體form ...

WPF 無邊框視窗 顯示及退出動畫效果

本次做的是大小縮放 漸隱特效,效果展示 根據我的另一篇文章 wpf 無邊框窗體設定 設定好無邊框視窗後,對maingrid xaml 進行修改 在window.resouse中新增故事板 再新增視窗事件觸發器 這樣視窗顯示完成了,但退出並不能使用eventtrigger事件中的closing或clo...

Qt無邊框視窗1,簡單示例

現在較多軟體使用扁平化的介面風格,設計的很漂亮,感覺也比較簡約。這裡給出一種qt實現這種扁平化主視窗的示例,實現一些基本的標題欄拖放 最大最小關閉按鈕等處理。外觀 mainwindow去掉選單欄 工具條 狀態列等,新增1個widget作為標題欄,它和內容區域使用垂直布局。標題欄新增qlabel,作為...