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

QT 基础知识点

1.基础窗口类QMainWindow qDialog Qwidget

随项目一起创建的窗口基类有三个可选QMainWindow qDialog Qwidget

1.1 Qwidget

是所有窗口的基类,只要是他的子类,或子类的子类,都具有他的属性。

右键项目 Add New -> Qt qt设计师界面类,选择Widget, 写个名字,就可以在项目中添加一个基于窗口的类,此时就多出了ui文件。

如上图就是刚新加的窗口,自动添加的代码如下

#ifndef TESTWIDGET_H
#define TESTWIDGET_H#include <QWidget>namespace Ui {
class testwidget;
}class testwidget : public QWidget
{Q_OBJECTpublic:explicit testwidget(QWidget *parent = nullptr);~testwidget();private:Ui::testwidget *ui;
};#endif // TESTWIDGET_H

没有指定父对象时,新建的窗口是独立于主窗口,带边框的。

如果指定了父对象,就不是独立窗口了,与父窗口绑定了,就不需要show了,父窗口显示时能自动显示子窗口内容,且子窗口是被内嵌到主窗口了,就没边框了,只保留了父类的边框

1.2 QDialog (是Qwidget的子类)

QDialog 是一个对话框类,不能内嵌到父类中,是独立存在的

还是按照上面的方法添加一个QDialog窗口,这里一般选第三个,不带按钮的,如果需要可以自己实现。

添加完新的对话窗口后,在主窗口的构造函数立,new他的对象。

// 再在主要窗口下新建一个对话窗口Dialog* d = new Dialog(); // 一般不用指定父对象,因为他是独立于主窗口的d->show();  // 这种显示为非模态示为非模态

输出效果如下,这个对话框窗口是独立于主窗口的,而且为非模态窗口,焦点可以切换的。

如果换成模态显示他会阻塞程序,直到该对话窗口被关闭,程序才会继续执行。如下图,只显示了对话窗口,主窗口并没有显示,是因为函数阻塞在这了。而且模态窗口不能进行焦点切换的,不能切换页面了,只显示当前页面。

    // 模态显示d->exec();

1.3 QMainWindow(是Qwidget的子类)

 可以包含菜单栏,工具栏。状态栏。也不能内嵌到别窗口,是有自己的边框,独立存在的。

在ui界面 可以右键,进行工具栏菜单栏的删除创建等操作

2. qt中的坐标体系

原点在左上角,即坐标向右递增和向下递增的。子窗口的位置就是基于父窗口的左上角的。多窗口的位置是一个对应一个的。是相对的。move 可以指定控件的位置(相对位置)

move(10, 10);

3. qt内存回收机制


http://www.mrgr.cn/news/91957.html

相关文章:

  • CLion配置源码阅读工具SourceTrail 阅读GCC
  • Linux基本指令(三)+ 权限
  • pipeline 使用git parameter插件实现动态选择分支构造
  • Windows辉煌的发展历程
  • 数据结构、算法和STL简介 【复习笔记】
  • 【Akashic Records】THE EGG
  • 正确清理C盘空间
  • bind()函数的概念和使用案例
  • windows11那些事
  • HTML项目一键打包工具:HTML2EXE 最新版
  • socket()函数的概念和使用案例
  • Spring源码分析の依赖注入(byNamebyType模式)
  • 【面试系列】Java开发--AI常见面试题
  • 设计心得——解耦的实现技术
  • Python采用DeepSeekR1本地部署+本地API接口实现简单对话
  • FTP 实验(ENSP模拟器实现)
  • C++ DAY3
  • 个人环境配置--安装记录
  • 虚拟机从零实现机器人控制
  • 深入理解设计模式之解释器模式