zoukankan      html  css  js  c++  java
  • Qt中的坐标系统

    坐标系统
    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组件可以在坐标系统中进行大小设置

  • 相关阅读:
    火车头采集器如何采集QQ群成员中的QQ号
    Unix目录结构的来历
    加速Windows 2003关机速度的设置方法
    win2003 序列号 windows2003 sp2可用序列号大全(准版与企业版)
    自己动手在win2003系统中添加虚拟网卡
    Windows Server 2003下DHCP服务器的安装与简单配置图文教程
    win2003远程桌面怎么切换到多用户?
    Win2003打开网页时总是提示添加网址到信任站点的设置方法
    我们正在招聘java工程师,想来美团工作吗?
    JUC回顾之-AQS同步器的实现原理
  • 原文地址:https://www.cnblogs.com/-glb/p/12080210.html
Copyright © 2011-2022 走看看