2015-10-24 3 views
0

Я бы хотел, чтобы QGraphicsView просто вписывался в QMainWiondw фиксированного размера. И мне нужна координата верхнего левого угла, чтобы быть (0,0). Как я могу это сделать?Сделать размер QGraphicsView подходящим

Это моя основная функция

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow window; 
    window.setFixedSize(1440, 900); 

    window.show(); 

    return a.exec(); 
} 

Это конструктор MainWindow.

MainWindow::MainWindow(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    view = new QGraphicsView(this); 
    scene = new QGraphicsScene(0, 0, 1440, 900, this); 
    view->setScene(scene); 
    setCentralWidget(view); 

    drawCoordinate(0,0); 
} 

Появляется свиток. Я думаю, что это дело в заголовке.

На самом деле я не обращаю внимания на размер QGraphicsView, если фиксирован размер основного окна. Но мне нужен QGraphicsView, чтобы заполнить весь mainwindow без полосы прокрутки, а верхний левый угол mainwindow находится в (0, 0).

С помощью @tangerine help, я могу сделать программу следующим образом. Но между главным окном и графическим представлением все еще остается место. Program Output

Это то, что я надеюсь достичь: enter image description here

The (0, 0) координат начинается на самой верхней и крайней левой в главном окне.

ответ

0

Если я правильно понял, я думаю, вы должны добавить эту строку в конструкторе MainWindow: view->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);

+0

Спасибо за ваш ответ. Я ценю вашу помощь. Это делает сцену подходящей для просмотра. Но единственная проблема заключается в том, что представление не вписывается в mainwindow. – tom

Смежные вопросы