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