QT/E心得 - 窗口无边框,显示中文

转载 2007年09月16日 05:07:00
没搞多九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 <QNameSpace.h>
mainform(0,0,QT::WStyle_Customize|Qt::WStyle_NoBorder);  

QT自定义窗口(无边框,自由拖动)

QT自定义窗口(无边框,自由拖动)
  • hiwubihe
  • hiwubihe
  • 2016年06月19日 16:24
  • 9408

【Qt编程】基于Qt的词典开发系列<四>--无边框窗口的缩放与拖动

在现在,绝大多数软件都向着简洁,时尚发展。就拿有道的单词本和我做的单词本来说,绝大多数用户肯定喜欢我说做的单词本(关于颜色搭配,大家就不要在意了)。 有道的单词本: 我所做的单词本: ...
  • tengweitw
  • tengweitw
  • 2014年08月22日 16:06
  • 3537

Qt之无边框窗口创建

为什么要去边框?美观个人感觉系统自带的边框美观上稍微欠缺一点,这也是好多软件去掉边框的原因吧。自定义去掉边框后,就能自由在任何位置添加一个自己的边框、标题栏之类的,甚至可以在上面添加一些工具菜单。如何...
  • AndyQsmart
  • AndyQsmart
  • 2016年03月18日 20:16
  • 3047

Qt实现无边框窗体的移动

本文内容,基本参考自互联网 去除窗体边框,移动窗体
  • sunlongtu
  • sunlongtu
  • 2016年03月13日 15:49
  • 1217

Qt Quick无边框窗口

内容: 使用 Qt  Quick创建无边框窗口         Qt Quick是一个无比强大、无比方便快捷的跨平台的开发框架,并且能通过Qt强大的元对象系统实现qml与c++混合编程,真正实现界面...
  • aloverofcplusplus
  • aloverofcplusplus
  • 2016年04月03日 19:35
  • 2031

Qt无边框窗口简单示例

1,简介 现在较多软件使用扁平化的界面风格,设计的很漂亮,感觉也比较简约。 这里给出一种QT是实现这种扁平化窗口的主窗口的示例,实现一些基本的标题栏拖放、最大最小关闭按钮等处理。 2,效果 ...
  • dpsying
  • dpsying
  • 2017年09月03日 21:39
  • 356

Qt无边框窗口的“关闭”和“移动”

Qt在设计过程中,经常遇到无边框界面设计和鼠标拖拽移动,当点击自定义的“关闭”按钮时如何真正退出和实现窗口移动是一个常用的功能:...
  • learning_notes
  • learning_notes
  • 2016年05月10日 15:04
  • 734

Qt控制无边框窗体的拖动与缩放

Qt控制无边框窗体的拖动与缩放 2014年09月05日 ⁄ 综合 ⁄ 共 6884字 ⁄ 字号 小 中 大 ⁄ 评论关闭 部门启动了一个项目,用Qt做界面,...
  • xingzheouc
  • xingzheouc
  • 2015年05月22日 17:25
  • 1118

Qt实现窗口的无边框化且可拉伸大小

简述 大家在做Qt的时候,经常都会遇到自定义QWidget吧,但一旦实现后,有变的不可以拉伸了,今天我们就来做一个可拉伸的自定义QWidget并且可以移动 实现 #ifndef AUTOSI...
  • wjh_init
  • wjh_init
  • 2018年02月02日 23:56
  • 12

Qt开发:无边框异形窗口,透明背景,可移动

很多端游的启动器客户端都是异形窗口,无边框,自绘并重写了最小化、最大化、关闭按钮。本文具体讲一下实现。 步骤: 1,设置窗口透明度、窗口无边框样式、窗口背景透明。 2,准备ps过的带透明...
  • u012234115
  • u012234115
  • 2015年02月13日 00:41
  • 3101
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT/E心得 - 窗口无边框,显示中文
举报原因:
原因补充:

(最多只允许输入30个字)