zoukankan      html  css  js  c++  java
  • 第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);      //移动到坐标(10, 10)
        b.resize(100, 50);   //设置大小 width =100,heigth = 50
    
        b1.setText("Button"); //设置显示的字符串
        b1.move(120, 10);      //移动到坐标(120, 10)
        b1.resize(100, 50);   //设置大小 width =100,heigth = 50
    
        w.resize(240, 100);
        w.move(120, 120);  //相对于桌面坐标系统
        w.show();
    
        qDebug()<<"QWidget:";
        qDebug()<<w.x();      //120
        qDebug()<<w.y();      //120
        qDebug()<<w.width();  //240
        qDebug()<<w.height(); //100
    
        qDebug()<<"QWidget::geometry()";
        qDebug()<<w.geometry().x();      //128
        qDebug()<<w.geometry().y();      //151
        qDebug()<<w.geometry().width();  //240
        qDebug()<<w.geometry().height(); //100
    
        qDebug()<<"QWidget::frameGeometry";
        qDebug()<<w.frameGeometry().x();    //120
        qDebug()<<w.frameGeometry().y();    //120
        qDebug()<<w.frameGeometry().width();//256
        qDebug()<<w.frameGeometry().height();//139
    
        return a.exec();
    }

    5. 小结

    (1)Qt中的几何坐标以左上角为原点

            水平为x轴,从左向右为正向

            垂直为y轴,从上到下为正向

    (2)Qt中的GUI组件以左上角进行定位

    (3)Qt中的GUI组件可以在坐标系统中进行大小设置

  • 相关阅读:
    NOIP 转圈游戏
    NOIP 2012 同余方程
    BZOJ3864 Hero meet devil
    HDU3045 Picnic Cows
    「PKUWC2018」随机算法
    CF543E Listening to Music
    CF833E Caramel Clouds
    「PKUWC2018」Slay the Spire
    Luogu2183【国家集训队】礼物
    CF932E Team Work
  • 原文地址:https://www.cnblogs.com/5iedu/p/5429059.html
Copyright © 2011-2022 走看看