Qt Programming Q&A
qter_wd007
吴迪,网名wd007,大学教师。对程序设计有所领悟,熟悉Qt 4软件研发。现从事跨平台应用软件的研制与教学研究,在Qt中文论坛、Cute Qt论坛、Qt知识库等论坛担任版主。目前已出版《零基础学Qt4编程》一书,北航出版社;翻译审校《高级Qt编程》一书,电子工业出版社。
展开
-
某些开发版中的Qt Designer菜单等中文显示为乱码问题解决方法初探
1、确定你的Qt安装是正确完成的,安装完成后可以输入qmake,看一下输出,如果是"command not found",就说明Qt安装不正常,要重新安装。2、确定你的系统具有中文支持,比如要安装中文字体,最好装上文泉驿;3、确定你的系统默认字体设置为中文的;4、在qtconfig中设置font为Bitstream Charter,注意要设置Qt3Config,而不是Qt4,因为目前Qt Desi原创 2010-02-28 11:31:00 · 4719 阅读 · 4 评论 -
在Qt4中如何创建有最大最小化的MainWindow-与网友的一次问答
问:在Qt4中如何创建有最大最小化的MainWindow?怎么新创建的MainWindow就只有一个关闭按钮,没有最大最小化呢,而且拖边框放大缩小也不可以,只能在右下那个角拖.答:用setWindowFlags()方法设置。在Qt Demos里面有一个例子是演示setWindowFlags里各种选项的效果的。你的问题可以使用下面的语句:setWindowFlags(wind原创 2010-03-25 22:55:00 · 2315 阅读 · 0 评论 -
在Qt4中的MainWindow窗口如何固定?-与网友的一次问答
问:MainWindow窗口如何固定?项目要求将MainWindow窗口的标题栏屏蔽。就是只响应它的关闭按钮,对于最大化和最小化都不响应,而且也不能被鼠标拖动,请问有没有什么好的办法。答:以下代码可以达到效果,可以看做是前面几个问题的综合示例:#include #include int main(int argc, char **argv){ QApplica原创 2010-03-25 22:57:00 · 3737 阅读 · 1 评论 -
如何判断Qt 4项目文件夹中已经存在某个项目
要判断项目文件夹中已经存在某个项目,简单的方法就是启动Qt Creator,创建任意一种类型的项目,当你输入新建的项目名称与已有的相同时,Qt Creator会给出提示,提示信息以黄色的字体显示,如图所示。原创 2010-04-17 20:49:00 · 1912 阅读 · 0 评论 -
如何检测使用Qt Creator制作的程序中的括号是否匹配
问题详述:当程序字段较长时,各种括号也比较多,容易混淆,那么该如何检测程序中的括号是否匹配呢? 专家解答:把鼠标光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号如果括号匹配正确,光标就会跳转到匹配的括号处,否则光标将会移到函数的结尾处,并且这之间的代码块用紫色表示出来,意即出现了不匹配的现象。举个例子,在图1所示的代码片段中,我们将show()函数的右括号原创 2010-04-15 23:13:00 · 3004 阅读 · 1 评论 -
Qt4中如何去掉窗口标题栏
<br />有朋友问到:Qt创建对话框或者窗口的时候,怎么设置才能去掉最上方的标题栏(包括最小化按钮、最大化按钮、关闭按钮)? <br /> <br />我想说的是,这种需求一般是需要对窗口的属性进行设定,方法是使用setWindowsFlags()函数。其原型和参数解释可以查阅Qt Assistant。<br /> <br />这里要达到效果,就是加上一句:<br /> setWindowFlags(Qt::FramelessWindowHint); 应该就可以了。顺便说一句,在Qt3中的话,没有这个函数原创 2010-08-15 09:15:00 · 9646 阅读 · 13 评论 -
使用Qt 4如何设置QLabe中字体的颜色
<br />最近有同学问,如何使用Qt4,设置QLabel中字体的颜色。<br /> <br />其实,这是一个比较常见的问题。大致有几种做法:一是使用setPalette()方法;二是使用样式表;三是可以使用QStyle;四是可以在其中使用一些简单的HTML样式。下面就具体说一下,也算是个总结吧。<br /> <br />第一种,使用setPalette()方法如下:<br /> <br />...<br />QLabel *label = new QLabel(tr("Hello Qt!"));<br原创 2010-10-02 21:31:00 · 23346 阅读 · 11 评论 -
Qt SDK安装时Post mortem debugger的含义是什么
这是我以前的一篇了, 找到觉得对于初学者应该有意义,就整理出来,供参考。如图所示,在安装时到这个界面,这个选项该是什么意思:就是那个Post mortem debugger,从字面上看类似是后续什么的调试器的意思,mortem这个词在词典里面查不到,在线翻译也翻译不出来,经过与网友vrcats交流,得到比较一致的结论。postmortem是一个词。postmortem debugger就是程序崩溃后调试的工具,类似coredump之类的。有时候程序崩溃了,会问你要不要用visual studio调试。选上这原创 2010-10-31 23:05:00 · 3523 阅读 · 0 评论 -
怎样把QString转换为char *或者相反?
<br />这个问题其实也属于老生常谈了。也有不少朋友聊过。<br /> <br />我这里把它总结一下吧。<br /> <br />1.从QString转换为char *<br /> <br />要实现把一个QString转换为char *,一般遵循这样的步骤:<br /> <br />第一步,对该QString对象调用QString的toLatin1()方法,以获得该字符串的latin1值。<br /> <br />注意toLatin1()的原型如下:QByteArray QString::toLati原创 2010-11-15 23:33:00 · 23255 阅读 · 8 评论 -
如何给应用程序中的某一个窗口部件单独设置样式表?一个小细节,要设置它的objectName。
<br />这是一个网友和我交流时提到的问题,研究了一下,是个比较基础的问题,但是在手写代码的情况下容易忽略。<br /> <br />问:如何给应用程序中的某一个窗口部件单独设置样式表,我怎么设置都没有效果?这是QT 帮助文档里自带的说将stylesheet应用到具体对象上的方法,但似乎不起作用。<br /> <br /> ID Selector QPushButton#okButton Matches all QPushButton instances whose object原创 2010-11-20 21:20:00 · 5393 阅读 · 0 评论 -
Qt编译安装方法详解-包含数据库驱动的编译安装方法
2.编译安装的方法从qt的网站中下载文件qt-x11-opensource-src-4.5.2.tar.gz(在写作本书时采用的就是这个版本,但当你阅读此书时,使用的文件可能已经发生了改变)。在X11中,要把Qt安装到它的默认位置,需要拥有root权限。如果没有root权限,那么请使用config工具的-prefix选项来指定一个你具有操作权限的目录。第1步:把当前路径切换到你存放下载原创 2010-03-24 23:35:00 · 5570 阅读 · 6 评论 -
在Qt 4中如何固定窗口的大小
问:在Qt 4中如何固定窗口的大小? 答:一种方法是设置它的最大大小和最小大小,并且使它们的值相等,都等于当前你设置的窗口尺寸。 简单的示例: setMinimumSize(370, 150); setMaximumSize(370, 150); 其他如height和width一般可以不理会。原创 2010-03-16 00:46:00 · 11002 阅读 · 1 评论 -
从源代码编译安装Qt开发工具如(KDevelop)时遇到:Qt (>= Qt 3.3 and < 4.0)解决方法
有时候,我们安装的Distribution Version 有点低,或是我们发现系统仓库中默认带的IDE如KDevelop版本较低,对Qt4不能很好的支持,那么就像到了下载一个自己编译安装。这里以KDevelop为例,目前最新稳定版为3.5.4,对应的KDE为3.5.10,这恐怕也是KDE3系列下面最后一个稳定版了。但当前大家使用比较多的还是KDevelop3.5.3版,这也是很多Distribu原创 2010-02-28 12:09:00 · 3295 阅读 · 6 评论 -
Qt Creator在龙芯上编译与安装的方法
从QT官方网站上可以发现,提供的Qt Creator只有x86版的,不支持mips。下面这篇文章转载自龙芯论坛,希望对大家有所帮助。他写的还不是很具体,我也正在研究中。欢迎共同交流qtcreator1.1依赖于qt-4.5.1所以compile qtcreator1.1之前必须compile qt-4.5.1目前在debian的sid里面官方已经成功编译了x86的qt-4.5.1,但是mips原创 2010-02-28 12:10:00 · 4778 阅读 · 2 评论 -
KDevelop 中scim中文输入法问题解决方案
在KDevelop下使用中文输入遇到的问题一般有如下情况:1、根本不能调用出输入法;2、输入法栏中没有中文输入法;3、能够输入中文,但输入一秒左右的时间后,如不确认,就会消失。要解决如上问题,需要做以下的事情:1、检查有没有正确安装中文输入法,或者是中文输入法没有装全2、检查常用的中文字体有无正确安装,如文泉驿等;3、将QT_IM_MODULE=scim改为QT_IM_MODULE=xim即可(有原创 2010-02-28 12:16:00 · 3126 阅读 · 0 评论 -
关于Qt 4授权的一次问答
问:据说Qt的授权比较繁琐,若开发商业软件则要付费;而好多其他跨平台库则没有这个限制,如gtk+和wxWidget。 答:关于这个问题,我前面有一篇博文已有了详细的解释。这里可以补充说明一下,Qt开发商业软件也可以不开放源代码,这就要求开发者选择遵循LGPL协议,因此要求程序动态链接Qt库,不可以静态链接。也就是说,采用静态链接到Qt库的话,则实际上自动选择了遵循GPL协议而不是LGP原创 2010-03-11 23:08:00 · 2411 阅读 · 1 评论 -
在商业版中编写的代码能在开源版下编译吗,反过来呢?-回答网友提问
从Qt的设计上看,应该是可以的,“一次生成,到处编译”是Qt的本质特色。但有一个前提,就是首先要确认你的代码没有使用只有在商业版中才有的功能,然后确定你的商业版和开源版的对应关系,最好是版本号取得一致。最后,你在开源版中试一下,如果可以编译并成功运行,就没有问题。 反过来的话,应该是只需要对应好版本就可以了。原创 2010-03-10 22:24:00 · 1733 阅读 · 0 评论 -
Qt 4中如何为对话框设置背景?说说我总结的方法
问:在Qt4中如何为对话框设置背景?答:这个问题值得总结一下。大致有以下的思路和方法:1.重写paintEvent()事件在该事件中用画笔QPainter重画整个背景。该方法比较复杂,不建议初学者采用。2.使用调色板类QPalette //以下代码中pWidget为指向要设置的widget的指针。 QPalette palette = pWidget->pa原创 2010-03-08 22:13:00 · 6691 阅读 · 6 评论 -
如何在非Qt 程序中使用qmake
QMake 是 Qt 工具包中带的一个非常方便的工具。可以用于生成 Makefile 以及各种工程文件,还可以生成 Microsoft Visual Studio 可以使用的项目文件等。最关键的是它可以自动解决依赖关系,不用手工写 Makefile 了。而且它是跨平台的。为我们的工程创建一个 project.pro 的 qmake 工程文件,例如:SOURCES = main.cpp Di原创 2010-03-11 00:27:00 · 2650 阅读 · 0 评论 -
Qt 4开源版与商业版到底有何不同?
在网上经常看到有朋友提问,Qt开源版和商业版到底有那些不同,有没有必要使用商业版等问题,看来还是很有必要向大家介绍一下:1. 功能不尽相同两者在源码上基本一致,但开源版缺少一些数据库插件,因为这些插件都是基于特定数据库客户端程序的,很多商业数据库的客户端程序并不是开源的,所以插件就无法开源;也就是说,开源版不支持商业数据库的驱动,一般需要大家自己写驱动或者是采用第三方的驱动。另外,在Win原创 2010-03-10 22:08:00 · 21882 阅读 · 7 评论 -
如何在Qt 4程序中优化布局结构-兼回答网友提问
在迄今为止讲到每一个例子中,我们只是简单的把窗口部件放置到某个确定的布局中。但在某些情况下,由此形成的布局看起来可能还不是我们最想要的形式。在这些情形中,可以通过改变要摆放的窗口部件的大小策略和大小提示来调整布局。1.大小提示(size hint)和最小大小提示(minimum size hint)在介绍Qt窗口部件的大小策略之前,首先介绍大小提示(size hint)和最小大小提示(mi原创 2010-03-13 23:52:00 · 13284 阅读 · 17 评论 -
100个有用的Qt 4 程序中鼠标与键盘操作技巧(更新中)
问1:Qt 的程序在ARM板上运行时,发现鼠标移动速度很慢,但在PC机上测试则一切正常,这是什么原因? 答1:这里面恐怕更多情况下应考虑程序效率问题,因为嵌入式平台的资源是比较有限的。 可以的话,查看一下CPU的占用率,是不是很高。 如果是的话,说明程序效率不高,占用的资源过多。比如你的应用比较复杂,涉及到数据库操作、图片缩放或转换、视频显示、高分辨率下进行操作等等方面的话,就会占用大量资源,从而导致这种现象。 建议使用多线程。 问2:在点击按钮之后调用一个程序,该原创 2011-05-08 11:24:00 · 9293 阅读 · 4 评论