ich habe hier nochmal ein anderes Beispiel.
Code: Alles auswählen
#include <QMainWindow>
#include <QGraphicsScene>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent *e);
QGraphicsScene *scene;
private:
Ui::MainWindow *ui;
private slots:
void click123();
};
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
scene = new QGraphicsScene();
scene->addRect(0, 0, 400, 50);
ui->graphicsView->setScene(scene);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(click123()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::click123() {
scene->clear();
scene->addRect(0, 0, 200, 50);
ui->graphicsView->setScene(scene);
}
Auf dem Bild sieht man , wie es aussieht, wenn ich das erste mal etwas ins GraphicView einbinde und anschließend nach dem Drücken des Buttons.
Ich würde hier einfach erwarten, dass auch im 2. Fenster das rechteck zentriert ist, was aber nicht der Fall ist.
Das verstehe ich ncith, warum das nicht wieder zentriert wird.
Doch sobald ich das rechteck größer als das vorherige mache, wird es wieder zentriert.
Code: Alles auswählen
void MainWindow::click123() {
scene->clear();
scene->addRect(0, 0, 500, 50);
ui->graphicsView->setScene(scene);
}