如何将一个C++程序代码转移到qt中并可以实现在qt界面中输入输出

我现在已经写好了c++程序,在qt中现需要用一个按钮调用该程序并实现在qt界面中输入输出。该怎么实现

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7454514
  • 这篇博客也不错, 你可以看下QT基础入门【调试篇】Linux下QT程序如何打包发布生成可执行文件(最简单方法没有之一)
  • 除此之外, 这篇博客: C/C++ 基于QT实现粗糙的学生管理系统中的 完成文件保存 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • help手册 搜索 QFile ,建议从详细描述看起
      在这里插入图片描述
      点击就会出现一些含有代码demo的界面。
      在这里插入图片描述
      如下代码完成写入操作示例:
    QFile file("out.txt");
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
        return;
    QTextStream out(&file);
    out << "The magic number is: " << 49 << "\n";
    

    应用在本系统的完整的文件写入函数如下。(在确定按钮按下后调用此函数)

    void addStu::writeToFile(QString cnt)
    {
        //要注意当前路径,至少要知道产生的文件在哪里
        QFile file("stu.txt");
        //如果使用WriteOnly 会清空
        //if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
        if(!file.open(QIODevice::Append | QIODevice::Text))
        {
            QMessageBox::critical(this,"错误","文件打开失败,信息没有保存!","确定");
            return ;
        }
        QTextStream out(&file);
        out << cnt;
    }
    
    • 该界面最后的一个按钮:取消按钮 (作用;按下取消按钮 关闭当前界面 )

    help 手册 搜索 QDialog 查询 Public Slots 查看槽函数
    方案一
    尽量不用如此使用,能直接调用成员函数的槽 直接调用 基类的槽函数利用方法二就好

    //取消按钮 直接转到槽 调用close();
    void addStu::on_btn_cancel_clicked()
    {
        this->close();
    }
    

    方案二

    connect(this->ui->btn_cancel,SIGNAL(clicked(bool)),this,SLOT(close()));
    

    方案三
    在这里插入图片描述

    Signals & Slots Editor 信号与槽编辑器 在ui界面可以直接编写,(QT中间下面位置)
    但只支持系统预设的函数,不过我个人感觉没必要这样做,应该将 mvc 各司其职 分开来

    方案四
    在这里插入图片描述
    x 号左侧两个按钮也可以进行 信号与槽的绑定 可以自己试试,拉拽完成,可以设置自己的函数。

  • 您还可以看一下 邵发老师的《C语言/C++学习指南》Qt界面开发篇视频精讲课程中的 界面线程与工作线程小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    要将一个C++程序代码转移到Qt中,并通过点击按钮调用该程序,在Qt界面中实现输入和输出,需要进行以下步骤:

    1. 创建一个新的Qt项目,并将C++程序中的代码复制到Qt项目中的main.cpp文件中。

    2. 在Qt项目的.pro文件中添加需要链接的外部库和头文件,以保证C++程序的正常运行。

    3. 在Qt项目中创建一个新的窗口,用于显示程序的界面。

    4. 在窗口中添加一个按钮,用于触发调用C++程序的功能。

    5. 创建一个槽函数,在该槽函数中调用之前复制到Qt项目中的C++程序。

    6. 在槽函数中添加代码,实现输入和输出。可以使用Qt提供的控件,如QLineEdit和QTextEdit来实现输入和显示输出。

    7. 使用Qt的信号槽机制,将按钮的点击信号连接到槽函数,以实现通过点击按钮调用C++程序的功能。

    下面是一个示例代码,演示如何实现上述功能:

    // main.cpp
    
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
    #include <QLineEdit>
    #include <QTextEdit>
    
    // 引入之前的C++程序的头文件
    #include "your_cpp_program.h"
    
    int main(int argc, char *argv[]) {
        QApplication app(argc, argv);
    
        // 创建一个新的窗口
        QWidget window;
    
        // 创建按钮和文本输入框
        QPushButton button("调用程序", &window);
        QLineEdit input(&window);
        QTextEdit output(&window);
    
        // 设置按钮和输入框的位置和大小
        button.setGeometry(50, 50, 100, 30);
        input.setGeometry(50, 100, 200, 30);
        output.setGeometry(50, 150, 200, 200);
    
        // 将按钮的点击信号与槽函数连接
        QObject::connect(&button, &QPushButton::clicked, [&]() {
            // 获取输入框的文本
            QString inputText = input.text();
    
            // 调用之前的C++程序,传入输入文本
            std::string outputText = your_cpp_program(inputText.toStdString());
    
            // 显示输出结果到文本编辑框
            output.setText(QString::fromStdString(outputText));
        });
    
        window.show();
        return app.exec();
    }
    

    上述示例代码中通过创建一个新的窗口,并在窗口中添加了一个按钮、一个文本输入框和一个文本编辑框。然后,将按钮的点击信号与槽函数连接,在槽函数中调用之前复制到Qt项目中的C++程序,并实现输入和输出的功能。

    需要注意的是,根据实际情况,可能需要对示例代码进行一些修改,以适应具体的C++程序和界面设计需求。另外,在配置Qt项目时,也需要根据之前的C++程序所需要的外部库和头文件进行相应的配置。

写了个终端程序?

那你首先需要使用qt创建一个qpushbutton,然后将C++代码封装为一个函数,当点击按钮的时候触发qt信号Clicked,然后使用信号槽绑定已经封装的函数。
qt代码如下:

QPushButton *btn=new QPushButton("clicked",this);
 connect(btn,&QPushButton::clicked,this,&Widget::function);  //function为c++封装函数,Widget为当前窗体,需要根据自身做出调整