第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):由操作系统产生的 ...
随机推荐
- Codeforces Round #319 (Div. 2) C. Vasya and Petya's Game 数学
C. Vasya and Petya's Game time limit per test 1 second memory limit per test 256 megabytes input sta ...
- 用训练好的caffemodel来进行分类
caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的caffemodel来对这张图片进行分类,那该怎么办呢? 如 ...
- Java线程池Executor使用
合理利用线程池能够带来三个好处.第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗.第二:减少系统对于,外部 服务的响应时间的等待.第三:提高线程的可管理性.线程是稀缺资源,如果 ...
- 80端口未被占用,无法启动wamp的解决方法(原创)
起床之后想要弄弄侧边栏的东西,打开wamp居然无法启动apache服务,上网查了之后才知道是需要启动httpd.exe这个程序,测试了很久,80端口也没有被占用,点击启动apache服务的时候弹出co ...
- 222. Count Complete Tree Nodes -- 求完全二叉树节点个数
Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from W ...
- IOS UI-标签(Label)的高级应用
// // BWLabel.h // IOS_0119_label // // Created by ma c on 16/1/19. // Copyright © 2016年 博文科技. All r ...
- 054——VUE中vue-router之实例讲解定义一下单页面路由
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- EPANET头文件解读系列5——TYPES.H
/************************************************************************ ...
- hashcode()和equals()方法
(一)hashcode(): 当Set接收一个元素时根据该对象的内存地址算出hashCode,看它属于哪一个区间,再这个区间里调用equeals方法.这里需要注意的是:当俩个对象的hashCode值相 ...
- maven+jmeter+jenkins集成
马上要国庆了,最近比较忙,但是感觉忙的效率很一般,之前写过ant的集成,这两天研究了下maven,其中核心的插件便是jmeter-maven-plugin,要想了解更多的朋友,可以自行去官网wiki学 ...