Qt坐标系统

1、Qt Creator工程介绍

Qt Creator以工程项目的方式对源码进行管理

A.一个Qt Creator工程包含不同类型的文件

.pro项目描述文件

.pro.user用户配置文件

.h头文件

.cpp源文件

.ui界面描述文件

资源文件-图片、音频等

B.pro项目描述文件的基本构成

 

C.pro项目描述文件中的高级变量

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

 

D.CONFIG用于设定项目的配置信息和编译选项

CONFIG的常用选项

1.debug-构建debug版本的可执行程序

2.release–构建release版本的可执行程序

3.debug_and_release–一同构建debug版和release版

4.warn_on–尽可能多的输出警告信息

5.warn_off-不能输出警告信息

.pro文件的本质为Qt中的Makefile文件

 

.pro项目文件分析

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = HelloWorld
TEMPLATE = app

INCLUDEPATH += E:/BCC/include \
               E:/VC/include

SOURCES += Main.cpp \
           HelloWorld.cpp

HEADERS += HelloWorld.h

FORMS   += HelloWorld.ui

RC_FILE += MyIco.rc

LIBS    += -LE:/vlc-1.11/sdk/lib

CONFIG  += warn_on debug

#
# if 'debug' option is set for CONFIG
#
CONFIG(debug) {
    DEFINES += DEBUG_LOG
    SOURCES += DebugLog.cpp
    HEADERS += DebugLog.h
}

一般来说,项目文件中的描述都使用相对路劲,而相对路径时相对于项目文件本身而言的,Qt Creator将项目文件作为目标

注意:1.Qt Creator在打开项目文件的同时会生成.pro.user文件

2…pro.user文件包含一些与Qt相关的本地配置信息

3.当需要在不同计算机之间移动项目源码时,建议删除.pro.user文件

E.工程中的概念

构建–对项目的所有文件进行编译,最终生成可执行文件

debug–可以进行程序调式的构建版本,可执行程序中包含调试信息,运行效率不高

release版–最终发布的应用程序构建版本,无调试信息,运行效率高

小结

1.Qt Creator以工程项目的方式对源码进行管理

2.一个Qt Creator工程包含不同类型的文件

3…pro文件是Qt中与平台无关的Makefile文件

4.Qt Creator提供了开发所必备的快捷高效的功能

 

2、窗口组件及窗口类型

1.图形用户界面由不同的窗口和窗口组件构成

2.<QtGui>头文件包含窗口组件,对应Qt的GUI模块

3.Qt以组件对象的方式构建图形用户界面

4.组件的类型–a.容器类(父组件):用于包含其它的界面组件; b功能类(子组件):用于实现特定的交互功能

A.QWidget类继承自QObject类和QPainDevice类

1.QObject是所有支持Qt对象模型的基类

2.QPainDevice是所有可绘制组件的基类

 

B.QWidget组件

1.QWidget能够绘制自己和处理用户的输入

2.QWidget是Qt中所有窗口组件类的父亲

3.QWidget是所有窗口组件的抽象

4.Qt中的每一个窗口组件都是一个QWidget

5.QWidget类对象常作为父组件或顶级组件使用

C.QLabel组件

1.QLabel用于显示一个提示性的字符串

2.QLabel是功能性组件,一般需要父组件作为容器

3.QLabel可以作为窗口存在,但没什么意义

QWidget组件和QLabel组件代码示例

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

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

    w.setWindowTitle("dandanxiaohai");
    la.setText("mylove");
    w.show();

    return a.exec();
}

运行结果

 

D.Q中可以根据需要定制窗口式样

1.窗口类型–Qt::Dialog-对话框类型 ,Qt::window-主窗口类型,Qt::SplashScreen-启动画面类型,其它的类型可以在Qt帮助文档中进行查找

2.窗口标志

Qt::WindowStaysOnTopHint ,Qt::WindowContextHelpButtonHint等

小结

1.Qt以组件对象的方式构建图形用户界面

2.QWidget类是所有用户界面组件的父类

3.QWidget类对象常作为父组件或顶级组件使用

4.Qt中可以根据需要定制窗口式样

5.QLabel用于显示一个提示性的字符串

3、Qt中的坐标系统

A.坐标系统

1.GUI操作系统都有特定的坐标系统

2.图形界面程序在坐标系统中进行窗口和部件的定位

3.定位类型–顶级窗口部件定位、窗口内部件的定位、窗口部件大小设置

B.Qt坐标系统

1.Qt使用统一的坐标系统定位窗口部件的位置和大小

2.Qt部件类提供成员函数在坐标系统中进行定位

3.QWidget类提供了窗口部件所需的坐标系统成员函数

 

QWidget类中的坐标系统成员函数

 

编程实验,代码示例

#include "Mainwindow.h"
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;//顶级组件
    w.resize(300,200);//设置的大小
    w.move(120,120);//设置的生成坐标位置
    w.show();

    qDebug()<<"QWidget:";
    qDebug()<<w.x();
    qDebug()<<w.y();
    qDebug()<<w.height();
    qDebug()<<w.width();

    qDebug()<<"QWidget::geometry()";
    qDebug()<<w.geometry().x();
    qDebug()<<w.geometry().y();
    qDebug()<<w.geometry().height();
    qDebug()<<w.geometry().width();

    qDebug()<<"QWidget::frameGeometry()";
    qDebug()<<w.frameGeometry().x();
    qDebug()<<w.frameGeometry().y();
    qDebug()<<w.frameGeometry().height();
    qDebug()<<w.frameGeometry().width();

    return a.exec();
}

打印结果–在窗口显示之后才会有坐标数据(须在show()调用之后),该打印结果与之前图所示相符合

 

C.QPushButton组件

1.QPushButton用于接受用户点击事件

2.QPushButton能够显示提示性字符串

3.QPushButton是功能性组件,需要父类组件作为容器

4.QPushButton能够在父类组件中进行定位

 

小结

1.Qt中的几何坐标以左上角为原定–水平为x轴,从左向右为正向;垂直为y轴。从上到下为正向

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

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

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt中的逻辑坐标和物理坐标是两种不同的坐标系。 逻辑坐标是相对于Qt应用程序的窗口的坐标系。它是与应用程序的界面大小相关的坐标系,可以通过该坐标系来进行图形绘制、事件处理等操作。逻辑坐标可以使用像素、百分比等单位进行表示,具有一定的抽象性。 物理坐标是相对于屏幕或设备的坐标系。它是与实际显示设备的像素大小相关的坐标系,用于确定真实的显示位置和大小。物理坐标通常使用像素作为单位进行表示,具有客观的实际意义。 在Qt中,通过QPainter等绘图工具可以在逻辑坐标系下进行绘制操作。可以通过设置Qt应用程序的窗口大小和缩放因子来调整逻辑坐标与实际显示像素之间的映射关系,实现适应不同分辨率和显示设备的界面布局。同时,Qt还提供了方便的坐标转换函数,可以在逻辑坐标系和物理坐标系之间进行转换。 总之,Qt中的逻辑坐标和物理坐标是两种不同的坐标系,分别用于应用程序界面的绘制操作和实际显示设备的显示位置确定。合理使用逻辑坐标和物理坐标可以帮助开发者实现跨平台、适应不同分辨率的应用程序界面。 ### 回答2: 在Qt中,有两种坐标系:逻辑坐标和物理坐标。 逻辑坐标是相对于绘图设备的坐标系,它是独立于具体的硬件设备的。在Qt中,逻辑坐标的原点通常位于绘图设备的左上角,水平向右为正方向,垂直向下为正方向。逻辑坐标可以用于设置图形的位置和大小,以及进行绘图操作。例如,可以通过设置逻辑坐标来实现平移、缩放和旋转等操作,使得绘制的图形能够适应不同的显示设备。 物理坐标是相对于实际物理设备的坐标系,它与硬件设备相关。物理坐标的原点和方向可能与逻辑坐标不同,根据不同的设备和操作系,原点位置和轴的方向可能有所不同。物理坐标通常用于获取设备的实际位置和大小,以及进行与设备相关的操作,例如打印输出和屏幕截图等。 在Qt中,可以通过使用转换函数来在逻辑坐标和物理坐标之间进行转换。例如,可以使用QTransform类中的函数来将逻辑坐标转换为物理坐标,或者将物理坐标转换为逻辑坐标。通过使用这些转换函数,可以在不同的坐标系之间进行切换,以适应不同的需求和设备。 ### 回答3: qt中的逻辑坐标和物理坐标是两种不同的坐标系。 逻辑坐标是在程序中使用的坐标系,用于定位和绘制图形界面元素。在逻辑坐标系中,坐标的原点通常是左上角,x轴向右增加,y轴向下增加。逻辑坐标的单位可以是像素,也可以是任意自定义的单位。使用逻辑坐标可以使得界面在不同分辨率的屏幕上以相同的比例显示,从而实现界面的自适应性。 物理坐标是与实际硬件设备相关的坐标系,用于定位物理位置。物理坐标的原点和方向通常由硬件设备决定,例如屏幕的原点可能是左上角,也可能是左下角,坐标轴的方向也可能与逻辑坐标相反。物理坐标的单位通常是像素。使用物理坐标可以精确地定位物理位置,但在不同分辨率的屏幕上可能会导致界面显示的比例不一致。 在Qt中,通过QPainter类可以方便地在逻辑坐标系中进行绘制操作。在绘制过程中,可以使用QTransform类来进行逻辑坐标到物理坐标之间的转换。Qt还提供了QScreen类来获取和管理物理坐标系相关的信息。 总之,逻辑坐标和物理坐标是两种不同的坐标系,用于在软件中定位和绘制界面元素以及在硬件设备上定位物理位置。在Qt中,可以使用逻辑坐标和物理坐标来实现界面的自适应和精确定位。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值