QT 程序架构 及 Ui 来龙去脉

2023-11-14

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } //    class MainWindow: public Ui_MainWindow {};
QT_END_NAMESPACE

class MainWindow : public QMainWindow  // 这里的MainWindow 和  Ui::MainWindow 是不一样                                                                          的,由命名空间决定。
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

-------------------------------------------------------------------------------------------------------------------------

#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H

#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_MainWindow
{
public:
    QWidget *centralwidget;
    QMenuBar *menubar;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *MainWindow)
    {
        if (MainWindow->objectName().isEmpty())
            MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
        MainWindow->resize(800, 600);
        centralwidget = new QWidget(MainWindow);
        centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
        MainWindow->setCentralWidget(centralwidget);
        menubar = new QMenuBar(MainWindow);
        menubar->setObjectName(QString::fromUtf8("menubar"));
        MainWindow->setMenuBar(menubar);
        statusbar = new QStatusBar(MainWindow);
        statusbar->setObjectName(QString::fromUtf8("statusbar"));
        MainWindow->setStatusBar(statusbar);

        retranslateUi(MainWindow);

        QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
        MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
    } // retranslateUi

};

namespace Ui {
    class MainWindow: public Ui_MainWindow {}; 

                                                 //Ui::MainWindow继承自Ui_MainWindow
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_MAINWINDOW_H

---------------------------------------------------------------------------------------------------

#include "mainwindow.h"
#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

-——————————————————————————————————

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

//自此,ui的来源就说的比较清楚了。

——————————————————————————————————

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT 程序架构 及 Ui 来龙去脉 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • Qt 模型/视图与标准小部件

    我目前正在阅读模型 视图tutorial http qt project org doc qt 4 8 modelview html来自 Qt 但我仍然不确定是否应该为我的 Qt 程序使用模型 视图或小部件 我需要做一个记录器应用程序来监视
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • Nginx proxy_pass反向代理动态端口

    背景 某项目需要播放第三方监控视频 我方访问域名假定为 my area com 第三方的域名假定为 video other com 域名不一致就导致浏览器跨域问题无法播放 且第三方拖拖拉拉不想解决 于是只有我方使用 nginx 做反向代理来
  • [CVPR-23-Highlight] Magic3D: High-Resolution Text-to-3D Content Creation

    目录 Abstract Background DreamFusion High Resolution 3D Generation Coarse to fine Diffusion Priors Scene Models Coarse to
  • jdk1.8 -- Collectors 的使用

    package com collector import java util ArrayList import java util Arrays import java util Collections import java util I
  • CNN核心概念理解

    卷积神经网络 Convolutional Neural Networks 简称CNN 是一种经典的神经网络算法 由于在图像识别领域取得的良好效果 随着人工智能的火热 它也受到越来越多的关注 CNN的核心概念卷积 池化听起来好像很神秘 了解之
  • stm32中断

    stm32中断 一 中断原理 二 CubeMX中断控制LED灯 一 项目生成 二 代码修改 三 编译运行 三 HAL库中断串口通信 一 新建项目 二 代码 三 烧录运行结果 四 总结 五 参考资料 一 中断原理 1 数据传输方式 2 全过程
  • leetcode:93. 复原 IP 地址

    题目链接 93 复原 IP 地址 题目描述 有效 IP 地址 正好由四个整数 每个整数位于 0 到 255 之间组成 且不能含有前导 0 整数之间用 分隔 例如 0 1 2 201 和 192 168 1 1 是 有效 IP 地址 但是 0
  • PermissionError: [Errno 13] Permission denied: ‘./MNIST_Dataset_Loader/dataset/train-images-idx3-uby

    在使用从github上下载的代码时报错 PermissionError Errno 13 Permission denied MNIST Dataset Loader dataset train images idx3 ubyte 解决办法
  • 【计算机网络系列】网络层⑫:虚拟专用网和网络地址转换NAT

    虚拟专用网和网络地址转换NAT 虚拟专用网 由于IP地址的紧缺 一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数 考虑到互联网并不很安全 一个机构内也并不需要把所有的主机接入到外部的互联网 实际上 在许多情况下 很多主机主要还是
  • 物联网的相关概念总结(逐渐更新)

    引言 本文主要总结了与物联网协议栈相关的概念 1 网络带宽 Network Bandwidth 网络带宽是指在单位时间 一般指的是1秒钟 内能传输的数据量 基本单位 bits per second 简写为bps 带宽的单位有 bps Kbp
  • 智能车图像处理12-进阶篇4--环岛辅助判断条件

    前言 希望大家多多点赞评论收藏哦 不懂的地方评论区留言就好 这篇文章主要讲述智能车图像处理中环岛辅助判断相关内容 一 图解分析 思路讲解 环岛辅助条件用于决定是否进入环岛判断函数 下面的辅助条件主要有两个方面 1 环岛所在边在赛道上必须有两
  • 学习笔记:Linux文件权限

    一般情况下 系统里的文件夹都是755权限 允许所有用户进入文件夹 一般情况下 root用户创建的文件夹权限是755 创建的文件权限是644 一般情况下 普通用户创建的文件夹权限是775 创建的文件权限是664 目录权限 可执行的操作 r l
  • 放苹果-递归

    include
  • java基础(二)循环语句及字符串的处理

    public class Test02 public static void main String args TODO 自动生成的方法存根 int sum 0 for int i 1 i lt 100 i 从1打印到100 System
  • 【leetcode】----102二叉树的层序遍历

    102二叉树的层序遍历 给你一个二叉树 请你返回其按 层序遍历 得到的节点值 即逐层地 从左到右访问所有节点 示例 二叉树 3 9 20 null null 15 7 3 9 20 15 7 返回其层次遍历结果 3 9 20 15 7 BF
  • C#与C++交互系列:C#调用C++的三种方式

    参考 https zhuanlan zhihu com p 30746354 内容 目前 Net平台中托管环境调用非托管环境有三种方法 P Invoke 针对原生c方法调用 C Interop 针对托管C C CLI 使用的方法 COM I
  • Java的学习路线(非常完整)

    Java 是一种跨平台的 面向对象的高级编程语言 主要用来进行网站后台开发 也就是服务器端开发 或者动态网站开发 Java 是全球最受欢迎的编程语言之一 在世界编程语言排行榜 TIOBE 中 Java 一直霸占着前三名 有好多年甚至都是第一
  • KDD2023丨预训练论文合集

    ACM SIGKDD 国际数据挖掘与知识发现大会 简称KDD 会议始于1989年 是数据挖掘领域历史最悠久 规模最大的国际顶级学术会议 也是首个引入大数据 数据科学 预测分析 众包等概念的会议 每年吸引了大量数据挖掘 机器学习 大数据和人工
  • Error attempting to get column ‘create_time‘ from result set. Cause: java.sql.SQLFeatureNotSupporte

    错误 org springframework dao InvalidDataAccessApiUsageException Error attempting to get column create time from result set
  • 使用arthas在线诊断flink的那些事

    最近在使用arthas诊断工具 诊断java服务的一些问题 突然想到能不能使用arthas诊断flink的jobManager和taskManager呢 答案是可以的 采用javaagent 在flink启动jobmanager和taskM
  • QT 程序架构 及 Ui 来龙去脉

    ifndef MAINWINDOW H define MAINWINDOW H include