Size: a a a

2021 February 25

МВ

Макс Воробьев... in Qt
можно же добавить child
источник

I

Ilya in Qt
Так так, а можно подробнее в какую сторону смотреть?) получается виджет же все равно придётся сделать?
источник

I

Ilya in Qt
Я могу скинуть свой код как я это видел вообще
источник

МВ

Макс Воробьев... in Qt
Ilya
Так так, а можно подробнее в какую сторону смотреть?) получается виджет же все равно придётся сделать?
тебе нужно указать у виджета, который нужно отрисовать, парент, на котором его отрисовать
источник

МВ

Макс Воробьев... in Qt
в конструкторе чайлд виджета или через setParent
источник

МВ

Макс Воробьев... in Qt
источник

I

Ilya in Qt
class Delegate : public QStyledItemDelegate {
Q_OBJECT
public:
   explicit Delegate(QObject *parent = nullptr) : QStyledItemDelegate(parent) {
   }
   ~Delegate() override = default;
   void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override {
 const auto data = index.model()->data(index, Qt::DisplayRole).value<Custom>();
       auto *const widget = CustomWidget(data, ...);
       
   }
   QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override {
       return CustomWidget(index.model()->data(index, Qt::DisplayRole).value<Custom>()).sizeHint();
   }
};

имеется ввиду в методе paint назначить отца?
источник

I

Ilya in Qt
там же логика в том, чтобы при помощи пеинтера отрисовывать элементы списка?
источник

МВ

Макс Воробьев... in Qt
5 мин
источник

МВ

Макс Воробьев... in Qt
мдя. найти что-то наглядное в телеге проблематично
источник

МВ

Макс Воробьев... in Qt
Ilya
class Delegate : public QStyledItemDelegate {
Q_OBJECT
public:
   explicit Delegate(QObject *parent = nullptr) : QStyledItemDelegate(parent) {
   }
   ~Delegate() override = default;
   void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override {
 const auto data = index.model()->data(index, Qt::DisplayRole).value<Custom>();
       auto *const widget = CustomWidget(data, ...);
       
   }
   QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override {
       return CustomWidget(index.model()->data(index, Qt::DisplayRole).value<Custom>()).sizeHint();
   }
};

имеется ввиду в методе paint назначить отца?
не прокатит то, о чем я говорил. сек
источник

МВ

Макс Воробьев... in Qt
только если painer передавать в метод paint у сабвиджета
источник

МВ

Макс Воробьев... in Qt
Ilya
class Delegate : public QStyledItemDelegate {
Q_OBJECT
public:
   explicit Delegate(QObject *parent = nullptr) : QStyledItemDelegate(parent) {
   }
   ~Delegate() override = default;
   void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override {
 const auto data = index.model()->data(index, Qt::DisplayRole).value<Custom>();
       auto *const widget = CustomWidget(data, ...);
       
   }
   QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override {
       return CustomWidget(index.model()->data(index, Qt::DisplayRole).value<Custom>()).sizeHint();
   }
};

имеется ввиду в методе paint назначить отца?
не. QListView умеет только рисовать, QListWidget не умеет в модель
источник

I

Ilya in Qt
Макс Воробьев
не. QListView умеет только рисовать, QListWidget не умеет в модель
ага(
источник

МВ

Макс Воробьев... in Qt
Ilya
ага(
не желаете уверовать в Qml?)
источник

МВ

Макс Воробьев... in Qt
я то думал, что там что-нибудь на подобии bindModel из gtklistbox или listview в qml...
источник

МВ

Макс Воробьев... in Qt
@preston , а есть ссылка на класс listview из диалога в телеге?
источник

I

Ilya in Qt
Макс Воробьев
не желаете уверовать в Qml?)
ага, видимо придется, ну или в пиксмапу виджет закидывать... жалко, что нет альтернатив. спасибо за уделенное внимание)
источник

МВ

Макс Воробьев... in Qt
Ilya
ага, видимо придется, ну или в пиксмапу виджет закидывать... жалко, что нет альтернатив. спасибо за уделенное внимание)
каст в пиксмапу не сильно поможет
источник

МВ

Макс Воробьев... in Qt
тебе же еще эвенты нужно как-то передать делегату
источник