我现在已经写好了c++程序,在qt中现需要用一个按钮调用该程序并实现在qt界面中输入输出。该怎么实现
3条回答 默认 最新
关注- 这个问题的回答你可以参考下: 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 号左侧两个按钮也可以进行 信号与槽的绑定 可以自己试试,拉拽完成,可以设置自己的函数。- help手册 搜索 QFile ,建议从详细描述看起
- 您还可以看一下 邵发老师的《C语言/C++学习指南》Qt界面开发篇视频精讲课程中的 界面线程与工作线程小节, 巩固相关知识点
- 以下回答由chatgpt基于相关博客总结生成:
要将一个C++程序代码转移到Qt中,并通过点击按钮调用该程序,在Qt界面中实现输入和输出,需要进行以下步骤:
-
创建一个新的Qt项目,并将C++程序中的代码复制到Qt项目中的main.cpp文件中。
-
在Qt项目的.pro文件中添加需要链接的外部库和头文件,以保证C++程序的正常运行。
-
在Qt项目中创建一个新的窗口,用于显示程序的界面。
-
在窗口中添加一个按钮,用于触发调用C++程序的功能。
-
创建一个槽函数,在该槽函数中调用之前复制到Qt项目中的C++程序。
-
在槽函数中添加代码,实现输入和输出。可以使用Qt提供的控件,如QLineEdit和QTextEdit来实现输入和显示输出。
-
使用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++程序所需要的外部库和头文件进行相应的配置。
-
解决 无用评论 打赏 举报