Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Dunkan от Май 25, 2018, 09:54



Название: Курсор мыши в QGraphicsView
Отправлено: Dunkan от Май 25, 2018, 09:54
Добрый день!
Столкнулся с проблемой в QGraphicsView, при помещении на QGraphicsScene прокси виджета QGraphicsProxyWidget, в котором находится QTableWidget, не всегда верно отображается курсор мыши ресайзе колонок или строк
Вот небольшой тестовый пример.

Код:
#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <QGraphicsScene>
#include <QGraphicsProxyWidget>
#include <QGraphicsView>
#include <QTableWidget>

MainWindow::MainWindow( QWidget *parent ) :
    QMainWindow( parent ),
    ui( new Ui::MainWindow )
{
    ui->setupUi( this );

    QGraphicsView *view = new QGraphicsView ;
    QGraphicsScene *scene = new QGraphicsScene ;
    scene->setSceneRect( 0, 0, 1000, 1000 );
    QGraphicsProxyWidget *item = new QGraphicsProxyWidget ;
    QTableWidget *table = new QTableWidget ;
    table->setRowCount( 10 );
    table->setColumnCount( 5 );
    table->setHorizontalHeaderLabels( QStringList() << "1" << "2" << "3" << "4" << "5" );
    table->setGeometry( 0, 0, 640, 480 );
    item->setWidget( table );
    scene->addItem( item );
    scene->setFocusItem( item );
    view->setScene( scene );
    setCentralWidget( view );
}

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


Код:
#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();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


Подозреваю что дело в событиях наведения мыши, возможно кто-нибудь решал подобную проблему


Название: Re: Курсор мыши в QGraphicsView
Отправлено: Авварон от Май 25, 2018, 16:12
По возможности, лучше не использовать прокси-виджет, он глючный.
Лучше скопипастить реализацию виджета к себе и отнаследовать его от QGraphicsWidget


Название: Re: Курсор мыши в QGraphicsView
Отправлено: Dunkan от Май 28, 2018, 07:17
По возможности, лучше не использовать прокси-виджет, он глючный.
Лучше скопипастить реализацию виджета к себе и отнаследовать его от QGraphicsWidget

Согласен, глючная штука. Думаю вы правы, вариант не очень красивый, но возможно единственный, благодарю  :)