qt坐标系统

qt坐标系统比較简单

button.setGeometry(20,20,100,100);

上面的代码把button显示为父窗体的20,20处宽度为100,高度为100

接下去是布局

qt里面布局须要增加<QLayout.h>这个头文件。

qt里面垂直布局

qt里面的垂直布局须要导入<QVBoxLayout.h>这个头文件。

qt里面的水平布局须要导入<QHBoxLayout.h>这个头文件。

以下是是一段布局的代码

QHBoxLayout layout;

layout.addStretch(1);

layout.addWidget(&button,1);

layout.addSpacing(50);

layout.addWidget(&edit,1);

layout.addStretch(1);

当中我们首先创建了一个QHBoxLayout这个类。

然后我们像左边增加一个比重为1的弹簧。右边增加一个比重为一的弹簧。中间用50个像素点隔开。

弹簧的目的就是为了固定(stretch设置为0的元素是固定的,而stretch设置为1的元素是能够自由拖拉的),所以增加了弹簧后,左边的和右边都是能够被拖动的。而中间的button和空格是固定不动的。

以下是详细的显示效果

接下去我们介绍栅格布局

qt里面用栅格布局我们得用<QGridLayout.h>这个头文件下的QGridLayout这个类。

以下是一段代码

QGridLayout layout;

layout.addWidget(&button,0,0);

layout.addWidget(&edit,0,1);

layout.addWidget(new QPushButton("a"),1,0);

layout.addWidget(new QPushButton("b"),1,1);

layout.addWidget(new QPushButton("c"),2,0,1,2);

layout.setRowStretch(3,1);

layout.setColumnStretch(2,1);

在这里我们在布局里面增加了5个窗体。

4个button,1个输入框。

最右边是一个列弹簧。最以下是一个行弹簧。

voidaddWidget(QWidget*,introw,intcolumn,introwSpan,intcolumnSpan,Qt::Alignment=0);

这是QGridLayout里面addWidgets这个控件的函数首部,我们它能够设置窗体所在的行列还能够设置窗体的跨度。

以下是显示效果

总的一个代码

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLayout>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QGridLayout> int main(int argc,char* argv[])
{
QApplication app(argc,argv);
QWidget w;
QPushButton button;
button.setText("button");
// button.setParent(&w);
QLineEdit edit;
// edit.setParent(&w);
// QVBoxLayout layout;
#if 0
QHBoxLayout layout;
layout.addStretch(1);
layout.addWidget(&button,1);
layout.addSpacing(50);
layout.addWidget(&edit,1);
layout.addStretch(1);
#endif #if 1
QGridLayout layout;
layout.addWidget(&button,0,0);
layout.addWidget(&edit,0,1);
layout.addWidget(new QPushButton("a"),1,0);
layout.addWidget(new QPushButton("b"),1,1);
layout.addWidget(new QPushButton("c"),2,0,1,2);
layout.setRowStretch(3,1);
layout.setColumnStretch(2,1);
#endif
QObject::connect(&button,SIGNAL(clicked(bool)),&w,SLOT(close()));
w.setWindowTitle("hello world");
w.setLayout(&layout);
w.show();
return app.exec();
}

当中我们用#if 0 .....#endif的预编译的方式来凝视代码。



qt坐标系统与布局的简单入门的更多相关文章

  1. Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

    一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...

  2. 用IntelliJ IDEA创建Gradle项目简单入门

    Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...

  3. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

  4. Okio 1.9简单入门

    Okio 1.9简单入门 Okio库是由square公司开发的,补充了java.io和java.nio的不足,更加方便,快速的访问.存储和处理你的数据.而OkHttp的底层也使用该库作为支持. 该库极 ...

  5. emacs最简单入门,只要10分钟

    macs最简单入门,只要10分钟  windwiny @2013    无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...

  6. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  7. Docker 简单入门

    Docker 简单入门 http://blog.csdn.net/samxx8/article/details/38946737

  8. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  9. git简单入门

    git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...

随机推荐

  1. [转]ThinkPHP中如何使用原生SQL

    From : http://huangqiqing123.iteye.com/blog/1540323 TP的模型可以支持原生SQL操作,提供了query和execute两个方法,为什么原生SQL还要 ...

  2. docker logs-查看docker容器日志

    只限制最后100条的日志,并持续更新日志显示 docker logs -f --tail= CONTAINER_ID docker logs -f --tail CONTAINER_ID   http ...

  3. apache+jetty 配置web jsp服务器负载均衡

    首先,查找中文资料,貌似很少,有一个网友写了点,但是1版本过老,2有些地方有错误. 经过我自己摸索,记录一下.这个图很简洁明了 第一阶段 ,配置jetty 首先从 http://download.ec ...

  4. Dubbo服务化最佳实践

    分包 建议将服务接口,服务模型,服务异常等均放在 API 包中,因为服务模型及异常也是 API 的一部分,同时,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP). 如果需要,也 ...

  5. go语言之进阶篇定时器Timer的使用

    1.Timer的使用 示例: #创建一个定时器,设置时间为2s,2s后,往time通道写内容(当前时间) package main import ( "fmt" "tim ...

  6. sharding-jdbc之——分库分表实例

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79368021 一.概述 之前,我们介绍了利用Mycat进行分库分表操作,Mycat ...

  7. 免费桌面视频录像工具OBS的简单操作介绍

    本帖最后由 felix0911 于 2014-5-21 09:32 编辑 0起点,傻瓜操作,为什么不尝试录制一个自己的游戏视频,来展现自己牛逼风骚的操作呢?(本教学不包括后期制作,特效背景音乐等部分) ...

  8. CSS3动画的回调处理

    我们在做js动画的时候,很多时候都需要做回调处理,如在一个动画完成后触发一个事件.一个动画完成后执行另外一个动画等等,但在使用CSS3动画时能不能捕获到运动的状态做回调处理呢? CSS3动画也是可以做 ...

  9. RAMPS1.4 3d打印控制板接线与测试2

    http://learn.makerlab.me/guides/1/articles/2 mega 2560板子在3d打印机中相当于大脑,控制这所有的3d打印配件来完成复杂的打印工作,但mega256 ...

  10. 谢宝友:会说话的Linux内核

    我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,他目前任职中兴通讯操作系统团队,他个人在业余时间前后共花费了6年时间完成了对Linux内核Linux 2.6.12内核源代码注释工作. 我们本 ...