Я создаю свой собственный делегат, унаследовавший от qstyleditemdelegate , потому что я хочу создать пользовательский редактор делегатов. В этом делегате я создаю сетку, в которой виджеты должны быть размещены в окне - в основном qlineedit и qlabel объекты, переопределяя функцию «краски» - чтобы знать, как виджеты должны быть размещены в окне
QWidget *Delegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
qInfo()
Далее я вставляю объекты qlineedit в ячейки этой сетки, используя пользовательский виджет, как показано ниже < /p>
UserEditorDelegateWidget::UserEditorDelegateWidget(QWidget *parent): QWidget{parent, Qt::Widget}
{
this->setObjectName(QString("UserEditorDelegateWidget"));
{
nameLabel = new QLineEdit(this);
nameLabel->setObjectName("nameLabel");
nameLabel->setText("name");
// nameLabel->setGeometry(p1.rx(), p1.ry(), p2.rx(), p2.ry());
nameLabel->setGeometry(96, 0, 96, 28);
surnameLabel = new QLineEdit(this);
surnameLabel->setObjectName("surnameLabel");
surnameLabel->setText("surname");
surnameLabel->setGeometry(192, 0, 96, 28);
}
{
description = new QLineEdit(this);
description->setObjectName("description");
description->setText("very very long description");
description->setGeometry(96, 28, 384, 27);
}
}
После запуска функции «createeditor» представление в qlistview появляется следующим образом
и в теории, за исключением Prome, за исключением Prome. /> Редактор должен только собирать данные (CommercataTa) и Close (owlodeDitor), когда пользователь щелкает вне всего экземпляра редактора (то есть за пределами виджета userEditordElegateWidget), а не при переключении между полями редактора. За пределами этого.>
Я создаю свой собственный делегат, унаследовавший от [b] qstyleditemdelegate [/b], потому что я хочу создать пользовательский редактор делегатов. В этом делегате я создаю сетку, в которой виджеты должны быть размещены в окне - в основном [b] qlineedit [/b] и [b] qlabel [/b] объекты, переопределяя функцию «краски» - чтобы знать, как виджеты должны быть размещены в окне [code]void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { const QRect &r = option.rect; painter->setPen(Qt::red);
painter->drawLine(cell, 0, cell, option.rect.height()-1); //avatar - cell 1 painter->drawLine(cell, halfHeight, option.rect.width(), halfHeight); //half main cell painter->drawLine(cell*2, 0, cell*2, halfHeight); //cell 2 painter->drawLine(cell*3, 0, cell*3, halfHeight); //cell 3 painter->drawLine(cell*4, 0, cell*4, halfHeight); //cell 4 painter->drawLine(cell*5, 0, cell*5, halfHeight); //cell 5 } [/code] Сетка выглядит как скриншот ниже, и теперь я хочу вставить объекты Qlineedit в ячейки этой сети. Редактор < /p> [code]QWidget *Delegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { qInfo() Далее я вставляю объекты qlineedit в ячейки этой сетки, используя пользовательский виджет, как показано ниже < /p> UserEditorDelegateWidget::UserEditorDelegateWidget(QWidget *parent): QWidget{parent, Qt::Widget} { this->setObjectName(QString("UserEditorDelegateWidget")); { nameLabel = new QLineEdit(this); nameLabel->setObjectName("nameLabel"); nameLabel->setText("name"); // nameLabel->setGeometry(p1.rx(), p1.ry(), p2.rx(), p2.ry()); nameLabel->setGeometry(96, 0, 96, 28);
surnameLabel = new QLineEdit(this); surnameLabel->setObjectName("surnameLabel"); surnameLabel->setText("surname"); surnameLabel->setGeometry(192, 0, 96, 28); } { description = new QLineEdit(this); description->setObjectName("description"); description->setText("very very long description"); description->setGeometry(96, 28, 384, 27); } } [/code] После запуска функции «createeditor» представление в qlistview появляется следующим образом
и в теории, за исключением Prome, за исключением Prome. /> Редактор должен только собирать данные (CommercataTa) и Close (owlodeDitor), когда пользователь щелкает вне всего экземпляра редактора (то есть за пределами виджета userEditordElegateWidget), а не при переключении между полями редактора. За пределами этого.>
Мне нужно отслеживать, что пользователи, просматривающие мой сайт, имеют страницу на переднем плане и в фокусе. /> Пример мульти-Window функции Android:
Я программирую базовый чат с использованием библиотеки Peerjs, и я хотел бы иметь функциональную функцию для этой библиотеки. Тем не менее, я использую веб -версию VSCODE, потому что я использую общий компьютер, на котором я ничего не могу...
Я программирую базовый чат с использованием библиотеки Peerjs, и я хотел бы иметь функциональную функцию для этой библиотеки. Тем не менее, я использую веб -версию VSCODE, потому что я использую общий компьютер, на котором я ничего не могу...
применить изображение к элементу QTableView ( ячейка), если она имеет пустое содержимое (как DecorationRole, поскольку у меня может быть другая логика, которая может использовать BackgroundRole)
применить изображение к элементу QTableView ( ячейка), если она имеет пустое содержимое (как DecorationRole, поскольку у меня может быть другая логика, которая может использовать BackgroundRole)