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

  • 相关阅读:
    windows下Yarn安装与使用(两种方法)
    git配置公钥---解决码云出现git@gitee.com: Permission denied (publickey)
    npm使用国内镜像的两种方法
    【LeetCode】33. Search in Rotated Sorted Array (4 solutions)
    【LeetCode】83. Remove Duplicates from Sorted List
    【LeetCode】82. Remove Duplicates from Sorted List II
    【LeetCode】85. Maximal Rectangle
    【LeetCode】84. Largest Rectangle in Histogram
    【LeetCode】87. Scramble String
    【LeetCode】162. Find Peak Element (3 solutions)
  • 原文地址:https://www.cnblogs.com/-glb/p/12080210.html
Copyright © 2011-2022 走看看