第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):由操作系统产生的 ...
随机推荐
- 利用HTML中map标签实现整张图片带有可点击区域的图像映射:
实现效果说明:一整张背景图片,实现图标区域出现链接,可点击跳转到指定页面. <div class="brand"> <img src="images/b ...
- css 基础 - 2
css 基础 - 2 一.文本样式: 文字竖着书写: 语法:writing-mode : lr-tb.tb-rl 参数:lr-tb:从左向右,从上往下 tb-rl:从上往下,从右向左 1.text-a ...
- hdu 2204 Eddy's爱好 容斥原理
Eddy's爱好 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...
- linuxI/O重定向
假设有这么一段python3程序: import sys ")sys.stderr.write("stderr1 ") 现在想要把程序的输出以及错误信息都存在文件中. 一 ...
- Flutter基础Widget之按钮(RaisedButton、FlatButton、OutlineButton,IconButton)
Flutter中给我们预先定义好了一些按钮控件给我们用,常用的按钮如下 RaisedButton :凸起的按钮,其实就是Android中的Material Design风格的Button ,继承自Ma ...
- spark udf 初识初用
直接上代码,详见注释 import org.apache.spark.sql.hive.HiveContext import org.apache.spark.{SparkContext, Spark ...
- Java 集合-Collections工具类
2017-11-05 23:41:53 Collections类 Collections类:Collections类是针对集合进行操作的工具类,都是静态方法. 常用方法: public static ...
- 雷林鹏分享:Ruby 面向对象
Ruby 面向对象 Ruby 是纯面向对象的语言,Ruby 中的一切都是以对象的形式出现.Ruby 中的每个值都是一个对象,即使是最原始的东西:字符串.数字,甚至连 true 和 false 都是对象 ...
- java裁剪图片
java裁剪图片保存到指定位置 /** * 图片裁剪通用接口 * * @param src 源图片地址,图片格式PNG * @param dest 目的图片地址 * @param x 图片起始点x坐标 ...
- linux shell执行原理
shell简介 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. 运行背景 a 一个基本的linux系统结构 b.由上图可以看出,shel ...