如果在Qt的ComboBox(下拉框)中显示的项目数较少,可能是由于以下原因导致的:
数据源问题:ComboBox的项目数取决于其绑定的数据源,如果数据源中的项目数较少,ComboBox中显示的项目数也会相应较少。因此,可以检查ComboBox绑定的数据源,确保其中包含足够的项目。
显示模式问题:ComboBox的显示模式包括下拉列表模式和可编辑模式。如果ComboBox设置为可编辑模式,用户可以手动输入项目,此时ComboBox中显示的项目数可能会较少。如果需要显示更多项目,可以将ComboBox设置为下拉列表模式。
组件大小问题:ComboBox的大小也会影响其中显示的项目数。如果ComboBox的大小较小,显示的项目数也会相应较少。可以尝试调整ComboBox的大小,以显示更多的项目。
样式问题:ComboBox的样式也可能影响其中显示的项目数。如果ComboBox的样式设置不当,可能会导致其中显示的项目数较少。可以尝试更改ComboBox的样式,以显示更多的项目。
总的来说,如果ComboBox中显示的项目数较少,可以检查其数据源、显示模式、组件大小、样式等方面是否设置正确,以确保其中显示的项目数符合预期。
Linux正在嵌入式开发领域稳步发展。因为Linux使用GPL(请参阅本文后面的参考资料),所以任何对将Linux定制于PDA、掌上机或者可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。许多Linux改良品种迎合了嵌入式/实时市场。它们包括RTLinux(实时Linux)、uclinux(用于非MMU设备的Linux)、MontavistaLinux(用于ARM、MIPS、PPC的Linux分发版)、ARM-Linux(ARM上的Linux)和其它Linux系统
嵌入式Linux开发大致涉及三个层次:引导装载程序、Linux内核和图形用户界面(或称GUI)。引导装载程序通常是在任何硬件上执行的第一段代码。在象台式机这样的常规系统中,通常将引导装载程序装入主引导记录(MasterBootRecord,(MBR))中,或者装入Linux驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,BIOS将控制移交给引导装载程序。
专用软件可以直接与远程系统上的闪存设备进行交互并将引导装载程序安装在闪存的给定位置中。闪存设备是与存储设备功能类似的特殊芯片,而且它们能持久存储信息—即,在重新引导时不会擦除其内容。
某些种类的嵌入式设备具有微小的引导代码—根据几个字节的指令—它将初始化一些DRAM设置并启用目标上的一个串行(或者USB,或者以太网)端口与主机程序通信。然后,主机程序或装入程序可以使用这个连接将引导装载程序传送到目标上,并将它写入闪存。设置工具链在主机机器上创建一个用于编译将在目标上运行的内核和应用程序的构建环境—这是因为目标硬件可能没有与主机兼容的二进制执行级别。
工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。这些组件包括:Binutils—用于 *** 作二进制文件的实用程序集合。它们包括诸如ar、as、objmp、objcopy这样的实用程序。G—GNUC编译器。Glibc—所有用户应用程序都将链接到的C库。避免使用任何C库函数的内核和其它应用程序可以在没有该库的情况下进行编译。构建工具链建立了一个交叉编译器环境。本地编译器编译与本机同类的处理器的指令。交叉编译器运行在某一种处理器上,却可以编译另一种处理器的指令。重头设置交叉编译器工具链可不是一项简单的任务:它包括下载源代码、修补补丁、配置、编译、设置头文件、安装以及很多很多的 *** 作。另外,这样一个彻底的构建过程对内存和硬盘的需求是巨大的。如果没有足够的内存和硬盘空间,那么在构建阶段由于相关性、配置或头文件设置等问题会突然冒出许多问题。
因此能够从因特网上获得已预编译的二进制文件是一件好事(但不太好的一点是,它们大多数只限于基于ARM的系统,但迟早会改变的)。一些比较流行的已预编译的工具链包括那些来自Compaq(FamiliarLinux)、LART(LARTLinux)和Embedian(基于Debian但与它无关)的工具链—所有这些工具链都用于基于ARM的平台。从用户的观点来看,图形用户界面(GUI)是系统的一个最至关重要的方面:用户通过GUI与系统进行交互。所以GUI应该易于使用并且非常可靠。但它还需要是有内存意识的,以便在内存受限的、微型嵌入式设备上可以无缝执行。所以,它应该是轻量级的,并且能够快速装入。
另一个要考虑的重要方面涉及许可证问题。一些GUI分发版具有允许免费使用的许可证,甚至在一些商业产品中也是如此。另一些许可证要求如果想将GUI合并入项目中则要支付版税。
最后,大多数开发人员可能会选择XFree86,因为XFree86为他们提供了一个能使用他们喜欢的工具的熟悉环境。但是市场上较新的GUI,象CenturySoftware的(Nano-X)和TrolltechQT/Embedded,与X在嵌入式Linux的竞技舞台中展开了激烈竞争,这主要是因为它们占用很少的资源、执行的速度很快并且具有定制窗口构件的支持。
常用的GUI开发工具有gtkmm,Glade,QtCreator。
gtkmm是官方的GTK的C接口,GTK是当前最流行的图形界面开发库之一。使用gtkmm,你不但可以从代码还可以用Glade来创建用户界面。不过需要libglademm的配合。gtkmm是自由软件,遵循LGPL(GNULibraryGeneralPublicLicense)。
Glade是GTK图形用户界面产生器。也就是说,Glade是个VisualProgrammingTool,和MicrosoftWindows平台的VisualTools类似,只要用鼠标拉一拉,它就会自动帮你产生Csourcecode。所以我们这些懒人,就不用再去为画面的设计烦恼,用Glade设计好画面,再用编辑器把程式码稍为修减就OK了。(现在也有各种语言如C、Ada95、Python、Perl等的GTK介面,如果搭配其它工具,也可以自动产生C,Ada95,PythonandPerl的程式码)。
QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。此IDE能够跨平台运行,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。根据官方描述,QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。
GUI是指图形用户界面是指采用图形方式显示的计算机 *** 作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。然而这界面若要通过在显示屏的特定位置,以”各种美观而不单调的视觉消息“提示用户”状态的改变“,势必得比简单的消息呈现花上更多的计算能力。
WTL都算不上什么Framework,就是利用泛型特性对Win API做了层封装,设计思路也没摆脱MFC的影响,实际上用泛型做UI
Framework也只能算是一次行为艺术,这个思路下继续发展就会变得没法用了,比如 代码过于复杂,编译太慢,出错不好调试等问题难以解决。
而且封装得也不完全,还是随处可见 HWND HDC之类的东西。
用途主要是写一些很小的程序,或者作为其他UI框架的后端实现部分,比如我写过一个小框架用来做安装卸载程序,非常小,其中创建管理窗口部分是用WTL的。
MFC
是更高级点的Win API封装,比WTL封装彻底,很难见到HWND
HDC了,也提供了不少实用工具类,比如高级控件,泛型容器,IO访问,网络协议等。除此之外,还提供了一些基本框架,比如
Document/View,这就是个MVC的简化版本,只有MV,但是对于数据的管理,消息的传递等又没有什么约束,导致Doc/View被用得乱七八
糟。尤其是对事件处理的模型,消息映射是功能简陋,而且容易出错的方式,唯一优点是性能好。 从VC++
1X就有MFC了,那时整个UI界的设计思想都比较落后(除了Apple),MFC又背负了沉重的兼容性包袱,比如vc++
152的MFC程序到了vc2003稍加修改都可以编译,导致MFC后期没有什么发展,就是沿着老的思路完善了些细节,添加了些组件,但是根本性的设计
问题没有改进。
GTK,这个吃了语言的亏,用C写面向对象实在是痛苦,虽然在思想上比MFC要先进了些,但是写出来的代码比MFC要罗嗦很多了。相比MFC,多了Layout的概念,事件处理上有了Signal/slot,虽然用起来很麻烦。
wxWidgets,
这个基本就是个跨平台的MFC,对各个平台的差异做了抽象,实际上后端大多还是用平台原生的API实现,好多控件都是直接用系统原生的。有
wxWidgets for
GTK+的版本,后端就是GTK+,wxWidgets就是一层壳。这也是wxWidgets的优点,它编译出来的程序发行包比较小,性能也不错。
以上这些就是上世纪90年代的UI Framework技术水平了,至今它们也依然没有太多进步。
下面来谈谈21世纪的技术。
Qt,
虽然它也是上世纪90年代出现的,但是它在21世纪有了长足的进步。应该说它的起点就比较高,一开始就定位跨平台,而且不满足于简单封装系统API,而是
要自己创造出一套完整的API和框架,甚至要代替系统API,所以不仅仅是做UI,而是涉及到了APP开发所用到的所有东西,包括网络,数据库,多媒体,
脚本引擎等。signal/slot是Qt发明的,这是事件通知模型里C++语言的最佳实现了,甚至我都觉得这该写进C++标准,估计C++委员会的老顽
固们是从不写GUI的。
早期的QT也是没有DirectUI的概念的,每一个QWidget都对应一个原生窗口,从Qt44开始,只有顶层
QWidget才是原生窗口,而Child Widget是Alien
Widget,只是个抽象的图层不对应原生窗口,这就实现了DirectUI的概念,很多图形效果也就变得可能了,比如窗口层叠透明效果。
在48后实现了QPA(Qt Platform Abstraction),这就使移植Qt变得很容易,目前Qt是支持平台最多的框架没有之一。
由于早期授权的问题,Qt对于开源社区不是很友好,导致推广不太顺利,直到它改成了LGPL方式,如果Qt能早点想开了,恐怕就没有wxWidgets的生存空间了。
Qt的缺点也是有的,就是太大,不过可以自己剪裁,我可以把QT库剪裁到发行包压缩后25MB。
WPF,
微软在Win
Form的思路上走到死胡同后,终于痛下决心用正确的方法开发UI库了。21世纪的UI一定是定义出来的,绝对不能是代码写出来的,所以有了XAML这个
强大的定义工具,不但可以定义UI布局,还包括图形动画效果,消息响应方式等。配合C#这种优秀的语言,更是如虎添翼。但是问题也很明显,就是过于庞大,
不仅开发时要用到庞大的IDE和设计工具,发行的安装包也十分巨大,所以目前还是很少有人拿他写通用软件客户端的,大多是做企业项目时写专用客户端。
大概4-5年前吧疼讯曾经用WPF写了个QQ,但是只实现了基本功能就已经比C++客户端大好多了,而且运行缓慢,主要是太吃内存,而且那时WPF的优化还不充分。
最后我想补充下真正的UI库之王,cocoa。
Apple的成功有很多原因,其中之一就是cocoa,cocoa理念十分先进,而且出来得早,我都怀疑Qt和WPF有不少思想都是借鉴cocoa的。
定义式的UI,用xib就可以定义UI的绝大部分细节,而且提供所见即所得的可视化设计工具。
严格的MVC,而且定义非常清晰,分工明确。
signal/slot,虽然不叫这个名字,但思想就是,而且真的是拖动鼠标就能connect。
提供了ARC,闭包和反射,给UI开发带来巨大的便利性,当然这得益于Objective-C这个语言。
再补充下 Borland的OWL和VCL。
我是从Borland C++30和Delphi 10开始用的,那时的Borland看来很有前途的,可惜后来一系列决策失误导致现在这个公司几乎消失了,同学们不要再往这个坑里跳了。
OWL曾经和MFC是竞争对手,设计思想也差不多,个人感觉OWL的API设计更优雅一点,但是在市场上OWL被MFC彻底击败。
Delphi
是神作,它在RAD(快速应用开发)领域长时间没有对手,直到BS架构取代CS架构。Delphi的特点就是简单、开发快,单纯就写个基本可用的应用来
说,可能至今都没有比他更快的,但是缺点就是丑,基本大多数Delphi应用都是一大堆控件堆积在一起,很不美观,另外由于Pascal语言的限制无法和
现有大量的C/C++代码融合。虽然后来有C++
Builder,但是Builder里简单和快的优点也消失了。Borland的C++编译器越做越差,导致后来开源项目都不太愿意兼容这个编译器了。
VCL准确地说不是UI库,而是一套组件接口规范,类似COM ActiveX。delphi和C++builder都是基于这个规范构建了基础库。
UI库是个很大的话题,够写好几本书来探讨的,我这里就是随便写点自己的感受。
单纯讨论每个库的优劣是没有意义的,而是要放到具体的应用场景里来看,每个库都有自己擅长的场景。
如果仅在Windows下,追求程序小巧,用WTL,不足的地方自己实现去吧,但是视觉效果就呵呵了。
如果可以大一点,还要好看点,那就Qt。
如果完全不在乎大小,只要视觉效果华丽,就用WPF,如果把开发工具价格也考虑进来,那么土豪才会选WPF呢。
MFC就是个鸡肋了,除非你现有的工程师不会用别的,或者有历史遗留代码要保持兼容。
如果要求跨平台,那么就用Qt,wxWidgets和GTK+跟现在的Qt比起来没有什么优势了。
如果是iOS Android,那么最好用原生UI库,除非你写游戏。
IT168手机评测近来,随着摩托罗拉Droid以及索尼爱立信X10等多款谷歌Android机型的发布,“GPhone”仿佛一夜之间从“非主流”蜕变为“未来的中坚力量”。尽管诺基亚仍然牢牢把握着近半的市场占有率,但Android的强势增长对其高端市场还是形成了极大的冲击。在终端厂商方面,随着三星、LG、索尼爱立信、MOTO纷纷投靠谷歌怀抱,曾经合作共赢的S60俨成分崩瓦解之势,而完全掌控了塞班的诺基亚似乎也成为了S60最后的归宿。
当然,诺基亚不想让这成为现实。最近举行的塞班交流会上,塞班基金会向大家展示了采用了Qt开发框架的新S60系统。
小贴士:2008年1月,诺基亚以约合153亿美元的价格收购著名跨平台开源开发工具Qt的开发商Trolltech公司,以增强其服务和软件业务。大名鼎鼎的KDE、Google Earth、Skype、Photoshop Elements等都是使用Trolltech公司开发的Qt工具包。
symbian Qt演示视频
从视频上看,新的Qt开发框架确实为S60带来了不少心元素。但是仔细观察,这些变化似乎没能带给我们过多的震撼。虽然 *** 作方式较当前版本的S60已经有不少新意,如主屏滑动切换、d出式程序菜单、widget控件、对角线翻页等,但是从细节上分析,很多东西我们仿佛都有着似曾相识的感觉。下面让我们一一评述:
滑动切换主屏
主屏一
主屏二
主屏三
在视频中我们看到,用户可以通过左右滑动的方式切换当前主屏,而此时底部的三个标签并不随之改变。熟悉windows mobile或是Android系统的用户一定可以联想到,这样的 *** 作界面和Touch Flo及HTC SENSE颇为神似。不过相对于这两者来说,除了华东触控方式外,华丽的3D效果和高度的主屏自定义特性才是更主要的特点。如此看来,如果Qt只停留在这种水平,显然无法和Touch Flo及HTC SENSE相比。而其后期所要作出的努力,显然不止一星半点。
d出式程序菜单
当前的S60第五版,打开主菜单的方式是要靠主程序按键。而在视频演示中我们看到Qt版将会将其设计为d出式。不过这个设计显然也无法激发我们更多的兴趣,应为该设计早已成为谷歌Android系统最为鲜明的特点之一。而且Androd另一同风格设计“帘幕式管理器”还没有在Qt中发现,开发者们仍需努力。
层叠式浏览
静态效果
动态切换效果
对于照片或是其它文件的浏览效果,我们同样可以找到相似对象,那就是上周才刚刚发布的索尼爱立信旗下首款Android手机X10。交错式的层叠和切换中的“漫天飞舞”对于照片浏览来说确实效果很炫,只可能这仍然不是Qt独家带给我们的。也许双方是同时开发的,但是毕竟X10已经发布,但Qt还基本处于概念阶段,相距甚远。
桌面widget
看到这想必不少人都会笑出声来,widget目前早已非常普及,其代表当属三星。不近是高端智能手机,三星很多中低端产品也都将widget植入其中,虽然看起来蛮有趣,但笔者始终认为这个东西并不很实用。如果Qt还想在这方面做什么文章,恐怕就真有些好笑了。
对角线翻页+透明特效
对角线翻页 玻璃效果
"对角线翻页+透明特效,这是唯一一个让我们感觉到视觉冲击的展示。
用户只要将手指从屏幕右上角滑至左下角即可翻阅主屏而进入widget界面,而在翻页过程中还能体现出类似于透明的玻璃效果。
"这种 *** 作方式及玻璃效果之前并没有出效果,也算是施展了全身武艺的Qt本次表演唯一的亮点。多少给了我们一些期待的理由。
如果您对如上部分的点评有所质疑的话,可以参看如下两段视频,分别是刚刚发布火发售的索尼爱立信X10和HTC HD2的演示,其中包括了部分 *** 作界面效果的展示,我们可以和刚刚的Qt比较一下,结果自然明了。
索尼爱立信X10超炫广告
HTC HD视频评测
(点击进入)
虽然诺基亚及塞班基金会不愿承认塞班已近“末路”,但是摆在眼前的事实似乎已无需争辩。不过其实诺基亚也早有准备,刚刚发布的搭载了maemo系统的新旗舰N900马上就将宣告一个新的时代的到来。届时,塞班已经不必再苦苦坚守诺基亚岌岌可危的高端市场,而后来者maemo将很快扛起这面大旗。
结语:maemo将会是未来几年诺基亚绝对核心的智能手机平台,而其也将与势头强劲的谷歌Android、MAC OSX、微软windows mobile 65/7等进行长期的斗争。而塞班将沦为中端以下手机普及平台,Qt无法真正的救赎塞班。
r语言中qt函数是分位数函数的自由度。
r提供工具来计算累计分布函数p(cummulative distribution function CDF),概率密度函数d和分位数函数q,另外在各种概率分布前加r表示产生随机序列。
R语言的特点
R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的 *** 作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:
1R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。
2R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如SPSS、SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。
以上就是关于qtcombobox项目数少全部的内容,包括:qtcombobox项目数少、嵌入式设备的嵌入式设备上的Linux系统开发、常用的GUI开发工具有哪些_gui工具是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)