Qt零基础教程(四)QWidget详解(3):QWidget的几何结构
Qt零基础教程(四) QWidget详解(3):QWidget的几何结构
这篇文章里面分析了QWidget中常用的几种几何结构
下图是Qt提供的分析QWidget几何结构的一幅图,在帮助的 Window and Dialog Widgets 可以找到相关的内容介绍:

在Qt中横坐标的方向和我们平时看到的笛卡儿坐标系是相同的,但是纵坐标和笛卡儿坐标系是相反的,这里的纵坐标是向下的,不知道是不是和刚开始的电子管屏幕电子打在屏幕上的顺序是有关的。
从这副图里面可以看到,这里有两种几何结构:
1:不包含外边各种边框的几何结构。
2:包含外边各种边框的几何结构;
**************************************************************************
在这里先分析不包含边框的各种设置函数:
一般情况下式,不包含边框的部分是客户区部分,这里面就是我们正常操作的部分,可以在这部分里面添加子部件。这部分是一个长方形,那么对于一个长方形,就会有大小和位置。大小的话就是宽和高(国外的说法,和中国的长宽高不同),位置就是这个长方形在电脑屏幕上的位置。Qt中保存这个长方形是用了一个QRect这个类,这里我们不去深究这个类,后面的文章会详细说明一下这个类。要改改变这个大小和位置可以有如下几个函数:
void resize(int w, int h);
void resize(const QSize &);
这两个函数是改变了长方形的大小,第一个参数是宽,第二个是高。这里的英文是Width和Height。设置了大小之后的窗口还是可以通过鼠标进行改变窗口的大小。
通过下面的函数可以获得客户区的大小:
QSize size() const
下面的函数分别获得了宽度和高度:
int width() const
int height() const
如果要设置不可以改变的窗口:
set FixedHeight(int h)
这个时候高度就是固定的了,不可以改变高度,但是可以改变宽度
set FixedWidth(int w)
这个时候宽度就是固定的了,不可以改变宽度,但是可以改变高度
void setFixedSize(const QSize & s)
void setFixedSize(int w, int h)
通过上面的这两个函数,高度和宽度都是固定的了,不可以通过鼠标来改变窗口的宽度和高度。
同时改变大小和位置的函数是:
void setGeometry(int x, int y, int w, int h);
void setGeometry(const QRect &);
x和y相对应的就是x坐标和y坐标。这里不可以单独的设置x和y的坐标。
**************************************************************************
在这里分析包含边框的各种设置函数:
包含边框,这个边框有大小和位置,是窗口在电脑屏幕上面显示的整个区域。
要改改变这个大小和位置可以有如下几个函数:
这里没有设置这个大小的函数,因为通过上面不包含边框函数的设置,就可以设置包含边框大小了,要设置包含边框的大小还是要通过上面的函数。通过下面的函数可以获得整个窗口的位置和大小:
QRect frameGeometry() const
但是这里可以设置整体窗口的位置
void move(int x, int y)
void move(const QPoint &)
然后可以通过下面的函数来获得左上角的坐标:
QPoint pos() const
后面会陆续分析QWidget中的其他的一些属性的功能即设置函数。
谢谢。
Qt零基础教程(四)QWidget详解(3):QWidget的几何结构的更多相关文章
- Qt零基础教程(四) QWidget详解篇
在博客园里面转载我自己写的关于Qt的基础教程,没次写一篇我会在这里更新一下目录: Qt零基础教程(四) QWidget详解(1):创建一个窗口 Qt零基础教程(四) QWidget详解(2):QWid ...
- springboot2.x基础教程:Swagger详解给你的接口加上文档说明
相信无论是前端还是后端开发,都或多或少地被接口文档折磨过.前端经常抱怨后端给的接口文档与实际情况不一致.后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新.其实无论是前端调用后端,还是后端调用 ...
- Docker基础教程(命令详解)
# docker --help Usage: docker [OPTIONS] COMMAND [arg...] docker daemon [ --help | ... ] docker [ -h ...
- C++框架_之Qt的窗口部件系统的详解-上
C++框架_之Qt的窗口部件系统的详解-上 第一部分概述 第一次建立helloworld程序时,曾看到Qt Creator提供的默认基类只有QMainWindow.QWidget和QDialog三种. ...
- Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍
Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍 spring集成 mybatis Spring4.x零配置框架搭建 两年前一直在做后 ...
- C++框架_之Qt的信号和槽的详解
C++_之Qt的信号和槽的详解 1.概述 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal ...
- “全栈2019”Java第一百零三章:匿名内部类详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- mysql基础篇 - SELECT 语句详解
基础篇 - SELECT 语句详解 SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...
- C++11 并发指南四(<future> 详解三 std::future & std::shared_future)
上一讲<C++11 并发指南四(<future> 详解二 std::packaged_task 介绍)>主要介绍了 <future> 头文件中的 std::pack ...
随机推荐
- android:TextAppearance.Material.Widget.Button.Inverse找不到或者报错问题
前两天将android sdk升到android6.0后出现Error retrieving parent for Item - AppCompact-v7 23 或者无法解析 android:Tex ...
- Unity NGUI实现按钮点击播放Aniamtion
unity版本:4.5 NGUI版本:3.6.5 参考链接:http://www.colabug.com/thread-1029974-1-1.html,作者:COLABUG.COM 橘虞 1.怎么创 ...
- BZOJ 1030 [JSOI2007]文本生成器
1030: [JSOI2007]文本生成器 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2624 Solved: 1087[Submit][Stat ...
- 【gm】
gm : GraphicsMagick for node.js aheckmann/gm imgAreaSelect 图片剪裁 apt-get install imagemagick 执行conver ...
- -_-#【jQuery】data
.data() <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...
- Android WebView播放视频flash(判断是否安装flash插件)
Android WebView播放flash(判断是否安装flash插件) 最近帮一个同学做一个项目,断断续续的一些知识点记录一下.一个页面中有一个WebView,用来播放swf,如果系统中未安装f ...
- Implement Stack using Queues ——LeetCode
Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. po ...
- HDOJ(HDU) 2123 An easy problem(简单题...)
Problem Description In this problem you need to make a multiply table of N * N ,just like the sample ...
- 使用sklearn进行数据预处理 —— 归一化/标准化/正则化
一.标准化(Z-Score),或者去除均值和方差缩放 公式为:(X-mean)/std 计算时对每个属性/每列分别进行. 将数据按期属性(按列进行)减去其均值,并除以其方差.得到的结果是,对于每个属 ...
- bzoj 3158 千钧一发(最小割)
3158: 千钧一发 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 767 Solved: 290[Submit][Status][Discuss] ...