第7课 Qt中的坐标系统
1. 坐标系统
(1)GUI操作系统都有特定的坐标系统
(2)图形界面程序在坐标系统中进行窗口和部件的定位
(3)定位类型
①顶级窗口部件的定位
②窗口内部件的定位
③窗口部件的大小设置
(4)QWidget类提供的定位函数
①Qt使用统一的坐标系统定位窗口部件的位置和大小
②Qt部件类提供成员函数在坐标系统中进行定位

2. QWidget类提供了窗口部件所需的坐标系统成员函数

(1):x()、y();在父窗口中的起始坐标
(2):width()、height();客户区的宽度和高度
(3)geometer():客户区的几何尺寸
①x()、y():客户区在父窗口中的起始坐标
②width()、height():客户区的大小
(4)frameGeometry():框架几何尺寸
①x()、y():整个窗口在父窗口中的起始坐标
②width()、height():整个窗口的大小(含非客户区)
▲注意:geometry()和frameGeometry()中的几何数据必须在show()调用后才有效
3. 窗口部件的大小设置——利用QWidget类提供的成员函数
(1)改变窗口部件的大小
①void resize(int w, int h);
②void resize(const QSize&);
(2)改变窗口部件的位置
①void move(int x, int y)
②void move(const QPoint&)
4. QPushButton组件
(1)用于接受用户点击事件
(2)能够显示提示性字符串
(3)是功能性组件,需要父组件作为容器
(4)能够在父组件中进行定位
【编程实验】Qt坐标系统及窗口子组件大小和位置设置
#include <QApplication>
#include <QPushButton>
#include <QDebug> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w; //顶级窗口
QPushButton b(&w); //生成QPushButton对象
QPushButton b1(&w); b.setText("Button"); //设置显示的字符串
b.move(, ); //移动到坐标(10, 10)
b.resize(, ); //设置大小 width =100,heigth = 50 b1.setText("Button"); //设置显示的字符串
b1.move(, ); //移动到坐标(120, 10)
b1.resize(, ); //设置大小 width =100,heigth = 50 w.resize(, );
w.move(, ); //相对于桌面坐标系统
w.show(); qDebug()<<"QWidget:";
qDebug()<<w.x(); //
qDebug()<<w.y(); //
qDebug()<<w.width(); //
qDebug()<<w.height(); // qDebug()<<"QWidget::geometry()";
qDebug()<<w.geometry().x(); //
qDebug()<<w.geometry().y(); //
qDebug()<<w.geometry().width(); //
qDebug()<<w.geometry().height(); // qDebug()<<"QWidget::frameGeometry";
qDebug()<<w.frameGeometry().x(); //
qDebug()<<w.frameGeometry().y(); //
qDebug()<<w.frameGeometry().width();//
qDebug()<<w.frameGeometry().height();// return a.exec();
}
5. 小结
(1)Qt中的几何坐标以左上角为原点
水平为x轴,从左向右为正向
垂直为y轴,从上到下为正向
(2)Qt中的GUI组件以左上角进行定位
(3)Qt中的GUI组件可以在坐标系统中进行大小设置
第7课 Qt中的坐标系统的更多相关文章
- 第30课 Qt中的文本编辑组件
1. 3种常用的文本编辑组件的比较 单行文本支持 多行文本支持 自定义格式支持 富文本支持 QLineEdit (单行文本编辑组件) Yes No No No QPlainTextEdit (多行普通 ...
- Qt中的坐标系统
Qt使用统一的坐标系统来定位窗口部件的位置和大小. 以屏幕的左上角为原点即(0, 0)点,从左向右为x轴正向,从上向下为y轴正向,这整个屏幕的坐标系统就用来定位顶层窗口: 此外,窗口内部也有自己的坐标 ...
- 第47课 Qt中的调色板
1. QPalette类 (1)QPalette类提供了绘制QWidget组件的不同状态所使用的颜色. (2)QPalette对象包含了3个状态的颜色描述 ①激活颜色组(Active):组件获得焦点使 ...
- 第39课 Qt中的事件处理(下)
1. 事件的传递过程 (1)操作系统检测到用户动作时,会产生一条系统消息,该消息被发送到Qt应用程序 (2)Qt应用程序收到系统消息后,将其转化为一个对应的QEvent事件对象,并调用QObject: ...
- 第38课 Qt中的事件处理(上)
1. GUI程序原理回顾 (1)图形界面应用程序的消息处理模型 (2)思考:操作系统发送的消息如何转变为Qt信号 2. Qt中的事件处理 (1)Qt平台将系统产生的消息转换为Qt事件 ①Qt事件是一个 ...
- 第32课 Qt中的文件操作
1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...
- 第11课 Qt中的字符串类
1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C ...
- 第54课 Qt 中的多页面切换组件
1. 多页面切换组件(QTabWidget) (1)能够在同一个窗口中自由切换不同页面的内容 (2)是一个容器类型的组件,同时提供友好的页面切换方式 2. QTabWidget的使用方式 (1)在应用 ...
- 第10课 初探 Qt 中的消息处理
1. Qt消息模型 (1)Qt封装了具体操作系统的消息机制 (2)Qt遵循经典的GUI消息驱动事件模型 2. 信号与槽 (1)Qt中定义了与系统消息相关的概念 ①信号(Signal):由操作系统产生的 ...
随机推荐
- zeptojs库解读1之整体框架
首先看的是整体框架, // zepto骨骼,这个函数的作用使得Zepto(slector, context)使用很多$.fn里面的方法 var Zepto = (function(){ // zept ...
- Intel Omin-Path Architecture 搭建调优与测试
OPA在Centos上的搭建 1. 首先确认Omni-Path Host Fabric Interfaces (HFIs) # yum install –y pciutils # lspci -vv ...
- 解决"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"错误
今天安装了Android Studio 3.2,打开一个旧工程,编译提示"No toolchains found in the NDK toolchains folder for ABI w ...
- Spring IOC 源码简单分析 04 - bean的初始化
### 准备 ## 目标 了解 Spring 如何初始化 bean 实例 ##测试代码 gordon.study.spring.ioc.IOC04_Initialization.java publ ...
- Java网络编程学习A轮_04_TCP连接异常
参考资料: https://huoding.com/2016/01/19/488 示例代码: https://github.com/gordonklg/study,socket module A. C ...
- 【转】梯度下降算法以及其Python实现
一.梯度下降算法理论知识 我们给出一组房子面积,卧室数目以及对应房价数据,如何从数据中找到房价y与面积x1和卧室数目x2的关系? 为了实现监督学习,我们选择采用自变量x1.x2的线性函数来评估因变 ...
- jquery.validate验证表单
添加引用 <script src="/${appName}/commons/js/validate/jquery.validate.min.js"></scrip ...
- VGG16提取图像特征 (torch7)
VGG16提取图像特征 (torch7) VGG16 loadcaffe torch7 下载pretrained model,保存到当前目录下 th> caffemodel_url = 'htt ...
- 身份证&银行卡识别方案
一. 调用第三方服务 腾讯云OCR识别: 实现方法:Post图片 URL到腾讯云服务器.Post图片文件 到腾讯云服务器 b. 报价: 月接口调用总量 0<调用量≤1000 1000&l ...
- java的初始化(编程思想)
6.成员初始化 java尽量保证:所有变量在使用前都能得到恰当的初始化.对于方法的局部变量,java以编译错误的形式来贯彻这种保证. 如果类的成员变量时基本类型,那么没有初始化给默认值 在类里定义一个 ...