我现在已经写好了c++程序,在qt中现需要用一个按钮调用该程序并实现在qt界面中输入输出。该怎么实现
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++程序代码转移到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++程序所需要的外部库和头文件进行相应的配置。
写了个终端程序?
那你首先需要使用qt创建一个qpushbutton,然后将C++代码封装为一个函数,当点击按钮的时候触发qt信号Clicked,然后使用信号槽绑定已经封装的函数。
qt代码如下:
QPushButton *btn=new QPushButton("clicked",this);
connect(btn,&QPushButton::clicked,this,&Widget::function); //function为c++封装函数,Widget为当前窗体,需要根据自身做出调整