QT开发(五)——窗口组件和窗口类型

QT开发(五)——窗口组件和窗口类型

一、窗口组件

图形用户界面由不同的窗口和窗口组件构成,<QtGui>头文件包含窗口组件,对应QT中的GUI模块,QT以组件对象的方式构建GUI。

组件的类型:

A、容器类(父组件)用来包含其他的界面组件

B、功能类(子组件)用于实现特定的交互功能

QT中没有父组件的顶级组件叫窗口。

QWidget是容器组件,继承自QObject类和QPaintDevice类,QObject类是所有支持QT对象模型的基类,QPaintDevice类是QT中所有可绘制组件的基类。

QWidget组件

QWidget能够绘制自己和处理用户输入,是QT中所有窗口组件类的父类,是所有窗口组件的抽象,每个窗口组件都是一个QWidget,QWidget类对象常用作父组件或顶级组件使用。

QLabel组件

QLabel组件用于显示一个提示性字符串,是功能性组件,一般需要父组件作为容器,QLabel作为窗口存在没有实际意义。

二、窗口类型

QT中可以根据需要定制窗口样式,不同的窗口类型可以使窗口具有不同的样式特性。

窗口类型:

Qt::Widget

Qt::Window

Qt::Dialog

Qt::Sheet

Qt::Drawer

Qt::Popup

Qt::Tool

Qt::ToolTip

Qt::SplashScreen

Qt::Desktop

Qt::SubWindow

窗口标识:

Qt::WindowStaysOnTopHint

三、坐标系统

QT中的坐标系统以左上角为原点,水平为x轴,从左向右为正向,垂直为y轴,从上到下为正向。

1、窗口部件的定位

GUI程序在坐标系统中进行窗口和部件的定位

定位类型分为:

A、顶级窗口部件的定位

B、窗口内部件的定位

C、窗口部件的大小设置

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

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

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

intx() const;

inty() const;

int width() const;

int height() const;

以窗口左上角为坐标系原点,但width()和height()分别为客户区的宽和高

const QRect &geometry() const;

intx() const;

inty() const;

int width() const;

int height() const;

以客户区左上角为坐标系原点,width()和height()分别为客户区的宽和高

QRectframeGeometry() const;

intx() const;

inty() const;

int width() const;

int height() const;

以窗口左上角为坐标系原点,width()和height()分别为窗口的宽和高

使用实例:

#include <QtGui/QApplication>
#include "Widget.h"
#include <QDebug>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w(NULL,Qt::Window|Qt::WindowSystemMenuHint);
    w.setWindowTitle("HelloWorld");
    w.show();
    qDebug() << w.x();
    qDebug() << w.y();
    qDebug() << w.width();
    qDebug() << w.height();
    qDebug() << w.geometry().x();
    qDebug() << w.geometry().y();
    qDebug() << w.geometry().width();
    qDebug() << w.geometry().height();
    qDebug() << w.frameGeometry().x();
    qDebug() << w.frameGeometry().y();
    qDebug() << w.frameGeometry().width();
    qDebug() << w.frameGeometry().height();
    return a.exec();
}

geometry()、frameGeometry()函数需要在show()函数后调用。QT平台在窗口显示出来之前无法确定窗口的大小。

2、窗口部件的设置

QWidget类提供了设置窗口部件大小的成员函数

A、改变窗口部件的大小

void resize(const QSize &);

void resize(int w, int h);

B、改变窗口部件的位置

void move(int x, int y);

void move(const QPoint &);

时间: 2024-11-08 06:24:53

QT开发(五)——窗口组件和窗口类型的相关文章

第六课、窗口组件及窗口类型

一.窗口组件 1.组件的介绍 (1).图形用户界面由不同类型的窗口和窗口组件构成 (2).<QtGui>头文件包含窗口组件,对应Qt中的GUI模块 (3).Qt以组件对象的方式构建图形用户界面 (4).组件的类型 A.容器类(父组件):用于包含其它的界面组件(Qt中没有父组件的顶级组件叫做窗口) B.功能类(子组件):用于实现特定的交互功能 2.QWidget组件 (1).Qwidget类继承自QObject和QPaintDevice类 A.QObject是所有支持Qt对象的基类 B.QPai

QT之窗口部件及窗口类型

今天我们来继续学习QT的相关知识,本文的内容是介绍QT的窗口部件及窗口类型. 先说下窗口组件,图形用户界面由不同的窗口和窗口组件构成,一般是在<QtGui>中包含,对应Qt中的GUI模块:Qt以组件对象的方式构建图形用户界面:组件的类型分为两种:1.容器类(父组件),用于包含其他的界面组件.2.功能类(子组件),这个是用于实现特定的交互功能. **Qt中没有父组件的顶级组件叫做窗口!!!** 以下图为例,我们进行说明: QWidget 类继承自 QObject 类和 QPaintDevice

Qt开发学习教程

Qt开发学习教程 一.Qt开发基础学习教程 本部分博客主要根据狄泰学院唐老师的<QT实验分析教程>创作,同时根据天山老妖自己的理解和网络搜集的资料及QT官方文档对部分知识点进行了扩展.本系列博客由天山老妖创作,发布于51CTO博客上.狄泰学院网站:http://course.dt4sw.com/ Qt开发基础学习教程目录如下: QT开发(一)--QT简介http://blog.51cto.com/9291927/1856911QT开发(二)--QT开发环境搭建http://blog.51cto

QT开发(二十二)——QMainWindow主窗口

QT开发(二十二)--QMainWindow主窗口 一.主窗口简介 应用程序中的主窗口是与用户进行长时间交互的顶层窗口,提供了应用程序的大部分功能,通常是应用程序启动后的第一个窗口,应用程序一般由一个主窗口和多个对话框组成. QT中直接支持主窗口,QMainWindow是QT中主窗口的基类,是继承于QWidget类的容器型组件. QMainWindow内部封装了菜单栏.工具栏.中心组件.停靠组件.状态栏等. QMainWindow内置了布局管理器,基本的组件布局如下: 二.菜单栏 QT中提供了预

QT开发(五十五)———Qt Quick Controls

QT开发(五十五)---Qt Quick Controls 一.Qt Quick Controls基础 QT5.1发布了Qt Quick的一个全新模块:Qt Quick Controls.Qt Quick Controls模块提供了大量类似Qt Widgets模块的可重用组件. 为了开发基于Qt Quick Controls的程序,需要创建一个Qt Quick Application类型的应用程序,选择组件集的时候注意选择Qt Quick Controls. 二.Qt Quick Control

QT开发(五十三)———QML基本元素

QT开发(五十三)---QML基本元素 一.基本可视化项 可视元素具有几何坐标,会在屏幕上占据一块显示区域. Item             基本的项元素,所有可视化项都继承Item Rectangle        基本的可视化矩形元素 Gradient         定义一个两种颜色的渐变过程 GradientStop     定义个颜色,被Gradient使用 Image         在场景中使用位图 BorderImage     (特殊的项) 定义一张图片并当做边界 Anima

QT开发(五十一)——QtQuick基础

QT开发(五十一)--QtQuick基础 一.QtQuick简介 QT提供了两种独立的方法创建用户界面. QtQuick模块为创建流畅.鲜活的用户界面提供了一种标记语言.QtQuick模块适合需要动画元素的界面,以及应用程序主要运行在小屏幕和多点触控的设备上的场景. QtWidgets模块针对传统桌面提供了更多的支持,和目标平台做了更多的集成,无论目标平台是MacOSX.Windows.KDE.GNome.QtWidgets是一个非常高效的基于C++的类库,包含很多常见的用户界面组件,可以非常容

QT开发(五十二)———QML语言

QT开发(五十二)---QML语言 QML是一种声明语言,用于描述程序界面.QML将用户界面分解成一块块小的元素,每一元素都由很多组件构成.QML定义了用户界面元素的外观和行为:更复杂的逻辑则可以结合JavaScript脚本实现. 一.QML基础语法 1.Import语句 QML代码中,import语句一般写在头几行,主要用途如下:     A.包含类型的全名空间     B.包含QML代码文件的目录     C.JavaScript代码文件 格式如下: import Namespace Ver

Qt学习之路2---窗口组件及窗口类型

窗口组件: 图形用户界面由不同的窗口和窗口组件构成: Qt以组件对象的方式,构建图形用户界面. 组件的类型包括: ---容器类(父组件):用于包含其他的界面组件 ---功能类(子组件):用于实现特定的交互功能 Qt中没有用父组件的顶级组件叫做窗口. Qwidget 继承自QObject和QPaintDevice -Qwidget 能够绘制自己和处理用户的输入,也是Qt中所以窗口组件类的父类 -Qwidget类对象作为父组件或顶级组件使用 -Qt中的每一个窗口组件都是Qwidget -Qwidge