Qt设计师图片查看器界面的对象查看器窗口怎么做

安装完Qt OpenSource之后,在开始菜单目录下会有这几个东西。
其中【Designer】是用来设计窗口界面的程序。所以现在可以使用它来设计一个对话框。在【Qt Creator】中,【设计】这一项里也可以做界面的设计。
打开【Designer】,会默认弹出【新建窗体】,选择【Dialog without Buttons】,这会新建出一个没有任何东西的对话框。
【Dialog with Buttons Bottom】和【Dialog with Buttons Right】会创建出包含【确定】和【取消】的两个按钮的对话框,而且这2个按钮的位置会在对话框的右下角或者对话框的右上角。
当点击创建之后,就可以对这个对话框做界面的设计了。
对于用过Visual Studio或者其它编程工具的大家来说,这个设计界面也算是比较熟悉的吧,最左边一栏是最常用的工具栏。
我将对话框做成这样子:
可以修改每个部件和这个对话框的名字,在【对象查看器】中选择【Dialog】。
在【属性编辑器】查看对话框的属性,把对象名称改成自己想要的名字。同理,【label】、【pushButton】、【pushButton_2】也一样可以这样做修改。
最后我改成这样子:
然后保存,这个文件是一个.ui格式的文件。
打开【Qt Creator】,新建一个项目。
因为这只是一个比较简单的创建对话框,创建完成这个项目之后,我把它自己创建的【mainwindow.h】【mainwindow.cpp】、【mainwindow.ui】这三个文件都删除了,因为在这个测试里不需要它们。
右键【项目名称】,点击【添加新文件】,选择【C++ Class】,写上类名,然后就完成创建。我创建的类叫【MyDialog】。
要使用我们刚刚所设计的那个对话框,我们需要把那个.ui文件添加到项目里。右键【项目名称】,点击【添加现有文件】,选择对话框的那个.ui文件,确定。
在【mydialog.h】中,代码如下:
第5、7行:【mydialog.ui】文件对应的头文件就叫【ui_mydialog.h】,这是一定的。这个头文件保存了我们所设计的【MyDialog】这个对话框的所有定义。我们定义的【MyDialog】类需要继承自【QDialog】和【Ui::MyDialog】这两个类。
构建这个项目之后,你就可以进入到【ui_mydialog.h】这个头文件里面去了。你会发现,这个文件里的【MyDialog】这个类继承自【Ui_MyDialog】,【MyDialog】类存在于命名空间【Ui】下,所以要使用这个类,需要这样做:Ui::MyDialog。
第15行:这是一个很方便的写法,到了源文件时再说明这个写法有什么用处。
其它行应该就不需要再说明了,现在看源文件代码:
第6行:这里调用了一个叫做【setupUi】的函数,把this指针作为参数。
这个函数是在【Ui::MyDialog】类中的一个公有函数。它用来初始化对话框的各个部件和我们设置过的属性。它其实就相当于我们自己初始化部件一样。
同时【setupUi】函数还会自动将那些符合【on_object_signal】命名格式的槽与相应的【object】的【signal()】信号连接起来。
这意味着【on_helloButton_clicked】槽将会在【setupUi】函数中建立一个连接:
所以这省了我们自己去调用【connect】函数来建立连接这一步骤。
关于【setupUi】函数所传入的this指针参数。
【Ui::MyDialog】类并不是一个继承自【QDialog】的类,它只保存了我们在【Qt 设计师】中放置的所有部件。
然后在【setupUi】函数中实例化这些部件,同时设置我们在【Qt 设计师】中所设置的属性。
【setupUi】函数所需要的参数是QDialog *类型,在函数实例化部件时,会将这些部件的父对象指定成这个参数,也就是说这些部件从实例化开始,他们就已经属于这个参数所在的对话框中了。也说明了【setupUi】函数传递this指针的原因。
它等于是自动地把我们在【Qt 设计师】中放置的所有部件和其属性全部"搬到了"我们自己写的【MyDialog】类中。
其它的代码之前都是有说过的,所以应该很好理解~!
最后在main函数中创建【MyDialog】实例后,就可以显示出来了。
结果就是这样子:
另外,在【Qt 设计师】中对部件进行布局。
这是用来做布局的工具栏。
第1个:水平布局,相当于QHBoxLayout。
第2个:垂直布局,相当于QVBoxLayout。
第3个:使用水平分隔器布局,相当于创建一个水平的QSplitter对象。
第4个:使用垂直分隔器布局,相当于创建一个垂直的QSplitter对象。
第5个:栅格布局,相当于QGridLayout。
第6个:在窗体布局中布局,相当于QFormLayout。
第7个:打破布局。
第8个:调整大小。
算是比较简单,所以可以自己多多尝试这些布局方法。
关于QSplitter类,它用于切分窗口,并且可以任意调节各个子窗口的大小。
可以写以下代码:
然后试着运行看看,你就会知道它是什么功能了。
用到的函数: 阅读(...) 评论()安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&QT界面,最全面的QT界面文章 - 电子工程世界网
在电子工程世界为您找到如下关于“QT界面”的新闻
QT界面资料下载
采用Qt 的一次编写多处编译运行机制和其强大的信号-槽机制,首先基于Qt 设计了遥控式控制设备的开发框架和通信协议框架,然后通过Windows 平台上的Visual C++可视化编程环境,使用Qt Designer,完成了通信协议功能和设备控制界面的软件开发。实现软件跨多平台,提高了软件的开发效率和可复用性。关键词:Qt;遥控式;信号-槽;VxWorksQt是一个多平台的C++图形用户界面...
1、360新版特性界面源代码
实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件。但源码好像是c++。
2、aidl跨进程调用
服务端onBind暴露,然后客户端bindService得到aidl对象
3、UI设计之 仿做蘑菇街UI设计 源码
包含viewflipper 用来显示一个展示幻灯片banner 用到了...
Qt Quick中文手册简介
Qt Quick提供了一套高动态,丰富的QML元素来定制用户界面的说明性框架。Qt Quick有助于
程序开发员与界面设计员的合作为便携式设备建立流畅的用户界面,例如:移动电话、媒体播放器,机
顶盒以及上网本等。Qt Quick包含了QtDeclarative C++模块,QML并且它们全被整合到Qt
Create IDE中。使用QtDeclarative...
7.4 按键驱动程序....................................323
7.4.1 按键驱动程序编写....................323
7.4.2 按键驱动测试程序....................328
第8 章 嵌入式图形用户界面-Qt/Embedded .....331
8.1 Qt 介绍...
友善之臂的QtEmbedded实例教程第一章 LINUX 图形用户界面 GUI 介绍.....................................................................................11.1& 常用 GUI 介绍...
和易维护等要求。另外,嵌入式Linux操作系统中一个重要的组成部分就是图形用户界面GUI(Graphic User Interface)。风电控制系统中人机界面功能复杂,种类繁多,其性能的好坏主要取决于图形功能的设计。利用Qt/Embedded(简称qte)开发的GUI,能实现系统的监视,控制,管理等功能。...
方便应用到各种PDA系统的点菜终端程序和普通PC机的服务器软件,实现无线点菜系统。主要包括以下研究内容: 1.构建嵌入式Linux系统开发平台。使用Ubuntu系统建立基本开发环境,建立交叉编译工具,安装配置NFS;安装用于开发点菜终端程序的Qt,包括Qt/X11、x86版Qt/Embedded、ARM版Qt/Embedded。 2.设计点菜终端程序。利用Qt设计器规划点菜终端程序的大致界面,然后...
在linux结合QT库进行界面编程,该程序还包括网络通讯、信号处理、多线程处理和界面编程等技术...
Qt是linux下的界面编程,是非常有价值的编程技术,这是官方提供的中文白皮书,非常实用!!!...
一个使用QT库显示界面,在linux下对Xml文件进行解析的示例。...
QT界面相关帖子
1、概述Qt 允许程序员不通过任何设计工具,以纯粹的 C++代码来设计一个程序。但是更多的程序员更加习惯于在一个可视化的环境中来设计程序,尤其是在界面设计的时候。这是因为这种设计方式更加符合人类思考的习惯,也比书写代码要快速的多。Qt 也提供了这样一个可视化的界面设计工具:Qt 设计器(Qt Designer)。其开始界面如上图所示。Qt 设计器可以用来开发一个应用程序全部或者部分的界面组件。以...
连接摄像头。系统硬件架构如图2 所示。
& & 3 系统软件架构
& & 本系统的软件架构有三个层次:驱动层、系统层和应用层。在驱动层,移植I2S 驱动、USB 摄像头驱动、LCD 驱动和以太网驱动,并编写ADC 驱动,用以保证各个硬件模块能正常工作。在系统层,移植Linux 操作系统、QT 触摸屏界面开发环境及BOA 嵌入式网络服务器。在应用层,采用...
为什么嵌入式几乎全部用的是linux而不是WinCE由于很多人总问这个问题,所以这里做一个总结文档供大家参考。这里必须先说明,以下的步骤都是针对Linux系统的,并不面向WinCE。也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一直很难理解,其实WinCE的界面比linux的界面好看多了,使用起来也很方便,更为重要的是...
,不属于嵌入式Linux讨论的范畴。我们进行嵌入式Linux开发,只是把Linux桌面环境当作一个工具,在Linux桌面环境下运行嵌入式Linux开发工具,例如gcc 编译器,make工具来开发我们的嵌入式Linux应用程序而已,对于嵌入式开发工程师来说,没有必要花费那么多的精力和时间去研究Linux桌面版和服务器的应用,只要能了解最基本的操作即可。现在的桌面Linux系统的图形化界面做的也相当好...
我这帖子是转载的,但是这个问题也确实困扰了我许久。
linux是个比较复杂庞大的系统,可以为开发者做很多事,把开发者从琐碎的硬件底层解放出来,更多的关注业务逻辑。可以方便的开发人机界面。
安卓的出现,让开发者能够完全不再关注底层硬件,更方便的开发出漂亮的界面,大大缩短学习周期。那么,安卓和linux在嵌入式领域是一个什么关系?我曾经询问了linux的老鸟和安卓程序员,发现竟然没有linux转...
本帖最后由 hydralisk 于
14:53 编辑
1、Linux下Qt Creator的配置从Dash中找到Qt Creator,打开,打开后可以看到主界面,这个界面和Windows下基本一致(后面安装windows版本就清楚了),在前面的两篇文章中我已经分别编译了Linux下的X86平台和ARM平台的QT库,这部分就针对这个IDE进行相应的配置,是能够进行应用程序的...
本帖最后由 补丁 于
16:24 编辑
由于很多人总问这个问题,所以这里做一个总结供大家参考。这里必须先说明,以下的步骤都是针对Linux系统的,并不面向WinCE。也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一直很难理解,其实WinCE的界面比linux的界面好看多了,使用起来也很方便,更为重要...
能力的,也是没办法的事,不然他的能力估计也很难被用上,也是分两面看吧。不去干坏事还能带来利益,反正不好说好坏,毕竟中国的教育也是呵呵 目前现状是不是 拼死学和摸索搞三年 底层驱动 开发 赶不上别人半年QT 画界面?? 各位前辈 多指点一下 [quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2202801&ptid...
8.3 音频设备程序的实现
8.3.1 音频编程接口
8.3.2 音频设备文件
8.3.3 音频设备编程设计
8.4 综合训练之媒体播放器移植
第9章 嵌入式Linux用户图形界面编程
9.1 Linux图形开发基础
9.1.1 GUI的一般架构
9.1.2 嵌入式GUI底层支持库
9.1.3 嵌入式GUI高级函数库
9.2 嵌入式Linux图形用户界面简介...
补充汽水。一旦系统感测到剩余汽水量不足,这个系统随后会通过一个人机界面(HMI),在手持设备、大型控制室或者机器本身的显示屏上显示状态更新。HMI的范围可以从简单的分段显示装置到高分辨率LCD显示器。
  显示系统通常拥有一个应用处理器来运行诸如Linux或VXWorks?等操作系统,这可以实现对Qt等框架的访问,从而进行图形用户界面(GUI)的设计。某些处理器甚至包括图形加速器,以便在减轻主...
QT界面视频
你可能感兴趣的标签
热门资源推荐温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&&&&&&& 打开build文件夹,就会看到每个.ui文件在这里都有一个对应的.h文件。在项目编译后,Qt已经为我们把.ui文件转换成了C++代码。会不会是这里的代码出了问题呢?我们打开.h文件一探究竟。示例图:&&&&&&&& 原来问题就出在这里了。之前我们说了,只有父子对象间添加了一个layout对象时,才能实现响应式布局。而这里Qt擅自为我们new了一个widget对象,却没有在它和它的父对象间添加一个layout中间层。&&&&&&& 那么解决思路也就清晰了。首先打开build文件夹下.ui文件对应的.h文件(如我的.ui文件是"mainwidget.ui",那么对应的.h文件就是"ui_mainwidget.h"),记下其中Qt擅自new的那个widget对象的名字。然后打开设计师界面类的cpp文件(如这里我打开"mainwidget.cpp"),在类的构造函数中new一个以该类为父对象的Layout对象,并将刚记下的widget对象添加到这个layout中。这样,响应式布局就完成了,代码见下图:&&&&&&&& 看似无从下手的问题,其实只需要两行代码就解决了。对于类似的情况,只要仔细分析两个问题:1.谁是谁的父对象? 2.父子对象之间有layout中间层吗?& 理通了这两个问题,响应式布局的一切难题都将迎刃而解。(转载请注明源出处)整理编辑 by 独家废物 @UESTC
阅读(279)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Qt设计师界面(.ui文件)实现响应式布局',
blogAbstract:'&&&&&&& 先解释一下响应式布局这个词,因为只是我个人将这个词用在了这里。响应式布局一词最早出现在网站开发中。随着各种分辨率不同的电子设备的出现,网站开发人员遇到一个十分棘手的问题,怎样让网站适应不同的设备。一个传统的做法就是为每种设备定制一个版本,但这绝对不是一个好的解决方案。开发人员们想,如果能让一个网站版本兼容多个设备(即网站布局会随设备分别率改变而自动调整),那该多好!于是,【响应式布局】出现了。&&&&&&& 对于Qt,我这里所说的响应式布局就是,当我们将软件界面任意放大缩小时,其各部件的布局会随之自动调整,而不是固定不变。&&&&&&& 看到这里,对Q',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 设计师图片查看器 的文章

 

随机推荐