1. 如何在QT中顯示中文字元
跟Qt關系不大,這和你源文件編碼格式和編譯器有關系。
可以給你個建議把上面的程序改成Qt版本的, 哈哈。步驟如下~
1 是用qtcreator
2 如果是, 檢查
工具--選項--文本編輯器--行為 選項卡下的File Encodings 中,default Encoding下拉選框里沒有中文編碼(gbk、gb2132或gb18030等)。我這里是system
3 在程序里
int main(xxxx)
{
QApplication app(xxxx);
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));
qDebug() << QObject::tr("中文");
//記得中文用QObject::tr()包裹起來,這樣就可以顯示中文了。
app.exec();
}
2. 運行qtcreator 出現錯誤提示:error: Qt Creator needs a compiler set up to build. Configure a compile
原因:沒有設置編譯器/沒有安裝編譯器
解決:安裝g++(非Windows下)或minGW(Windows下)。
3. 錯誤:Qt Creator 需要設置一個編譯器來構建.在構建套件選項里設置一個編譯
主要是qtcreator未檢索到系統主要常用目錄和環境變數下的目錄中檢索到可以使用的有效編譯系統,因此發生此錯誤,如果你自定義安裝了編譯環境和工具集,應當在選項->編譯環境中指定編譯器的位置,qtcreator會自己確定類型。
4. qt creator 3.6.1 能輸入中文嗎
1.首先到Qt的官方網站上下載QtCreator,這里我們下載windows版的。下載完成後,直接安裝即可,安裝過程中按默認設置即可。2.運行QtCreator,首先彈出的是歡迎界面,這里可以打開其自帶的各種演示程序。3.我們用File->New菜單來新建工程。4.這里我們選擇Qt4GuiApplication。5.下面輸入工程名和要保存到的文件夾路徑。我們這里的工程名為helloworld。6.這時軟體自動添加基本的頭文件,因為這個程序我們不需要其他的功能,所以直接點擊Next。7.我們將baseclass選為QDialog對話框類。然後點擊Next。8.點擊Finish,完成工程的建立。9.我們可以看見工程中的所有文件都出現在列表中了。我們可以直接按下下面的綠色的run按鈕或者按下Ctrl+R快捷鍵運行程序。10.程序運行會出現空白的對話框,如下圖。11.我們雙擊文件列表的dialog.ui文件,便出現了下面所示的圖形界面編輯界面。12.我們在右邊的器件欄里找到Label標簽器件13.按著滑鼠左鍵將其拖到設計窗口上,如下圖。14.我們雙擊它,並將其內容改為helloworld。15.我們在右下角的屬性欄里將字體大小由9改為15。16.我們拖動標簽一角的藍點,將全部文字顯示出來。17.再次按下運行按鈕,便會出現helloworld。到這里helloworld程序便完成了。{在windows環境下可能會遇到的問題:QtCreator編譯的程序,在其工程文件夾下會有一個debug文件夾,其中有程序的.exe可執行文件(在linux下可能是在helloworld-build-desktop目錄下有名為helloworld的可執行程序)。但QtCreator默認是用動態鏈接的,就是可執行程序在運行時需要相應的.dll文件。我們點擊生成的.exe文件,首先可能顯示「沒有找到mingwm10.dll,因此這個應用程序未能啟動。重新安裝應用程序可能會修復此問題。」表示缺少mingwm10.dll文件。解決這個問題我們可以將相應的.dll文件放到系統中。在QtCreator的安裝目錄的qt文件下的bin文件夾下(我安裝在了D盤,所以路徑是D:\Qt\2009.04\qt\bin),可以找到所有的相關.dll文件。方法一:在這里找到mingwm10.dll文件,將其復制到C:\WINDOWS\system文件夾下即可。下面再提示缺少什麼dll文件,都像這樣解決就可以了。方法二:將這些dll文件都與.exe文件放到同一個文件夾下。不過這樣每個.exe文件都要放一次。方法三:將D:\Qt\2009.04\qt\bin加入系統Path環境變數。右擊我的電腦->屬性->高級->環境變數->在系統變數列表中找到Path,將路徑加入其中即可。}
5. QtCreator如何將Application Output顯示到Text Edit控制項中
在頭文件裡麵包含
#include <QDebug>
在你需要增加輸出的位置調用qDebug()函數進行輸出。
下面是一個例子
#include <QtGui/QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qDebug()<<"Hello,Qt!";
return a.exec();
}
6. 想用C++寫個小工具,安裝Qt後,用QtCreator創建項目出現問題,是不是QtCreator有需要注意的設置
你先點開工具,然後點編譯選擇,再點程序,把gcc.exe和g++.exe都加上c++ 11
7. qt 只能寫c++程序嗎,不能寫c語言的程序嗎,要寫c只能用 gtk嗎
1、是可以的吧。c的文件,照樣編譯通過,使用正常參見網上:於是,為了達到最好的開發效果,開始想辦法用QtCreator來寫C/C++程序,他不僅有完善的IDE,方便的智能完成,還內嵌了gdb,調試起來很方便,感覺就和VS2005無異,更方便的是還集成了Git等版本控制插件,可以說是相當完美了。
2、其實,QtCreator是本來就是可以寫C/C++程序的,唯一的缺陷就是,它會把兩個庫鏈接進去QtCore和QtGui。這兩個是默認庫,但 是一般我們的標准C/C++程序是不用這兩個庫的。去掉也很簡單,直接用-=就可一了,用gedit或者vi建立一個空文檔,把以下內容加進去,一個標准 的Qt空C/C++項目模板就完成了,把對應位置填上項目名和文件名保存為一個.pro文件再用QtCreator打開就可以了
8. QtCreator上寫的HelloWorld報錯:LNK1112: 模塊計算機類型「X86」與目標計算機類型「x64」沖突
你用x86的編譯器,想生成x64的程序。到項目選項裡面,重新建一個構建配置
9. 如何讓QT編譯器顯示游標
1 PC版本
在終端中輸入:sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer qt4-qmlviewer
◆qt4-dev-tools 中包括了Qt Assistant,Qt Linguist,Qt Creator
◆qt4-doc 這個是幫助文檔
◆qt4-qtconfig Qt的配置工具,這個裝好默認好
◆qt4-demos 官方的一些Demo
◆qt4-designer 可視化窗體設置工具
◆qt4-qmlviewer 和qtcreator相關
安裝後,沒有安裝Qt Creator,在Ubuntu 圖形桌面上點擊左側的Ubuntu Software Center,搜索Qt ,選擇Qt Creator
完成後,在terminal命令行執行命令 qtcreator啟動Qt Creator了
註:如果需要編譯特定版本的,如4.8.5,則:
(1) 安裝一些依賴包
sudo apt-get install libX11-dev libXext-dev libXtst-dev
(2) 下載Qt源碼包 qt-everywhere-opensource-src-4.8.5.tar.gz,解壓後進入目錄
用命令 sudo ./configure -prefix /usr/local/Trolltech/Qt-4.8.5;sudo make;sudo make install即可
2 ARM版本
註:以下所使用的交叉編譯工具為arm-none-linux-gnueabi 如果使用arm-linux 做相應的修改即可
(1)下載Qt源碼包 qt-everywhere-opensource-src-4.8.5.tar.gz;
(2) 解壓後進入該文件夾,執行.
./configure -opensource -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-webkit -qt-libtiff -qt-libmng -qt-libjpeg -qt-libpng -no-qt3support -nomake demos -nomake docs -nomake examples -little-endian -host-little-endian -fast -lrt
(3) 執行make,及make install命令,一般時間比較長
(4) 完成後修改mkspecs文件的許可權,供qt creator使用: sudo chmod 775 mkspecs -R
(5) 配置qt creator:工具->選項->Qt4 找到「手動設置」增加一個,qmake路徑填第二步中的安裝目錄下的qmake路徑,」usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin/qmake「
(6)配置完成後,打開項目後點左側「項目」,選擇剛才配置的Qt版本即可編譯生成arm版程序了
3 移植到ARM
(1)需要將usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib移植到ARM板上相同的位置,將plugins里的.so也移入..../QtEmbedded-4.8.5-arm/lib
(2) 對(1)中的lib/下的.so做鏈接
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so.4
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so.4.8
ln -s libQtGui.so.4.8.5 libQtGui.so
ln -s libQtGui.so.4.8.5 libQtGui.so.4
ln -s libQtGui.so.4.8.5 libQtGui.so.4.8
......
註:(1)(2) 也可以用壓縮打包整個lib,拷貝過去來實現
(3)vi ~/.bashrc 文件,加入
QTDIR=usr/local/Trolltech/QtEmbedded-4.8.5-arm
export QTDIR
PATH=$QTDIR/lib:$PATH
export PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
4 一些常見錯誤
(1) 「QMAKESPEC has not been set」,解決方案:sudo gedit ~/.bashrc ,添加內容:export QMAKESPEC=usr/local/Trolltech/QtEmbedded-4.8.5-arm/mkspecs/qws/linux-arm-gnueabi-g++
(2) 安裝了多種版本的QT,如果想默認使用QtEmbeddedb版本,可以在上述文件中加入:export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin:$PATH
(3) 配置完成後,可使用qmake -project;qmake;make進行工程編譯
(4) arm開發板的終端打不開,出現"grantpt failed:..."問題,可以輸入:mount -o remount,gid=5,mode=620 /dev/pts 回車
(5) Qtcreator配置出現,沒有編譯鏈,則可加入GCCE編譯鏈,目標位置就是linux-none-arm-guneabi-g++所在位置
(6) 出現qmlviewer 沒有安裝的問題,可從/usr/bin里將qml開頭的三個可執行文件拷到usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin下
(7) make 出現arm-none-linux-gnueabi-g++命令未找到,如果確定環境變數已經添加,則檢查文件所屬賬號是不是你現在賬戶;環境變數如果一直不對,可以關掉終端,新開一個,重新設置
(8) 如果開發板運行程序的時候出現 cannot mix incompatible Qt library with this library,查找資料,大家都說最可行性的解決方案是卸干凈,重新編譯,自己花了好長時間重新編譯後,發現還是一樣。然後用ldd <filename> 查看了運行文件依賴的庫,發現程序有部分鏈接到了開發板上的Qt庫。做了Qt動態庫的全部ln(具體見第3部分)
//////////////////////////////////////////////////////////////////////////////////////////////////////由於項目需要,需要加入觸屏,編譯過程中發現不同與之前的新的問題,記錄如下
一 觸屏庫tslib的編譯
1 下載相應的工具
do apt-get install automake
sudo apt-get install autogen
sudo apt-get install autoconf
sudo apt-get install libtool
2 很重要的一步,設置 CC和CXX
export CC=.... ,export CXX=...,一般CC=arm-linux-gcc ,CXX=arm-linux-g++,我的交叉編譯環境是arm-none-linux-gnueabi-gcc,arm-none-linux-gnueabi-g++,輸入命令 export CC=arm-none-linux-gnueabi-gcc export CXX=arm-none-linux-gnueabi-g++
3 編譯
cd tslib
./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" > arm-none-linux-gnueabi.cache #(這樣做到目的是避免出現undefined reference to rpl_malloc錯誤)./configure --host=arm-none-linux-gnueabi CC=<你的cc編譯器所在路徑> CXX=<你的++編譯器所在路徑> --cache-file=arm-none-linux-gnueabi.cache -prefix=/usr/local/tslibmakemake install
4 檢查,可進入/usr/local/tslib/bin 里,file ts_test(或其他文件) 如果顯示ARM,表明編譯正確,如果顯示80386表明你用的不是交叉編譯器,而是系統的gcc。註:因為版本不一致,導致編譯QT時一直出現 fail to find tslib function...,加入-verbose選項,列印出/opt/../ld:cannot find -lts(tslib和qt編譯器版本不對應造成)。
二 編譯QTe 4.8.5
1 編譯指令需要改為./configure -opensource -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-webkit -qt-libtiff -qt-libmng -qt-libjpeg -qt-libpng -no-qt3support -nomake demos -nomake docs -nomake examples -little-endian -host-little-endian -no-xcursor -no-mouse-linuxtp -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib -fast -lrt
不需要滑鼠的話就加上綠色的文字,並且修改./src/gui/embedded/qwscursor_qws.h,在文件頭部加上#define QT_NO_QWS_CURSOR
2 編譯器最好在qws/linux-arm-gnueabi-g++/qmake.conf中指定完全的路徑,否則可能出現一些奇怪的錯誤。
3 qmake.conf中記得加入-lts 在g++ gcc後面
三 移植到開發板
如果開發板中沒有tslib庫,則需要進行移植1 將tslib庫拷到開發板 /usr/local/tslib2 修改ts.conf vi /usr/local/tslib/etc/ts.conf -》將#mole_raw input前的#去掉3 vi /etc/profile 添加export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none #避免出現「open console device: No such file or directory KDSETMODE: Bad file descriptor」的錯誤
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/libTSLIB_TSDEVICE 和QWS_MOUSE_PROTO這兩項需要查看自己的板子的觸摸屏設備對應/dev/input/下哪個文件可用cat /proc/bus/input/devices查看具體可參考博客http://blog.163.com/zhuandi_h/blog/static/180270288201222310291262/
頂
1