Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Qt] Jak wyłączyć domyślne scrollbary w QGraphicsView?

Ostatnio zmodyfikowano 2013-07-15 18:13
Autor Wiadomość
johny
Temat założony przez niniejszego użytkownika
[Qt] Jak wyłączyć domyślne scrollbary w QGraphicsView?
» 2013-07-15 16:28:24
Witam.
W Qt Designer układam sobie różne elementy. Dwa z nich to obiekty klasy QGraphicsView (rozmiar 320x280 każdy).
Następnie w pliku mainwindow.cpp (który jest domyślnie generowany przy tworzeniu nowego projektu "Aplikacja Gui Qt") edytuję sobie konstruktor klasy, jak poniżej:
C/C++
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <iostream>

#include <QGraphicsPixmapItem>

MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent )
    , ui( new Ui::MainWindow )
{
    ui->setupUi( this );
    QGraphicsScene * scene1 = new QGraphicsScene();
    scene1->setBackgroundBrush( Qt::yellow );
    ui->graphicsView_2->setScene( scene1 );
   
    image = cv::imread( "D:\\QT_projects\\Teczowka1\\S1001L01.jpg", 0 );
    if( !image.data )
    {
        std::cerr << "\n\nNie udalo sie odczytac obrazka!\n\n";
    }
    //QImage im=Mat2QImage(image);
    QImage im( "D:\\QT_projects\\Teczowka1\\S1001L01.jpg" ); // 320x280
    QGraphicsPixmapItem * item = new QGraphicsPixmapItem( QPixmap::fromImage( im ) );
    QGraphicsScene * scene2 = new QGraphicsScene();
    scene2->addItem( item );
   
    ui->graphicsView_1->setScene( scene2 );
    ui->graphicsView_1->show();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pB_1_clicked()
{
    //ui->graphicsView->
}

W rezultacie dostaję okienko w którym jeden z "prostokątów" w którym wyświetlam zdjęcie automatycznie dodaje slidery (czego nie chcę). Jak wyłączyć te automatyczne slidery? Zdjęcie ma taki sam rozmiar jak "prostokąt", będący obiektem klasy QGraphicsView, więc tak na zdrowy chłopski rozum slider jest tam nie potrzebny.
P-87974
DejaVu
» 2013-07-15 17:39:24
Frazy, które należy wpisać w wyszukiwarkę google:
http://www.qtcentre.org​/threads​/31778-How-to-Disable-Scroll-Bar-of-QGraphicsView-(or-QWidget)

C/C++
scene1->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
scene1->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );

Poza tym to nie jest slider tylko scrollbar.
P-87978
johny
Temat założony przez niniejszego użytkownika
» 2013-07-15 18:13:52
Oczywiście chodziło o scrollbar!:) Jakoś tak z rozpędu slider napisałem.

Dzięki, pomogło. Grzebałem w dokumentacji, ale jakoś nie udało mi się dotrzeć do tego :(
Konkretnie w moim kodzie trzeba było wywołać te metody na rzecz obiektu graphicsView_1 (po dodaniu #include <QAbstractScrollArea>):
C/C++
ui->graphicsView_1->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
ui->graphicsView_1->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
P-87980
« 1 »
  Strona 1 z 1