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中的坐标系统的更多相关文章

  1. 第30课 Qt中的文本编辑组件

    1. 3种常用的文本编辑组件的比较 单行文本支持 多行文本支持 自定义格式支持 富文本支持 QLineEdit (单行文本编辑组件) Yes No No No QPlainTextEdit (多行普通 ...

  2. Qt中的坐标系统

    Qt使用统一的坐标系统来定位窗口部件的位置和大小. 以屏幕的左上角为原点即(0, 0)点,从左向右为x轴正向,从上向下为y轴正向,这整个屏幕的坐标系统就用来定位顶层窗口: 此外,窗口内部也有自己的坐标 ...

  3. 第47课 Qt中的调色板

    1. QPalette类 (1)QPalette类提供了绘制QWidget组件的不同状态所使用的颜色. (2)QPalette对象包含了3个状态的颜色描述 ①激活颜色组(Active):组件获得焦点使 ...

  4. 第39课 Qt中的事件处理(下)

    1. 事件的传递过程 (1)操作系统检测到用户动作时,会产生一条系统消息,该消息被发送到Qt应用程序 (2)Qt应用程序收到系统消息后,将其转化为一个对应的QEvent事件对象,并调用QObject: ...

  5. 第38课 Qt中的事件处理(上)

    1. GUI程序原理回顾 (1)图形界面应用程序的消息处理模型 (2)思考:操作系统发送的消息如何转变为Qt信号 2. Qt中的事件处理 (1)Qt平台将系统产生的消息转换为Qt事件 ①Qt事件是一个 ...

  6. 第32课 Qt中的文件操作

    1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...

  7. 第11课 Qt中的字符串类

    1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C ...

  8. 第54课 Qt 中的多页面切换组件

    1. 多页面切换组件(QTabWidget) (1)能够在同一个窗口中自由切换不同页面的内容 (2)是一个容器类型的组件,同时提供友好的页面切换方式 2. QTabWidget的使用方式 (1)在应用 ...

  9. 第10课 初探 Qt 中的消息处理

    1. Qt消息模型 (1)Qt封装了具体操作系统的消息机制 (2)Qt遵循经典的GUI消息驱动事件模型 2. 信号与槽 (1)Qt中定义了与系统消息相关的概念 ①信号(Signal):由操作系统产生的 ...

随机推荐

  1. Linux常用命令--网终设置

    1.把自己(sa)添加到sudoers配置文件中,以便于获取权限 vim /etc/sudoers 编辑文件(部分centOS版本没有vim命令,则用vi即可) 找到[root ALL=(ALL) A ...

  2. HDU - 4812 D Tree 点分治

    http://acm.hdu.edu.cn/showproblem.php?pid=4812 题意:有一棵树,每个点有一个权值要求找最小的一对点,路径上的乘积mod1e6+3为k 题解:点分治,挨个把 ...

  3. 直方图及low_value、high_value

    直方图 Histogram是一种特殊的列统计信息,详细描述了目标列的数据分布情况.存储在数据字典基表 histogram$; 专门为了准确评估分布不均匀的目标列的可选择率.结果集的cardianlit ...

  4. 伸展树的基本操作——以【NOI2004】郁闷的出纳员为例

    前两天老师讲了伸展树……虽然一个月以前自己就一直在看平衡树这一部分的书籍,也仔细地研读过伸展树地操作代码,但是就是没写过程序……(大概也是在平衡树的复杂操作和长代码面前望而生畏了)但是今天借着老师布置 ...

  5. 《BAT前端进阶[师徒班]》学习总结

    这是一个培训课 是的,这是一个面向中级前端的培训班,但明显跟传统的填鸭式培训班不太一样.这边的老师都是大牛这是毫无疑问的,而且都是一线开发人员.而且课程一开始就说明了面向了是有1-3年有工作经验的前端 ...

  6. PHP:第六章——02正则基本语法

    <?php header("Content-Type:text/html;charset=utf-8"); //正则表达式的基本结构:匹配符.匹配模式.模式修饰符 //元字符 ...

  7. Git标签(版本)管理

    列出当前所有的标签 git tag     可以搜索特定的标签,例如你只想看稳定版相关的 git tag -l "*.stable"   给当前commit打标签(设定版本) gi ...

  8. AutoFac IoC DI 依赖注入

    AutoFac IoC DI 依赖注入 记录点点滴滴知识,为了更好的服务后来者! 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌 ...

  9. 【LeetCode 8_字符串_实现】String to Integer (atoi)

    , INVALID}; int g_status; long long SubStrToInt(const char* str, bool minus) { ; : ; while (*str != ...

  10. 16款最受关注的智能手表 苹果iWatch领衔

    智能手表逐渐成为科技行业的新宠,而传闻中的苹果iWatch以及已经确认即将推出的三星Galaxy Gear,显然让这股热潮达到了顶峰,也预示着大牌厂商将逐渐进入该领域,推出更多成熟的产品.以下便是16 ...