Russian Qt Forum

Qt => Model-View (MV) => Тема начата: manarch от Март 11, 2010, 13:17



Название: QAbstractItemView и свой виджет
Отправлено: manarch от Март 11, 2010, 13:17
Подскажите кто знает как "скрестить" свой виджет и QAbstractItemView в один виджет отображения? Т.е. есть мой виждет на базе QFrame, который отвечает за графическое оформление. В общем случае он никак не связан с MVC и прекрасно обходится без этого. Появилась новая задача прикрутить его к MVC, и он должен отвечать за графическое представление данных модели. Но компилятор отказывается собирать класс в котором указаны в качестве родителей этот виджет и QAbstractItemView, выдавая ошибку:
 error C2385: ambiguous access of 'd_ptr' could be the 'd_ptr' in base 'QObject'  or could be the 'd_ptr' in base 'QObject'
Если кто знает или сталкивался с проблемой подскажите как её решить.


Название: Re: QAbstractItemView и свой виджет
Отправлено: alexman от Март 11, 2010, 13:45
Код то можно посмотреть?


Название: Re: QAbstractItemView и свой виджет
Отправлено: manarch от Март 11, 2010, 13:57
Смотри

Код:
class QRulerViewPrivate;
class QRulerView: public QAbstractItemView, public QRuler
{
Q_OBJECT

public:
QRulerView(Qt::Orientation, QWidget *parent = 0);
QRulerView(Qt::Orientation, QRuler::MetricStyle, QWidget *parent = 0);
virtual ~GRulerView();

QRect visualRect(const QModelIndex &index) const;
void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible);
QModelIndex indexAt(const QPoint &point) const;
QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
int horizontalOffset() const;
int verticalOffset() const;
bool isIndexHidden(const QModelIndex &index) const;
void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command);
QRegion visualRegionForSelection(const QItemSelection &selection) const;

protected:
QRulerView(QRulerViewPrivate &dd, QWidget *parent=0);

private:
Q_DECLARE_PRIVATE(QRulerView)      <-  ошибка на этой строке
};


Название: Re: QAbstractItemView и свой виджет
Отправлено: Kolobok от Март 11, 2010, 15:54
Нельзя наследоваться от двух наследников QObject


Название: Re: QAbstractItemView и свой виджет
Отправлено: manarch от Март 12, 2010, 07:36
Нельзя наследоваться от двух наследников QObject

Здравствуйте Кэп! Поэтому и создал тему чтобы узнать может кто нибудь решил эту проблему. Или хотя бы дал совет в какую сторону двигаться.


Название: Re: QAbstractItemView и свой виджет
Отправлено: alexman от Март 12, 2010, 08:50
Нельзя наследоваться от двух наследников QObject

Здравствуйте Кэп! Поэтому и создал тему чтобы узнать может кто нибудь решил эту проблему. Или хотя бы дал совет в какую сторону двигаться.
Например, можно, унаследоваться от одно класса, а указатель на объект другого класса хранить как поле QRulerView.


Название: Re: QAbstractItemView и свой виджет
Отправлено: Kolobok от Март 13, 2010, 12:55
Нельзя наследоваться от двух наследников QObject

Здравствуйте Кэп! Поэтому и создал тему чтобы узнать может кто нибудь решил эту проблему. Или хотя бы дал совет в какую сторону двигаться.

То есть, получается, что ты о том, что нельзя наследоваться от двух QObject знаешь, а про агрегацию никогда не слышал?