#include #include #include #include #include #include #include #include #include #include #include class CSIUploader : public QWidget { Q_OBJECT public: CSIUploader(QWidget *parent = 0); private slots: void browseFiles(); void uploadFiles(); private: QListWidget *fileList; QPushButton *browseButton; QPushButton *uploadButton; }; CSIUploader::CSIUploader(QWidget *parent) : QWidget(parent) { QVBoxLayout *layout = new QVBoxLayout(this); fileList = new QListWidget(this); uploadButton = new QPushButton("Upload Files", this); browseButton = new QPushButton("Browse to Files", this); layout->addWidget(new QLabel("Files to be Uploaded:")); layout->addWidget(fileList); layout->addWidget(browseButton); layout->addWidget(uploadButton); setLayout(layout); connect(browseButton, &QPushButton::clicked, this, &CSIUploader::browseFiles); connect(uploadButton, &QPushButton::clicked, this, &CSIUploader::uploadFiles); } void CSIUploader::browseFiles() { QStringList files = QFileDialog::getOpenFileNames(this, "Select Files for Upload"); foreach (QString file, files) { fileList->addItem(file); } } void CSIUploader::uploadFiles() { if(fileList->count() == 0) { QMessageBox::warning(this, "No Files Selected", "Please Select Files for Upload."); return; } for(int i = 0; i < fileList->count(); i++) { QListWidgetItem *file = fileList->item(i); QString fileName = file->text(); // API Upload Code goes here QMessageBox::information(this, "File Upload", "Uploading: "+ fileName); } QMessageBox::information(this, "File Upload", "Upload Completed!"); fileList->clear(); } int main(int argc, char* argv[]) { QApplication app(argc, argv); CSIUploader window; window.setWindowTitle("File Uploader"); window.resize(300, 200); window.show(); return app.exec(); } #include "main.moc"