ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Qt中的坐标系统

2019-12-22 16:52:10  阅读:276  来源: 互联网

标签:Qt int 系统 QPushButton 坐标 QWidget 组件


坐标系统
GUI操作系统都有特定的坐标系统
图形界面程序在坐标系统中进行窗口和部件的定位
定位类型
——顶级窗口部件的定位
——窗口内部件的定位
——窗口部件的大小设置

Qt使用统一的坐标系统定位窗口部件的位置和大小
Qt部件类提供成员函数在坐标系统中进行定位
QWidget类提供了窗口部件所需的坐标系统成员函数

 

 

 

 为什么Qt提供三组不同的函数出来?

主要就是为了跨平台

#include "Widget.h"
#include <QApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;

    w.setWindowTitle("QingDao");
    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();
}

 

 注意事项:

geometry()和frameGeometry中的几何数据必须在show()调用后才有效

窗口部件的大小设置
QWidget类提供了成员函数
——改变窗口部件的大小
  void resize(int w, int h)    //如果设置的宽度小于操作系统所需要满足的的最小宽度时,就取操作系统所规定的最小值。
  void resize(const QSize &)
——改变窗口部件的位置
  void move(int x, int y)
  void move(const QPoint &)

QPushButton组件
QPushButton用于接受用户点击事件
QPushButton能够显示提示性字符串
QPushButton是功能性组件,需要父组件作为容器
QPushButton能够在父组件中进行定位

QWidget w; //生成QWidget对象,顶级组件
QPushButton b(&w); //生成QPushButton对象,其父组件为QWidget

b.setText("Button"); //设置显示的字符串
b.move(10,10); //移动坐标(10,10)
b.resize(100,25); //设置大小width=100;height=15

小结:
Qt中的几何坐标以左上角为原点
——水平为x轴,从左向右为正向
——垂直为y轴,从上到下为正向
Qt中的GUI组件以左上角进行定位
Qt中的GUI组件可以在坐标系统中进行大小设置

 

标签:Qt,int,系统,QPushButton,坐标,QWidget,组件
来源: https://www.cnblogs.com/-glb/p/12080210.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有