qt坐标系统

qt坐标系统比较简单

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

上面的代码把按钮显示为父窗口的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的元素是可以自由拖拉的),所以加入了弹簧后,左边的和右边都是可以被拖动的,而中间的按钮和空格是固定不动的。

下面是具体的显示效果

接下去我们介绍栅格布局

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 0QHBoxLayout layout;layout.addStretch(1);layout.addWidget(&button,1);layout.addSpacing(50);layout.addWidget(&edit,1);layout.addStretch(1);
#endif#if 1QGridLayout 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);
#endifQObject::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. QT简单入门程序——实现可修改用户信息界面

    QT简单入门程序 一.先行准备 二.新建项目 三.添加文件 四.编辑代码 1.基本信息窗口类 2.详细资料窗口类 3.联系信息窗口类 4.导航界面 5.main函数 五.CTRL+R运行 六.额外知识 ...

  2. 探索Qt图像处理的奥秘:从入门到精通

    探索Qt图像处理的奥秘:从入门到精通(Exploring the Secrets of Qt Image Processing: From Beginner to Expert) 引言:Qt图像处理的 ...

  3. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  4. 深度探索Qt窗口系统——布局篇

    深度探索Qt窗口系统--布局篇 虽然界面管理器可以完成窗口布局,但是对于动态布局的情况下,这种做法就无能为力了,现实中界面经常要支持国际化,对于同一内容用不同语言翻译可能长度不一,这就需要窗口动态布局 ...

  5. Matlab 界面设计简单入门(App Designer)

    新版Matlab交互界面基本操作 注意:本教程仅适用于2016b以后版本,建议安装2019b以后最新版本Matlab 与原来的GUIDE不同,新版的App Designer程序编写更加合理,更加好看, ...

  6. 【CMS建站】写给大家看的网站制作教程03—零基础学网站制作的简单入门指南...

    作者 | 杨小爱 来源 | web前端开发(ID:web_qdkf) 在上一篇<[CMS建站]写给大家看的网站制作教程02-网站制作的工具介绍与下载安装>文章中,我详细的讲解了关于制作一个 ...

  7. Proteus简单入门教程以及使用Proteus仿真STM32F103单片机和Arduino单片机

    工欲善其事必先利其器,有条件的朋友直接使用开发板学习即可,但有时候手边没有实物开发板可以用,那么可以借助一些仿真软件运行我们的程序,Proteus算是使用的比较多的一种仿真软件,我们使用它来做STM3 ...

  8. (超多图)基于Android studio开发的一个简单入门小应用(超级详细!!)(建议收藏)

    基于Android studio开发的一个简单入门小应用 一.前言 二.前期准备 三.开发一个小应用 五.运行应用 一.前言 在暑假期间,我学习JAVA基础,为了能早日实现自己用代码写出一个app的& ...

  9. ajax地址为jsp,AJAX_在jsp中运用ajax(简单入门),由于ajax为我们带来太多的好处 - phpStudy...

    在jsp中运用ajax(简单入门) 由于ajax为我们带来太多的好处,所以在很多应用中我们都会优先选择这种技术,于是我也为之所吸引,现跟大家分享下一个简单的入门例子. regist.jsp文件:一个简 ...

最新文章

  1. asp.net Core多环境读取Json
  2. Netty源码解析4-Handler综述
  3. Nginx 为什么快到根本停不下来?
  4. 【译】Java中的对象序列化
  5. 云管理成功的关键:应用工作流
  6. springboot md5加密_SpringSecurity入门-SpringBoot集成SpringSecurity
  7. leetcode-349-两个数组的交集
  8. python三维数组切片_【NumPy学习指南】day4 多维数组的切片和索引
  9. linux 修改hba参数,更改Raid卡和HBA卡在linux下的启动顺序
  10. Java 8 Iterable.forEach()与foreach循环
  11. nginx 访问控制之 document_uri
  12. 小米台灯底座接口很松_小米新品,米家充电台灯,续航40小时,不足百元,米粉:买买买...
  13. VC预定义常量WIN32、_WIN32、_WIN64分析(转载)
  14. XML生成与解析(DOM、ElementTree)
  15. rtmp/rtsp直播播放器选择
  16. 2015计算机二级office真题,2015年计算机二级office题库及答案
  17. 2021-10-11 全国大学生软件测试大赛赛前学习参考资料
  18. 浅显易懂的理解SQL各种锁(基于MYSQL 8.0.28)
  19. golang学习资源
  20. 运放振荡问题的个人理解

热门文章

  1. Android平台RTMP推送端实现外部数据对接推送和录像
  2. 正则总结(Python)
  3. 浏览器tab标签显示网站标志图标
  4. Redis五种数据结构应用场景
  5. Linux nohup实现后台运行程序及查看(nohup与)
  6. easyPOI基本用法详解
  7. SSM 框架整合 spring 发送邮件功能实现!
  8. php一句话怎么写_PHP一句话木马后门
  9. android两个java文件内容_java – 在1个请求中将多个文件从Android上传...
  10. vs 2015 oracle,VS2015连接oracle11g出现异常