#include <QtGui>
#include <QFile>
#include <QTextStream>
#include"ui_convertdialog.h"
#include "convertdialog.h"
//send
ConvertDialog::ConvertDialog(QWidget *parent)
: QDialog(parent)
{
setupUi(this);
QPushButton *convertButton =
buttonBox->button(QDialogButtonBox::Ok);
convertButton->setText(tr("&send"));
convertButton->setEnabled(false);
connect(convertButton, SIGNAL(clicked()),
this, SLOT(convertImage()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
// connect(&process, SIGNAL(readyReadStandardError()),
// this, SLOT(updateOutputTextEdit()));
connect(&process, SIGNAL(finished(int, QProcess::ExitStatus)),
this, SLOT(processFinished(int, QProcess::ExitStatus)));
connect(&process, SIGNAL(error(QProcess::ProcessError)),
this, SLOT(processError(QProcess::ProcessError)));
connect(&process, SIGNAL(readyRead()), this, SLOT(readOutput()));
}
void ConvertDialog::on_browseButton_clicked()
{
QString initialName = sourceFileEdit->text();
if (initialName.isEmpty())
initialName = QDir::homePath();
fileNames =
QFileDialog::getOpenFileNames(this, tr("Select one or more files to open"),
initialName/*, tr("dat (*.dat)")*/);
//fileName = QDir::toNativeSeparators(fileName);
QString fileName = QFileInfo(fileNames.at(0)).path();
//out.txt//
//out txt//
if (!fileName.isEmpty())
{
sourceFileEdit->setText(fileName);
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
}
}
void ConvertDialog::convertImage()
{
QString sourceFile = sourceFileEdit->text();
// targetFile = QFileInfo(sourceFile).path() + QDir::separator()
// + QFileInfo(sourceFile).baseName() + "."
// + targetFormatComboBox->currentText().toLower();
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
outputTextEdit->clear();
QStringList args;
if (enhanceCheckBox->isChecked())
args << "200";
if (monochromeCheckBox->isChecked())
args << "400";
if (k300->isChecked())
args << "800";
if (k400->isChecked())
args << "1600";
args <<fileNames;// << targetFile
QString path = QDir::currentPath();
QString path1 = path + "/test"; //yun xing cheng xu
QString path2 = path + "/swriteconf"; //pei zhi wen jian
process1.start( path2,args);
for(int x=0;x<1000;x++)
{
;
}
process.start(/*"convert"*/path1, args);
///home/defeng2008/QT/chap12/imageconverter-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____
}
//void ConvertDialog::updateOutputTextEdit()
//{
// QByteArray newData = process.readAllStandardError();
// QString text = outputTextEdit->toPlainText()
// + QString::fromLocal8Bit(newData);
// outputTextEdit->setPlainText(text);
//}
void ConvertDialog::processFinished(int exitCode,
QProcess::ExitStatus exitStatus)
{
if (exitStatus == QProcess::CrashExit) {
outputTextEdit->append(tr("send program crashed"));
} else if (exitCode != 0) {
outputTextEdit->append(tr("send failed").arg(targetFile));
} else {
outputTextEdit->append(tr("send ok").arg(targetFile));
}
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
}
void ConvertDialog::processError(QProcess::ProcessError error)
{
if (error == QProcess::FailedToStart) {
outputTextEdit->append(tr("send program not found"));
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
}
}
void ConvertDialog::readOutput()
{
output += process.readAll();
outputTextEdit->setText(output);
}
send_QT.rar_QT_qt 线程
版权申诉
5 浏览量
2022-09-14
20:21:28
上传
评论
收藏 5.21MB RAR 举报
小贝德罗
- 粉丝: 70
- 资源: 1万+
最新资源
- 部署yolov8的tensorrt模型支持检测分割姿态估计的C++源码+部署步骤.zip
- 以简单、易用、高性能为目标、开源的时序数据库,支持Linux及Windows, Time Series Database.zip
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
- python-leetcode面试题解之第168题Excel表列名称-题解.zip
- python-leetcode面试题解之第167题两数之和II输入有序数组-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈