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

时间: 2024-10-22 06:50:15

第7课 Qt中的坐标系统的相关文章

Qt中的坐标系统

Qt使用统一的坐标系统来定位窗口部件的位置和大小. 以屏幕的左上角为原点即(0, 0)点,从左向右为x轴正向,从上向下为y轴正向,这整个屏幕的坐标系统就用来定位顶层窗口: 此外,窗口内部也有自己的坐标系统,它依然以左上角作为原点,从左向右为x轴正向,从上向下为y轴正向,原点.x轴.y轴围成的区域叫做Client Area(客户区),在客户区的周围则是标题栏(Windows Title)和边框(Frame). 有了Qt坐标系统的一些基础概念,那么具体该如何来进行窗口部件的定位呢?QWidget类,

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

1. GUI程序原理回顾 (1)图形界面应用程序的消息处理模型 (2)思考:操作系统发送的消息如何转变为Qt信号 2. Qt中的事件处理 (1)Qt平台将系统产生的消息转换为Qt事件 ①Qt事件是一个QEvent的对象 ②Qt事件用于描述程序内部或外部发生的动作 ③任意的QObject对象都具备事件处理的能力 (2)GUI应用程序的事件处理方式 ①Qt事件产生后立即被分发到QWidget对象 ②QWidget中的event(QEvent*)进行事件处理 ③event()根据事件类型的不同,调用不

第47课 Qt中的调色板

1. QPalette类 (1)QPalette类提供了绘制QWidget组件的不同状态所使用的颜色. (2)QPalette对象包含了3个状态的颜色描述 ①激活颜色组(Active):组件获得焦点使用的颜色搭配方案 ②非激活颜色组(Inactive):组件失去焦点使用的颜色方案 ③失效颜色组(Disabled):组件处于不可用状态使用的颜色方案 2.QPalette类中颜色组用途 (1)QPalette类中的颜色组定义了组细节的颜色值 (2)QPalette::ColorRole中的常量值用于

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

1. 事件的传递过程 (1)操作系统检测到用户动作时,会产生一条系统消息,该消息被发送到Qt应用程序 (2)Qt应用程序收到系统消息后,将其转化为一个对应的事件对象,并将其分发出去. (3)事件对应被分发到当前正在操作的窗口部件上,该窗口部件会调用event函数来处理,然后,在这个函数内部又会调用其他的子函数(如KeyPress或mouseReleaseEvent)来进行具体的处理. (4)event函数处理完后,可能会将当前事件传递给父组件(parent)对象.但这个过程只是一种可能,也就是有

第21课 Qt中的标准对话框(下)

1. 字体对话框:QFontDialog (1)Qt中提供了预定义的字体对话框类(QFontDialog) (2)QColorDialog类用于提供选择字体的对话框部件 (3)字体对话框的使用方式(见后面的实例分析) (4)QFontDialog中的实用函数: QFontDialog::getFont 2. 进度对话框:QProgressDialog (1)Qt中提供了预定义的进度对话框类(QProgressDialog) (2)QProgressDialog类用于显示进度信息 (3)QProg

第19课 Qt中的标准对话框(上)

1. 标准对话框 (1)Qt为开发者提供了一些可复用的对话框类型 (2)Qt提供的可复用对话框全部继承自QDialog类 (3)Qt中的标准对话框遵循相同的使用方式(三板斧) //1.定义对话框对象(第1板斧) DialogType dlg(this); //2.设置对话框属性(第2板斧) dlg.setPropertyXXX(value); if(dlg.exec() == DialogType::value) //3.打开对话框(第3板斧) { //4.获取对话框数据 Type v = dl

第20课 Qt中的标准对话框(中)

1. 颜色对话框:QColorDialog (1)QColorDialog类 ①Qt中提供了预定义的颜色对话框类(QColorDialog) ②QColorDialog类用于提供指定颜色的对话框部件 ③颜色对话框的使用方式(见后面的实例) ④QColorDialog中的实用函数:QColorDialog::getColor (2)QColor类:用来表示颜色的概念,同时支持多种的颜色表示方式 ①RGB:以红.绿.蓝为基准的三色模型 ②HSV:以色调.饱和度.明度为基准的六角锥体模型 ③CMYK:

第32课 Qt中的文件操作

1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操作中的关键函数接口——IO操作的本质:连续存储空间的数据读写 ①打开设备:bool open(OpenMode mode); ②读取数据:QByteArray read(qint64 maxSize); ③写入数据:qint64 write(const QByteArray& byteArray);

第73课 Qt中的多线程编程

1. QThread类 (1)QThread是一个跨平台的多线程解决方案 (2)QThread以简洁易用的方式实现多线程编程 2. QThread中的关键成员函数 (1)virtual void run() :线程函数,用于定义线程功能(执行流). (2)void start():启动函数,将线程入口地址设置为run函数.启动线程,新线程开始执行run函数. (3)int exec():进入事件循环,直至调用exit().返回线程退出事件循环的返回码. (4)void terminate():强