VK
emit dataChanged(после добавления элементов, но не получал ожидаемый эффект
index(0,0)
, index(rowCount() - 1,0)
);
Size: a a a
VK
emit dataChanged(после добавления элементов, но не получал ожидаемый эффект
index(0,0)
, index(rowCount() - 1,0)
);
AS
emit dataChanged(после добавления элементов, но не получал ожидаемый эффект
index(0,0)
, index(rowCount() - 1,0)
);
VK
The optional roles argument can be used to specify which data roles have actually been modified. An empty vector in the roles argument means that all roles should be considered modified.
GS
emit dataChanged(после добавления элементов, но не получал ожидаемый эффект
index(0,0)
, index(rowCount() - 1,0)
);
VK
VK
VK
AS
VK
AS
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QAbstractListModel>
#include <QDebug>
#include <QHash>
#include <QQmlContext>
#include <deque>
class MyModel : public QAbstractListModel {
Q_OBJECT;
private:
std::deque<int> array;
size_t capacity = 10;
public:
Q_INVOKABLE void add(int v) {
if (array.size() == capacity) {
array.pop_back();
array.push_front(v);
emit dataChanged(index(0), index(array.size() - 1));
} else {
array.push_front(v);
beginInsertRows(QModelIndex(), 0, 0);
endInsertRows();
}
}
// QAbstractItemModel interface
public:
virtual int rowCount(const QModelIndex& parent) const override {
if (parent.isValid())
return 0;
return array.size();
}
virtual QVariant data(const QModelIndex& index, int role) const override {
if (index.isValid()) {
switch (role) {
case Qt::UserRole: {
return array[index.row()];
}
}
}
return QVariant();
}
virtual QHash<int, QByteArray> roleNames() const override {
static QHash<int, QByteArray> roles = {{Qt::UserRole, QByteArray{"name"}}};
return roles;
}
};
int main(int argc, char* argv[]) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
MyModel model;
engine.rootContext()->setContextProperty("globalModel", &model);
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(
&engine, &QQmlApplicationEngine::objectCreated, &app,
[url](QObject* obj, const QUrl& objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
},
Qt::QueuedConnection);
engine.load(url);
return app.exec();
}
#include "main.moc"
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
property int counter: 0
ListView {
model: globalModel
delegate: Text {
text: name
}
anchors.fill: parent
}
Timer {
repeat: true
running: true
interval: 1000
onTriggered: {
globalModel.add(++counter)
}
}
}
VK
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QAbstractListModel>
#include <QDebug>
#include <QHash>
#include <QQmlContext>
#include <deque>
class MyModel : public QAbstractListModel {
Q_OBJECT;
private:
std::deque<int> array;
size_t capacity = 10;
public:
Q_INVOKABLE void add(int v) {
if (array.size() == capacity) {
array.pop_back();
array.push_front(v);
emit dataChanged(index(0), index(array.size() - 1));
} else {
array.push_front(v);
beginInsertRows(QModelIndex(), 0, 0);
endInsertRows();
}
}
// QAbstractItemModel interface
public:
virtual int rowCount(const QModelIndex& parent) const override {
if (parent.isValid())
return 0;
return array.size();
}
virtual QVariant data(const QModelIndex& index, int role) const override {
if (index.isValid()) {
switch (role) {
case Qt::UserRole: {
return array[index.row()];
}
}
}
return QVariant();
}
virtual QHash<int, QByteArray> roleNames() const override {
static QHash<int, QByteArray> roles = {{Qt::UserRole, QByteArray{"name"}}};
return roles;
}
};
int main(int argc, char* argv[]) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
MyModel model;
engine.rootContext()->setContextProperty("globalModel", &model);
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(
&engine, &QQmlApplicationEngine::objectCreated, &app,
[url](QObject* obj, const QUrl& objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
},
Qt::QueuedConnection);
engine.load(url);
return app.exec();
}
#include "main.moc"
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
property int counter: 0
ListView {
model: globalModel
delegate: Text {
text: name
}
anchors.fill: parent
}
Timer {
repeat: true
running: true
interval: 1000
onTriggered: {
globalModel.add(++counter)
}
}
}
AS
QLibrary r(":/libfile.so");
? Вопрос не практический, ради интересаЕ
AS
F
F