#ifndef TESTDUPLECATES_MAINWINDOW_HPP#define TESTDUPLECATES_MAINWINDOW_HPP#include <QtWidgets>class CMainWindow: public QWidget{Q_OBJECTpublic: CMainWindow(QWidget *parent = 0); ~CMainWindow();private: QHBoxLayout *mainLayoutH; QHBoxLayout *buttonsLayoutH; QVBoxLayout *rightLayoutV; QVBoxLayout *displayLayout; QFrame *leftFrame; QFrame *rightFrame; QFrame *bottonsFrame; QPushButton *buttonOpenFile; QPushButton *buttonFind; QPushButton *buttonSave; QTextEdit *displayContentOfFile; QTextEdit *infoAboutDup; void initWidgets(); void initConnect();private slots: void slotOpenFile(); void slotFindDuplicates(); void slotSaveInfo();};#endif //TESTDUPLECATES_MAINWINDOW_HPP
#include "CMainWindow.hpp"CMainWindow::CMainWindow(QWidget *parent) : QWidget(parent){ initWidgets(); initConnect();}CMainWindow::~CMainWindow(){}void CMainWindow::initWidgets(){ leftFrame = new QFrame(); leftFrame->setLineWidth(1); leftFrame->setFixedSize(400, 500); rightFrame= new QFrame(); rightFrame->setLineWidth(2); rightFrame->setFixedSize(300, 500); displayContentOfFile = new QTextEdit(); displayContentOfFile->setReadOnly(true); displayLayout = new QVBoxLayout(leftFrame); displayLayout->setMargin(0); displayLayout->setSpacing(0); displayLayout->addWidget(displayContentOfFile); bottonsFrame = new QFrame(); buttonOpenFile = new QPushButton("Open"); buttonFind = new QPushButton("Find"); buttonSave = new QPushButton("Save"); buttonsLayoutH = new QHBoxLayout(bottonsFrame); buttonsLayoutH->addWidget(buttonOpenFile); buttonsLayoutH->addWidget(buttonFind); buttonsLayoutH->addWidget(buttonSave); infoAboutDup = new QTextEdit(); infoAboutDup->setReadOnly(false); rightLayoutV = new QVBoxLayout(rightFrame); rightLayoutV->addWidget(bottonsFrame); rightLayoutV->addWidget(infoAboutDup); mainLayoutH = new QHBoxLayout(this); mainLayoutH->addWidget(leftFrame); mainLayoutH->addWidget(rightFrame); mainLayoutH->setMargin(0); mainLayoutH->setSpacing(0);}void CMainWindow::initConnect(){ connect(buttonOpenFile, SIGNAL(clicked()), this, SLOT(slotOpenFile())); connect(buttonFind, SIGNAL(clicked()), this, SLOT(slotFindDuplicates())); connect(buttonSave, SIGNAL(clicked()), this, SLOT(slotSaveInfo()));}void CMainWindow::slotOpenFile(){ QString file = QFileDialog::getOpenFileName(this, "Open File", "", "Text File(*.txt)"); QFile f(file); if (!file.isEmpty()) { if(!f.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, "Error", "Error opening file"); return; } QString text = f.readAll(); displayContentOfFile->setPlainText(text); f.close(); qDebug() << file; }}void CMainWindow::slotFindDuplicates(){}void CMainWindow::slotSaveInfo(){ QString filename = QFileDialog::getSaveFileName(this, "Save File", "", "*.txt"); QFile f(filename); if (!filename.isEmpty()) { if (!f.open(QIODevice::WriteOnly)) { QMessageBox::critical(this, "Error", "Error writing text file!"); return; } f.write(infoAboutDup->toPlainText().toLatin1()); f.close(); qDebug() << filename; }}
#ifndef TESTDUPLECATES_MYDUPLICATES_HPP#define TESTDUPLECATES_MYDUPLICATES_HPPclass MyDuplicates{};#endif //TESTDUPLECATES_MYDUPLICATES_HPP
#include "MyDuplicates.hpp"
#include "../CMainWindow.hpp"class MyDuplicates : public CMainWindow{};#endif //TESTDUPLECATES_MYDUPLICATES_HPP
QStringList FindDuplicates(const QStringList& inputData) const
...QString text = myTextEdit->text(); // myTextEdit - это ваш QTextEditQStringList splitText = text.split(",", QString::SkipEmptyParts);QStringList duplicates = MyDuplicates::FindDuplicates(splitText); // FindDuplicates - это и есть ваша функция из библиотеки
//// Created by blin on 02.10.15.//#include "CMainWindow.hpp"#include "subdir/MyDuplicates.hpp"CMainWindow::CMainWindow(QWidget *parent) : QWidget(parent){ initWidgets(); initConnect();}CMainWindow::~CMainWindow(){}void CMainWindow::initWidgets(){ leftFrame = new QFrame(); leftFrame->setLineWidth(1); leftFrame->setFixedSize(400, 500); rightFrame= new QFrame(); rightFrame->setLineWidth(2); rightFrame->setFixedSize(300, 500); displayContentOfFile = new QTextEdit(); displayContentOfFile->setReadOnly(true); displayLayout = new QVBoxLayout(leftFrame); displayLayout->setMargin(0); displayLayout->setSpacing(0); displayLayout->addWidget(displayContentOfFile); bottonsFrame = new QFrame(); buttonOpenFile = new QPushButton("Open"); buttonFind = new QPushButton("Find"); buttonSave = new QPushButton("Save"); buttonsLayoutH = new QHBoxLayout(bottonsFrame); buttonsLayoutH->addWidget(buttonOpenFile); buttonsLayoutH->addWidget(buttonFind); buttonsLayoutH->addWidget(buttonSave); infoAboutDup = new QTextEdit(); infoAboutDup->setReadOnly(false); rightLayoutV = new QVBoxLayout(rightFrame); rightLayoutV->addWidget(bottonsFrame); rightLayoutV->addWidget(infoAboutDup); mainLayoutH = new QHBoxLayout(this); mainLayoutH->addWidget(leftFrame); mainLayoutH->addWidget(rightFrame); mainLayoutH->setMargin(0); mainLayoutH->setSpacing(0);}void CMainWindow::initConnect(){ connect(buttonOpenFile, SIGNAL(clicked()), this, SLOT(slotOpenFile())); connect(buttonFind, SIGNAL(clicked()), this, SLOT(slotFindDuplicates())); connect(buttonSave, SIGNAL(clicked()), this, SLOT(slotSaveInfo()));}void CMainWindow::slotOpenFile(){ QString file = QFileDialog::getOpenFileName(this, "Open File", "", "Text File(*.txt)"); QFile f(file); if (!file.isEmpty()) { if(!f.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, "Error", "Error opening file"); return; } QString text = f.readAll(); displayContentOfFile->setPlainText(text); f.close(); qDebug() << file; }}void CMainWindow::slotFindDuplicates(){ QString text = displayContentOfFile->toPlainText(); QStringList splitText = text.split(",", QString::SkipEmptyParts); QStringList duplicates = MyDuplicates::FindDuplicates(splitText);}void CMainWindow::slotSaveInfo(){ QString filename = QFileDialog::getSaveFileName(this, "Save File", "", "*.txt"); QFile f(filename); if (!filename.isEmpty()) { if (!f.open(QIODevice::WriteOnly)) { QMessageBox::critical(this, "Error", "Error writing text file!"); return; } //f.write(displayContentOfFile->toPlainText().toLatin1()); f.close(); qDebug() << filename; }}
#ifndef TESTDUPLECATES_MYDUPLICATES_HPP#define TESTDUPLECATES_MYDUPLICATES_HPP#include <QStringList>class MyDuplicates{public: QStringList FindDuplicates(const QStringList& inputData) const;};#endif //TESTDUPLECATES_MYDUPLICATES_HPP
static QStringList FindDuplicates(const QStringList& inputData);