我是张帆小可爱 2023-06-29 01:14 采纳率: 71.4%
浏览 625

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

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

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-29 04:02
    关注
    • 这个问题的回答你可以参考下: 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++程序所需要的外部库和头文件进行相应的配置。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月29日