Qt项目 多文件共享一个全局变量

最近做的一个项目里,需要很多 . c p p .cpp .cpp文件共同使用同一个 D a t a B a s e DataBase DataBase类的对象,于是自己摸索了一下。

方法

创建一个头文件 q u a n j u . h quanju.h quanju.h
在这里插入图片描述

在里面用extern关键字 声明 想要共享的变量,我这里是 D a t a B a s e DataBase DataBase类的 d b db db.
在这里插入图片描述

之后创建一个同名的 . c p p .cpp .cpp文件,我这里是 q u a n j u . c p p quanju.cpp quanju.cpp
在这里插入图片描述
之后在这个文件里面 定义 那个共享的变量。
在这里插入图片描述

到这里就大功告成了。

使用

只需要在你需要用到 d b db db的文件里

#include<quanju.h>

就可以辽!
注:在待使用的文件里不用重新定义db,直接当成已经定义好的变量使用!

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Qt中,可以使用信号和槽机制来实现两个UI界面之间的相互跳转。下面是一个简单的示例: 首先,创建两个UI界面,比如`MainWindow`和`SecondWindow`。 在`MainWindow`的代码中,添加一个按钮,当点击该按钮时触发一个信号: ```cpp // MainWindow.h #include <QMainWindow> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); signals: void goToSecondWindow(); // 定义一个信号,在点击按钮时触发 private: // ... }; ``` ```cpp // MainWindow.cpp #include "MainWindow.h" #include "SecondWindow.h" #include <QPushButton> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QPushButton *button = new QPushButton("Go to Second Window", this); connect(button, &QPushButton::clicked, this, &MainWindow::goToSecondWindow); // ... } ``` 然后,在`SecondWindow`的代码中,添加一个槽函数,用于处理从`MainWindow`发送过来的信号,并在该槽函数中显示`SecondWindow`: ```cpp // SecondWindow.h #include <QMainWindow> class SecondWindow : public QMainWindow { Q_OBJECT public: SecondWindow(QWidget *parent = nullptr); public slots: void showWindow(); // 定义一个槽函数,用于显示SecondWindow private: // ... }; ``` ```cpp // SecondWindow.cpp #include "SecondWindow.h" SecondWindow::SecondWindow(QWidget *parent) : QMainWindow(parent) { // ... } void SecondWindow::showWindow() { show(); // 显示SecondWindow } ``` 最后,在主函数中,创建`MainWindow`和`SecondWindow`的实例,并连接信号和槽: ```cpp #include <QApplication> #include "MainWindow.h" #include "SecondWindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow mainWindow; SecondWindow secondWindow; QObject::connect(&mainWindow, &MainWindow::goToSecondWindow, &secondWindow, &SecondWindow::showWindow); mainWindow.show(); return a.exec(); } ``` 现在,当在`MainWindow`中点击按钮时,会触发信号`goToSecondWindow`,然后该信号会连接到`SecondWindow`的槽函数`showWindow`,从而实现两个UI界面之间的跳转。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值