Ich kann ein QPixMapImage zu einem QGraphicsScene hinzufügen, aber dann habe ich zwei Probleme.Wie verschiebe ich ein QPixMapImage um eine qgraphicsview
Erstens kann ich keinen Zeiger auf mein QPixmapItem in der Kopfzeile, wo ich mit QGraphicsScene deklariert werden kann.
Ich bekomme einen Fehler "Fehler: keine passende Funktion für den Aufruf von 'QGraphicsPixmapItem :: QGraphicsPixmapItem (MainWindow * const)" ... Wenn ich meine QGraphicsScene in Main auf die gleiche Weise erstellen?
Zweiter Fehler: Ich kann das QGraphicsPixmapItem nicht verschieben, wenn der Schieberegler bewegt wird (ob ich nicht, bis der Zeiger funktioniert). Aber kann ich es sogar bewegen, oder muss ich es neu streichen?
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
#include <QGraphicsView>
#include <QGraphicsPixmapItem>
#include <QPixmap>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
scene = new QGraphicsScene(this);
QPixmap arrow = QPixmap::fromImage(QImage("ARROW.png"));
arrowItem = new QGraphicsPixmapItem(this);
arrowItem->setPixmap(arrow);
ui->graphicsView->setScene(scene);
ui->horizontalSlider->setMaximum(2000);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_horizontalSlider_sliderMoved(int position)
{
arrowItem->setPos(position,position);
scene->addItem(arrowItem);
}
Rubrik:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QGraphicsPixmapItem>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QGraphicsPixmapItem *arrowItem;
QGraphicsScene *scene;
private slots:
void on_horizontalSlider_sliderMoved(int position);
};
#endif // MAINWINDOW_H
Dank serge !!! – JohnStudio
Eigentlich möchte ich die Pixmap verschieben, indem ich einen Schieberegler im Gegensatz zu einem Mausklick verschiebe ... Weißt du wie das geht? – JohnStudio
von "slider" meinst du einen QSlider oder etw sonst? –