李水云 2025-04-11 16:05 采纳率: 37.5%
浏览 23

QT/C/C++界面和功能分离

mainwindow.h 中包含以下内容

img

在mainwindow.cpp 中创建界面

创建operation.cpp 里面直接使用mainwindow类的_Connect函数,不报错,也不触发事件

img

怎么将界面和功能分离

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-04-11 16:05
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    QT/C/C++界面和功能分离

    你遇到的问题是,MainWindow.h 文件包含了界面相关的内容,但是在 MainWindow.cpp 文件中创建界面,并在 Operation.cpp 文件中使用 MainWindow 类的 _Connect 函数,不报错,但是也没有触发事件。

    解决方案:

    1. 在 MainWindow.cpp 文件中创建界面时,需要使用 ui 对象来访问界面控件。例如:
    MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
        ui->setupUi(this);
    }
    
    1. 在 Operation.cpp 文件中使用 MainWindow 类的 _Connect 函数时,需要使用 this 指针来访问 MainWindow 对象。例如:
    void Operation::doSomething() {
        MainWindow *mainWindow = this; // 或者使用 MainWindow::getInstance() 等方式获取 MainWindow 对象
        mainWindow->_Connect();
    }
    
    1. 如果你想要在 Operation.cpp 文件中访问 MainWindow 对象,可以使用 Singleton 模式或其他方式来获取 MainWindow 对象。

    注意:在 Qt 中,界面控件和业务逻辑应该分离,MainWindow 对象应该负责界面相关的内容,而 Operation 对象应该负责业务逻辑相关的内容。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月11日