making it work

This commit is contained in:
talksik
2024-02-08 13:33:01 -08:00
parent 8483a9f7ab
commit f347a5d936
4 changed files with 44 additions and 14 deletions
+14 -5
View File
@@ -1,13 +1,14 @@
import QtQuick
import QtQuick.Controls
Rectangle {
Window {
id: window
width: 640
height: 480
visible: true
title: "WIFI Picker"
required property var networksModel
property var model
signal scanNetworks()
@@ -19,9 +20,17 @@ Rectangle {
ListView {
id: listview
objectName: "listview"
model: parent.networksModel
delegate: Rectangle {
model: window.model
width: 100
height: 200
// model: ListModel {
// ListElement { name: "Item 1"; value: 10 }
// ListElement { name: "Item 2"; value: 20 }
// ListElement { name: "Item 3"; value: 30 }
// }
delegate: Item {
height: 20
required property string name
Text {
+10 -1
View File
@@ -18,7 +18,9 @@ NetworksModel::NetworksModel(QObject *parent)
:
QAbstractListModel(parent)
{
QList<Network> networks;
networks.append(Network("Gita test"));
this->m_networks = networks;
}
int NetworksModel::rowCount(const QModelIndex &parent) const
@@ -53,6 +55,13 @@ void NetworksModel::scan()
this->m_networks = networks;
}
QHash<int, QByteArray> NetworksModel::roleNames() const
{
QHash<int, QByteArray> roles;
roles[NetworksModel::NetworkRoles::NameRole] = "name";
return roles;
}
Network::Network(const QString &name)
: m_name(name)
{
+3
View File
@@ -39,6 +39,9 @@ public:
public slots:
void scan();
protected:
QHash<int, QByteArray> roleNames() const;
private:
QList<Network> m_networks;
NetworkScanner m_networkScanner;
+17 -8
View File
@@ -10,20 +10,29 @@ int main(int argc, char *argv[])
QGuiApplication app(argc, argv);
NetworksModel model;
qDebug() << "now has " << model.rowCount() << Qt::endl;
QQuickView view;
view.setResizeMode(QQuickView::SizeRootObjectToView);
view.setInitialProperties({{"networksModel", QVariant::fromValue(&model)}});
view.setSource(QUrl("qrc:/wifipicker/Main.qml"));
view.show();
QQmlApplicationEngine engine;
const QUrl url(u"qrc:/wifipicker/Main.qml"_qs);
QObject::connect(
&engine,
&QQmlApplicationEngine::objectCreationFailed,
&app,
[]() { QCoreApplication::exit(-1); },
Qt::QueuedConnection);
engine.load(url);
if (!view.rootObject())
QObject *rootObject = engine.rootObjects().first();
if (!rootObject)
{
qDebug() << "No root object found" << Qt::endl;
qDebug() << "Problem in finding root object" << Qt::endl;
return -1;
}
QObject *rootObject = view.rootObject();
engine.setInitialProperties({{"model", QVariant::fromValue(&model)}});
rootObject->setProperty("model", QVariant::fromValue(&model));
QObject::connect(rootObject, SIGNAL(scanNetworks()), &model, SLOT(scan()));