Bildbearbeitung mit Qt

Alles rund um die Programmierung mit Qt
Antworten
meff0
Beiträge: 3
Registriert: 21. Oktober 2012 21:00

Bildbearbeitung mit Qt

Beitrag von meff0 » 29. Oktober 2012 11:52

Hallo zusammen,

Ich habe ein Projekt in C++ und bin noch ziemlich am Anfang.
In diesem Projekt möchte ich ein ein Bild öffnen und in einem neuen Fenster anzeigen. In einem nächsten Schritt möchte ich dann einen Rahmen um einen Ausschnitt in diesem Bild ziehen und diesen Ausschnitt neu anzeigen lassen und abspeichern.

Leider bin ich blutiger Anfänger mit Qt und weiss nicht, was ich beachten muss, um ein Bild in einem neuen Fenster anzeigen zu lassen.
Habe mich mal in der Doku daran gemacht eine Klasse zu finden, die mir helfen könnte, aber leider bin ich auch nach intensivster Recherche noch nicht zu einem Ergebnis gekommen.

Das Programm ist compilierfähig :) und die Exe startet auch.

Ich hab mal meine bisherigen Files angehängt (Mir ist klar, dass auch noch an anderen Schräubchen gedreht werden muss, wie zB Menu-Funktion Datei/Beenden...)
mainwindow.h
(422 Bytes) 349-mal heruntergeladen
mainwindow.cpp
(1.52 KiB) 345-mal heruntergeladen
main.cpp
(193 Bytes) 316-mal heruntergeladen

meff0
Beiträge: 3
Registriert: 21. Oktober 2012 21:00

Re: Bildbearbeitung mit Qt

Beitrag von meff0 » 30. Oktober 2012 13:28

Schade! Woran liegt's, dass keiner helfen kann/will?

Keine Lust, keine Zeit, war ich nicht deutlich genug?

Füge jetzt mal die Codes in meinen Text hier ein, evtl. ist es zu aufwändig, die Files downzuloaden! :wink:

main.cpp

Code: Alles auswählen

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    
    return a.exec();
}
mainwindow.cpp

Code: Alles auswählen

#include "mainwindow.h"
#include "ui_mainwindow.h"

//zur Dateiverwaltung
#include <QFile>
#include <QFileDialog>
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_actionSpeichern_triggered()
{
    QString fileName = QFileDialog::getSaveFileName(this,
            tr("Save File"), "",
            tr("Data Text (*.txt);;All Files (*)"));
    if (fileName.isEmpty())
             return;
    else{
             QFile file(fileName);
             if (!file.open(QIODevice::WriteOnly)) {
                 QMessageBox::information(this, tr("Unable to open file"),
                 //Bei Fehler Fehlerdialog ausgeben
                     file.errorString());
                 return;
             }
    }

}

void MainWindow::on_action_ffnen_triggered()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("Save File"), "",
                                                    tr("Data Text (*.txt);;All Files (*)"));
    if (fileName.isEmpty())
             return;
    else{
             QFile file(fileName);
             if (!file.open(QIODevice::WriteOnly)) {
                 QMessageBox::information(this, tr("Unable to open file"),
                 //Bei Fehler Fehlerdialog ausgeben
                     file.errorString());
                 return;
             }
    }

}
mainwindow.h

Code: Alles auswählen

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void on_actionSpeichern_triggered();

    void on_action_ffnen_triggered();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

Vielleicht weiss nun jemand, wie mir geholfen werden kann.

Vielen Dank!! :wink:

veeman
Beiträge: 270
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: Bildbearbeitung mit Qt

Beitrag von veeman » 30. Oktober 2012 18:47

Lade das Bild mit Hilfe eines QImage-Objekts.

Erstell eine Abgeleitete Klasse von QWidget und Zeichne mithilfe des QPainter-Objekts in der Zeichenmethode paintEvent ( QPaintEvent * event ) dein geladenes Bild auf die Zeichenfläche.

Mfg veeman
mfg veeman

mage-dev

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Bildbearbeitung mit Qt

Beitrag von franzf » 31. Oktober 2012 15:05

meff0 hat geschrieben:Schade! Woran liegt's, dass keiner helfen kann/will?

Keine Lust, keine Zeit, war ich nicht deutlich genug?
1 Tag ist doch noch nicht wirklich tragisch. Außerdem hast du dir nicht das beste Forum ausgesucht. Bei Problemen mit der Programmierung in Qt bitte unter Qt Programmierung posten. Unter "Projekte" kommen nur Projekte (oder Ideen die noch zu Projekten werden wollen).
Füge jetzt mal die Codes in meinen Text hier ein, evtl. ist es zu aufwändig, die Files downzuloaden! :wink:
Ist beides etwas ungünstig. Wenn du mehrere Dateien hast, packst du die am besten in ein .zip, dann musst du nur EINE Datei hochladen, Interessierte Helfer müssen auch nur diese eine Datei herunterladen.

Wg. dem Problem "Neues Fenster" kannst du genau damit die Foren-Suchfunktion füttern - kommt nämlich durchaus öfter :)

meff0
Beiträge: 3
Registriert: 21. Oktober 2012 21:00

Re: Bildbearbeitung mit Qt

Beitrag von meff0 » 4. November 2012 20:49

Hallo zusammen und vielen Dank für die ersten Denkanstöße!! ;)

Tschuldigung, dass ich so ungeduldig war, das kam wohl dann aus der Erfahrung mit anderen Foren.
Ich werde mir die gegebenen Tipps mal zu Gemüte führen und dann wieder berichten.
Vom Überfliegen her ("Erstelle eine eigene Klasse von...") klingt es nicht gerade einfach.
Mal sehen wie weit ich komme.

Vielen Dank nochmal und noch einen schönen Abend!!

Grüße Meff0

Antworten