If the button is supposed to be in the bottom-left position of the screen (the qgraphicsview) the whole time, then why don't you just create it on top of the qgraphicsview instead of creating it in the qgraphicsscene?
You can achieve this very easy. Assuming you have a QMainWindow with according ui class and a QGraphicsView widget (graphicsview) is placed in this form. The code look like:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
{
Q_OBJECT
public:
explicit MainWindow
(QWidget *parent
= 0);
~MainWindow();
void createButton(int buttonWidth, int buttonHeight);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#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();
void createButton(int buttonWidth, int buttonHeight);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
MainWindow
::MainWindow(QWidget *parent
) : ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::createButton(int buttonWidth, int buttonHeight)
{
button->setText("Click me!");
button->setGeometry(0,
ui->graphicsView->geometry().height() - buttonHeight,
buttonWidth, buttonHeight);
button->show();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::createButton(int buttonWidth, int buttonHeight)
{
QPushButton* button = new QPushButton(ui->graphicsView);
button->setText("Click me!");
button->setGeometry(0,
ui->graphicsView->geometry().height() - buttonHeight,
buttonWidth, buttonHeight);
button->show();
}
To copy to clipboard, switch view to plain text mode
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
MainWindow w;
w.show();
w.createButton(100,50);
return a.exec();
}
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
w.createButton(100,50);
return a.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks