Russian Qt Forum
Ноябрь 01, 2024, 08:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAbstractItemView и свой виджет  (Прочитано 4729 раз)
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'
Если кто знает или сталкивался с проблемой подскажите как её решить.
« Последнее редактирование: Март 11, 2010, 13:19 от manarch » Записан
alexman
Гость
« Ответ #1 : Март 11, 2010, 13:45 »

Код то можно посмотреть?
Записан
manarch
Гость
« Ответ #2 : Март 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)      <-  ошибка на этой строке
};
Записан
Kolobok
Гость
« Ответ #3 : Март 11, 2010, 15:54 »

Нельзя наследоваться от двух наследников QObject
Записан
manarch
Гость
« Ответ #4 : Март 12, 2010, 07:36 »

Нельзя наследоваться от двух наследников QObject

Здравствуйте Кэп! Поэтому и создал тему чтобы узнать может кто нибудь решил эту проблему. Или хотя бы дал совет в какую сторону двигаться.
« Последнее редактирование: Март 12, 2010, 08:14 от manarch » Записан
alexman
Гость
« Ответ #5 : Март 12, 2010, 08:50 »

Нельзя наследоваться от двух наследников QObject

Здравствуйте Кэп! Поэтому и создал тему чтобы узнать может кто нибудь решил эту проблему. Или хотя бы дал совет в какую сторону двигаться.
Например, можно, унаследоваться от одно класса, а указатель на объект другого класса хранить как поле QRulerView.
Записан
Kolobok
Гость
« Ответ #6 : Март 13, 2010, 12:55 »

Нельзя наследоваться от двух наследников QObject

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

То есть, получается, что ты о том, что нельзя наследоваться от двух QObject знаешь, а про агрегацию никогда не слышал?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.108 секунд. Запросов: 21.