Qt如何调用建立好的ui界面

article/2025/9/15 7:49:52

       在我们刚才学习qt的时候,很多的时候,按照新建立的工程文件,出现一个困扰。就是如何调用额外建立的UI界面。在这里主要是说明这里的面的关键因素。其实学习qt,如果之前有过学过C++的同事,那么就学习qt就会很容易上手。因为qt主要的核心就是以c++为主的。就好像我们现在讨论的如何添加ui界面到我们的主窗口中,或者调用ui界面弹出一个ui界面也是同样的道理。

      1)现在我们开始建立一个widget类的主窗口界面,如下图所示:

          

   mainwindow.h 头文件代码如下:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include "bms1.h"
#include "bms2.h"
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H


 mainwindow.cpp 文件代码如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"
 
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
 
}
 
MainWindow::~MainWindow()
{
    delete ui;
}

 

2)经过以上第一步的操作,我们已经建立了mainwindow主窗口界面,那么我们现在开始创建的我们另外的ui界面。

点击选中工程文件里面的“界面文件”,右键点击,选中“添加新文件”,如下图所示:


3)选中qt设计界面类,如下图所示;

   

4)选中widget类,如下图所示:


点击下一步,一直创建完毕。

5)最后创建完毕的界面,我们给它添加些其他的控件,如下图示,

同时将该ui界面的属性上的objectname修改名字为BMS1:


6)同理,按照如上的方法,我们再创建一个Ui界面。

修改objectname名字为BMS2,如下图所示:


7)这个时候,因为我们现在建立的这两个BMS1,BMS2这两个ui界面,没有自带上类的代码。如我们刚才刚刚建立的mainwindow主机是,系统就会自动生成两个文件mainwindow,h 及mainwindow.cpp。但是我们想调用以上建立BMS1,BMS2界面。所以,我们也应该给这两个ui界面,配置属于他们自己的头文件及执行文件。如下图所示,添加Qt设计师界面类。


8)我们分别建立两个类,名称分别为BMS1,BMS2.

BMS1.h 头文件代码,如下所示:

#ifndef BMS1_H
#define BMS1_H
 
#include <QWidget>
 
namespace Ui {
class BMS1;
}
 
class BMS1 : public QWidget
{
    Q_OBJECT
 
public:
    explicit BMS1(QWidget *parent = 0);
    ~BMS1();
 
private:
    Ui::BMS1 *ui;
};
 
#endif // BMS1_H
BMS1.cpp 头文件代码,如下所示: 

#include "bms1.h"
#include "ui_bms1.h"
 
BMS1::BMS1(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::BMS1)
{
    ui->setupUi(this);
}
 
BMS1::~BMS1()
{
    delete ui;
}

同样,针对第二个BMS2的ui界面,头文件及执行文件也是类同。这里就再描述。

在这里面,最关键的技术,就是我们再建立这两个ui的界面类的时候,一定要确保,这两个界面类的名字:BMS1,BMS2和我们刚才再建立两个ui界面的objectname的名字保存一致。这样,我们就可以把ui界面和ui界面类库绑定在一起了。

9)现在开始,回过头来,我们就可以在mainwindow主窗口头文件上面,分别添加两个包含文件,如下图所示:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include "bms1.h"
#include "bms2.h"

  再然后,用我们C++的派生类,来进行类派生,及建立按键信号槽。

BMS1 *pDisplaydow;BMS2 *PSetupwindow;

mainwindow.h头文件如下所示:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include "bms1.h"
#include "bms2.h"
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
public:
    BMS1 uiBms1;
    BMS2 uiBms2;
    BMS1 *pDisplaydow;
    BMS2 *PSetupwindow;
public:
    //BMS1 *show(){return pDisplaydow;}
    //BMS2 *setupwindow(){return PSetupwindow;}
private slots:
    void on_commandLinkButton_clicked();
 
    void on_commandLinkButton_2_clicked();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H
 

mainwindow.cpp头文件如下所示:

#include "mainwindow.h"
#include "ui_mainwindow.h"
 
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    //BMS1 *show(){return pDisplaydow;}
 
    pDisplaydow = new BMS1(this);
    pDisplaydow->setObjectName("显示界面");
    pDisplaydow->setGeometry(200,50,704,600);
    pDisplaydow->show();
 
 
    PSetupwindow = new BMS2(this);
    PSetupwindow->setObjectName("显示设置参数");
    PSetupwindow->setGeometry(200,50,704,600);
    PSetupwindow->hide();
 
    //setFixedSize(800,600);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::on_commandLinkButton_clicked()
{
    //uiBms1.show();
    if(PSetupwindow->isVisible())
    {
        PSetupwindow->hide();
        pDisplaydow->show();
    }
}
 
void MainWindow::on_commandLinkButton_2_clicked()
{
    //uiBms2.show();
    if(pDisplaydow->isVisible())
    {
        pDisplaydow->hide();
        PSetupwindow->show();
    }
}


10)通过主窗口建立的信号槽分别为:

private slots:
    void on_commandLinkButton_clicked();
 
    void on_commandLinkButton_2_clicked();

11)重新链接编制,执行执行,点击按钮,显示串口界面1,界面2.

说明BMS1,BMS2两个ui界面已经成功被主窗口调用。


                                                                        显示BMS1界面


                                                            显示BMS2界面







http://chatgpt.dhexx.cn/article/fjYG5lBB.shtml

相关文章

Qt实战案例(13)——Qt的界面外观详细介绍

目录 一、Qt风格1.1 对风格进行预览1.2 风格使用 二、Qt样式表2.1 使用代码设置样式表2.2 在设计模式中设置样式表2.3 Qt样式表的语法2.4 子控件&#xff08;Sub-Controls&#xff09;2.5 伪状态&#xff08;Pseudo-States&#xff09;2.6 继承2.7 qss2.8 代码示例 三、特殊效果…

Qt-UI 界面工具库简介

一、关于Qt-UI界面工具库 Qt-UI界面工具库是武汉维仕杰科技有限公司基于Qt上进行扩展开发的控件包和界面工具&#xff0c;并且拥有完全自主的知识产权。得益于丰富的界面开发经验和强大的支持团队&#xff0c;使得Qt-UI界面开发工具成为最专业、功能强大的Qt开发工具库。 Qt-…

Qt UI界面美化

关于QSS 除原生界面外&#xff0c;Qt提供了加载配置文件的方式来自定义和美化界面外观&#xff0c;这个配置文件也叫做样式表&#xff08;QSS&#xff1a;Qt Style Sheets)&#xff0c;它的语法与css类似&#xff0c;具体支持属性可参考官方文档。 编写QSS文件 新建一个文件…

【思想落地】一文分享Qt界面的设计与开发

文章目录 一、开篇二、软件界面功能分析三、界面实现&#xff08;3-1&#xff09;从界面整体角度规划功能和切片&#xff08;3-2&#xff09;顶部时间参数的处理&#xff08;3-3&#xff09;左侧/右侧按钮控制区&#xff08;3-4&#xff09;中央传感器显示&#xff08;3-5&…

Qt调用主界面ui

一、适用情景 在其他类中使用主界面ui&#xff0c;this&#xff0c;控件操作等 二、步骤 首先&#xff0c;子类需要包含主界面的头文件和ui_xx.h文件&#xff0c;声明主界面类 然后使用构造函数把主界面的指针传递给子类 子类头文件&#xff1a; #ifndef ONEUI_H #define O…

QT——可视化界面ui

目录 1. 需要文件 2.文件关系及编写 3. 源码 4. 界面的模态与非模态 1. 需要文件 test.cpp test.h test.ui ui_test.h 2.文件关系及编写 test.ui&#xff1a; 可视化界面&#xff1b; test.cpp: 启动可视化界面&#xff0c;及可视化界面的各种相关功能源文件&#x…

QT中界面切换的三种方式

本周学习了QT的使用。QT身为一个图形界面的开发框架&#xff0c;在实际使用时必不可少的一环就是对不同界面的切换。本文中总结了自己练习使用过的三种切换界面的方式。 第一种&#xff1a;哪里进行界面切换就在哪里创建界面。 这种方式也是最容易理解的一种&#xff0c;当我们…

Qt界面开发(三)

这次要给大家分享一些我在github和qtcn&#xff08;主要是liudianwu大神&#xff0c;Qt界面开发(一)有很多都是他的作品&#xff09;上找到的比较漂亮且实用Qt界面和控件集合。 -------------------------------------我是分割线------------------------------------- &…

QT界面美化

转自点击打开链接 - 经验总结 1. 可用对话框&#xff08;QDialog&#xff09;模拟类似Android中toast的效果。 - 设置程序界面风格 在main函数中 QApplication::setStyle("windows"); QApplication::setStyle("windowsxp"); QApplication::setStyle("…

QT介绍和基本界面构建(QT一)

目录 一、Qt 介绍二、Qt工程1.工程 firstQt.pro2.Qt入口 三、用Qtcreator集成开发环境创建Qt工程代码ui1.创建项目的时候注意的问题2.desgner设计器界面说明 四、纯代码实现Qt工程创建带ui界面编译运行五、基本组件&#xff08;QLineEidt&#xff0c; QLabel&#xff0c; QPush…

QT 简单的登录界面

一、描述 有登录界面、注册界面&#xff0c;用到sqlite数据库保存账号和密码&#xff0c;界面还没有布局美化等&#xff0c;只实现了最基本的功能。 二、界面及功能介绍 1、登录界面2、注册界面 3、主界面 没想好弄啥功能&#xff0c;于是就弄了两个按钮。 4、文件结构 三、…

(四) 制作一个最简单的qt界面

前面我们学了 (一) 在Windows上搭建Qt环境 (二) Qt新建Android工程 (三) Qt入门篇之C基础 今天我们用Qt制作一个最简单的qt登录界面 一、在PC机上运行 1.QT基础 1.qt的移植性非常强&#xff0c;一套代码我们不用改的太多&#xff0c;直接通用所有的平台,不久的将来&#xff…

【Qt登录界面】

Qt登录界面 文章目录 Qt登录界面前言一、创建项目二、创建数据库及用户表三、登录界面设计四、注册界面设计五、效果图六、参考教程 前言 第一次在这上面写文章&#xff0c;没啥经验&#xff0c;如果有啥不当的地方&#xff0c;请各位大佬批评指正。我刚学Qt不久&#xff0c;结…

QT 简单的QT用户登录界面

简单的QT用户登录界面 一、简单描述 在登录界面输入用户名和密码正确之后才进入欢迎界面。 例子打包&#xff1a;链接: https://pan.baidu.com/s/1HEpNFghMDrBguMt93aRJ_A 提取码: bg4n 二、效果 三、工程文件结构 四、源文件 1、LoginForm02.pro文件 QT widgets guiSOUR…

一文读懂qt界面设计(分裂器,布局,拉伸,各种属性设置)

可以先看看我这个文章&#xff1a;qt关于界面设计中的一些知识总结_我是标同学的博客-CSDN博客_qt 水平伸展 现在我们来正式开始讲解。 布局种类 qt中能称为布局管理器的有如下6个&#xff1a; 水平布局&#xff08;QHBoxLayout&#xff09;垂直布局&#xff08;QVBoxLayout…

Qt界面开发(一)(各种控件以及图表)

注&#xff1a;资源主要来源&#xff1a;http://www.qtcn.org/bbs/u/110085 &#xff08;刘大神&#xff09; 如若侵权&#xff0c;请联系删除。 本文只是将作品集合到起来&#xff0c;方便大家一起学习。 资源集合已经放到 链接&#xff1a;https://pan.baidu.com/s/1sVvQE8…

嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面)

1、创建一个QT工程 new project —> Application —> Qt Widgets Application —> choose…&#xff08;注意不要有中文路径&#xff09;填写名称&#xff08;我写的名称为class2&#xff09;和创建路径&#xff08;D:\qt\qt_demo\class2&#xff09; —> 填写类名…

QT界面布局和设计

一、设计 对功能和模块进行分析&#xff0c;然后设计对应的模块&#xff0c;将每个模块都用widget展示作为组件。工程结构示例&#xff1a;二、完成模块 代码分别设计各个组件&#xff0c;合适即可三、主界面连接 主界面连接各个子模块。在这里插入代码片#include "AutoFl…

tomcat配置url跳转_tomcat安装目录详解

打开tomcat的解压之后的目录可以看到如下的目录结构&#xff1a; 1.bin&#xff1a; bin目录主要是用来存放tomcat的命令&#xff0c;主要有两大类&#xff0c;一类是以.sh结尾的&#xff08;linux命令&#xff09;&#xff0c;另一类是以.bat结尾的&#xff08;windows命令&a…

【转】URL访问地址和Tomcat项目部署中不得不说的小秘密(JAVA之Tomcat服务器)

今天来简单讲讲tomcat项目部署和url地址访问栏的关系&#xff0c;顺便和大家分享下&#xff0c;叙述不当之处&#xff0c;还请大家多多指导&#xff01; 众所周知&#xff0c;Tomcat项目发布的默认访问地址格式如下&#xff1a;http://localhost:8080/MyDemo/index.jsp 由于we…