当前位置: 首页 > news >正文

第六课、窗口组件及窗口类型------------------狄泰软件学院

一、窗口组件

1、组件的介绍

(1)、图形用户界面由不同类型的窗口和窗口组件构成

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

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

(4)、组件的类型

A、容器类(父组件):用于包含其它的界面组件(Qt中没有父组件的顶级组件叫做窗口

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

2、QWidget组件

(1)、Qwidget类继承自QObjectQPaintDevice

A、QObject所有支持Qt对象的基类

B、QPaintDevice是Qt中所有可绘制组件的基类

(2)、QWidget能够绘制自己和处理用户输入

(3)、QWidget是Qt中所有窗口组件类的父类(super class)

(4)、QWidget是所有窗口组件的的抽象

(5)、Qt的每个窗口组件都是一个QWidget

(6)、QWidget类对象常作为父组件或顶级组件使用

3、QLabel组件

(1)、QLabel用于显示一个提示性的字符串

(2)、QLabel是功能性组件一般需要父组件作为容器

(3)、QLabel可以作为窗口存在,但没有什么意义

//Widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>

class Widget : public QWidget
{
    Q_OBJECT
    
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

//Widget.cpp

#include "Widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
}

Widget::~Widget()
{
    
}

//main.cpp

#include <QtGui>
#include "Widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;//没有父组件,成为窗口
    QLabel l(&w);//父组件为w

    w.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    w.show();

    /*说明label也可以成为一个窗口(因为继承自QWidget),但没什么意义
    QLabel l;
    l.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    l.show();
    */
    return a.exec();
}

 

二、窗口的类型(关键字Qt::WindowType可以查到窗口的类型和样式):在构造函数的第二个参数处设置。第一个参数为父类

1、Qt中可以根据需要定制窗口样式

(1)、窗口类型:

A、Qt::Dialog : 对话框类型

B、Qt::Window : 主窗口类型

 

 

C、Qt::SplashScreen : 启动画面类型(可以用来做欢迎界面)

 (2)、窗口标志

A、Qt::WindowStaysOnTopHint(始终在顶层)

B、Qt::WindowContexHelpButtonHint(最大最小化按钮变成了帮助按钮)

 

#include <QtGui>
#include "Widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w(0,Qt::Window|Qt::WindowStaysOnTopHint);//没有父组件,成为窗口
    QLabel l(&w);//父组件为w

    w.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    w.show();

    /*说明label也可以成为一个窗口(因为继承自QWidget),但没什么意义
    QLabel l;
    l.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    l.show();
    */
    return a.exec();
}

三、小结

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

(2)、QWidget是Qt中所有窗口组件类的父类(super class)

(3)、QWidget类对象常作为父组件顶级组件使用

(4)、Qt中可以根据需要定制窗口样式

(5)、QLabel用于显示一个提示性的字符串

 

转载于:https://www.cnblogs.com/gui-lin/p/6386773.html

相关文章:

  • Git:常用操作
  • Xen server虚拟化中虚拟机磁盘文件丢失的处理办法
  • C语言截取字符串或反转字符串
  • 彻底搞定C指针-函数名与函数指针【转】
  • Spark上的深度学习框架再添新兵:Yahoo开源TensorFlowOnSpark
  • CSS小知识点-1
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • 快速理解 session/token/cookie 认证方式
  • Pivot Table系列之展开/折叠用法 (Expand/Collapse)
  • hadoop 中什么是slots
  • 构建NCBI本地BLAST数据库 (NR NT等) | blastx/diamond使用方法 | blast构建索引 | makeblastdb...
  • 在一个公司待上多久跳槽最合适?
  • MySQLMySql免安装版安装配置
  • C# Json.Net解析实例
  • 第三方模拟器连接Android studio
  • [iOS]Core Data浅析一 -- 启用Core Data
  • conda常用的命令
  • Git初体验
  • Java Agent 学习笔记
  • Java知识点总结(JavaIO-打印流)
  • Linux链接文件
  • Puppeteer:浏览器控制器
  • Python打包系统简单入门
  • Spring-boot 启动时碰到的错误
  • vue:响应原理
  • 测试开发系类之接口自动化测试
  • 对象引论
  • 基于遗传算法的优化问题求解
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端面试之闭包
  • 驱动程序原理
  • 通过npm或yarn自动生成vue组件
  • #LLM入门|Prompt#3.3_存储_Memory
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (规划)24届春招和25届暑假实习路线准备规划
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (实战篇)如何缓存数据
  • (四)linux文件内容查看
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET Core 2.1路线图
  • .NET 的程序集加载上下文
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net环境下的缓存技术介绍
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .NET中两种OCR方式对比
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /proc/vmstat 详解
  • @拔赤:Web前端开发十日谈
  • [ C++ ] STL_list 使用及其模拟实现