我正在開發一個程序,以允許用戶選擇一個文件並將其添加到QGraphicsView。除了項目定位之外,所有的esle都能正常工作所有圖像顯示在相同的位置。源代碼如下將圖像添加到QGraphicsScene中的某個位置
//user action to add an image
void MainWindow::on_actionMessage_triggered()
{
const int width = 150;
const int height = 200;
QString fileName = QFileDialog::getOpenFileName(this,"Open Image File",QDir::currentPath());
QImage image(fileName);
QGraphicsPixmapItem* item = new QGraphicsPixmapItem(QPixmap::fromImage(image));
item->setScale(0.1);
item->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
item->setPos(scene->items.count()*width,scene->items.count()*height);
scene->addItem(item);
}
//initialize Scene
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setBaseSize(800, 600);
scene = new QGraphicsScene(0,0,600,400);
scene->setSceneRect(0,0,600,400);
ui->graphicsView->setScene(scene);
//ui->graphicsView->fitInView(scene.sceneRect());
ui->graphicsView->show();
}
'scene-> items.count()'無效。它應該是'scene-> items()。count()'。這是真的嗎? –
更改了代碼。但結果是一樣的。 – lonelyloner
你是什麼意思的「相同」? 'scene-> items.count()'不能編譯!你怎麼能不注意到這一點?我已經運行你的代碼,它對我來說工作得很好。我認爲您的構建系統存在問題(例如,項目在運行之前不會編譯)。 –