第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):由操作系统产生的 ...
随机推荐
- Symmetric Tree,对称树
问题描述: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). ...
- BZOJ 2594 【WC2006】 水管局长数据加强版
题目链接:水管局长数据加强版 好久没写博客了…… 上次考试的时候写了一发LCT,但是写挂了……突然意识到我已经很久没有写过LCT了,于是今天找了道题来练练手. 首先,LCT这里不讲.这道题要求支持动态 ...
- 如何以Root权限在Pycharm上Run、Debug
Pycharm官网提问:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206587695-How-to-run-deb ...
- Android Studio 中删除项目和项目找回------ Project Structure的使用
删除项目 点击File——Project Structure 在Project Structure页面,选中要删除的项目,点击上面的减号图标. 我把两个一起删除了,再次打开时,啥也没有 如果想要把不要 ...
- 取出当前会话的sid、process_id.sql
select distinct sess.SID db_sid, sess.SERIAL# db_serial#, process. ...
- 本地Run Page时报检测到意外的 URL 参数,它将被忽略。
经查,是因为我RUN的时候 Target URL -- http://MY-PC:8988/OA_HTML/runregion.jsp 将MY-PC更改为本地IP即可. 设置方法 Tools - Em ...
- DOM之概述
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- 修改Intelij IDEA的maven依据下载为国内镜像(阿里)
1.win7环境,默认情况下在用户目录的.m2下自己新建setting文件.QQ群交流:697028234 .m2\settings.xml 2.settings.xml文件内容为: <sett ...
- PostgreSQL常用插件收集
hexdump -C 数据表文件 -- 查看表文件中数据. pg_stat_statements pgcompacttable -- 在减少锁的情况下,清理表和索引的老空间. pg_repack--P ...
- EasyNVR H5无插件RTSP直播方案在Windows server 2012上修复无法定位GetNumaNodeProcessorMaskEx的问题
今天遇到一个客户在使用EasyNVR无插件安防直播解决方案的时候,在Windows Server 2012上出现一个问题提示: 经过反复的查找,虽然提示上显示问题出在KERNEL32.dll上,但是已 ...