StocQt
Un gráfico bursátil configurable para 100 valores.

La aplicación StocQt presenta gráficos de tendencias para una lista personalizada de 100 valores basada en el NASDAQ-100. Permite al usuario elegir valores de una lista. Permite al usuario elegir valores de una lista. La aplicación también permite favorecer hasta 5 acciones para su uso en gráficos comparativos.
La aplicación utiliza varios tipos personalizados como Search, StockCheckBox, StockChart, StockView y SettingsView. Estos tipos presentan los datos de las acciones de forma legible y permiten al usuario personalizar el gráfico de tendencias. Por ejemplo, el usuario puede elegir ver las tendencias semanales, mensuales, trimestrales o semestrales del precio de las acciones.
La aplicación utiliza un singleton StockEngine personalizado implementado en C++ para el manejo de datos, como las solicitudes de API y las acciones favoritas. Implementa una clase APIHandler personalizada para obtener los datos en línea.
void ApiHandler::stockHistory(const QString &symbol, std::function<void(QList<HistoryData>)> onComplete)
La aplicación utiliza la clase ObjectModel para acceder a los modelos de datos visuales de los que depende.
id: mainWindow ... ListView { id: root ... model: ObjectModel { Item { id: stockContainer width: root.width height: root.height StockView { id: stockView anchors.fill: parent visible: false width: root.width height: root.height stateGroup: stateList } StockListView { id: listView visible: true anchors.fill: parent width: root.width height: root.height stateGroup: stateList } } FavoriteView { id: favoriteView width: root.width height: root.height } SettingsView { id: infoView width: root.width height: root.height } } }
El StockListModel es un modelo de datos personalizado que enumera las acciones con información básica como el ID de la acción, el nombre, el valor y el favorito. Esta aplicación utiliza este modelo de datos cuando el usuario quiere elegir otra acción de la lista.
StockView y FavoriteView son modelos de datos complejos que presentan un gráfico de tendencias para la acción seleccionada o un grupo de hasta 5 acciones. Utilizan otro tipo personalizado, StockChart o FavoriteChart, que carga los datos del StockEngine en ListModels y presenta la tendencia gráfica del precio de la acción utilizando un Surface3D, Bars3D, o Scatter3D.
Rectangle { id: chart ... function updateHistory(){ updateStartDate() let startPoint = StockEngine.stockModel.indexOf(startDate) let totalPoints = StockEngine.stockModel.historyCount() let width = startPoint / 50 for (let i = 0; i < totalPoints; i++) { let epochInDays = StockEngine.stockModel.historyDate(i, false) / 86400 appendSurfacePoint(openModel, width, epochInDays, StockEngine.stockModel.openPrice(i)) appendSurfacePoint(closeModel,width, epochInDays, StockEngine.stockModel.closePrice(i)) appendSurfacePoint(highModel,width, epochInDays, StockEngine.stockModel.highPrice(i)) appendSurfacePoint(lowModel,width, epochInDays, StockEngine.stockModel.lowPrice(i)) } ... Surface3D { id: historyGraph ... Surface3DSeries { id: highSeries visible: true baseColor: "green" shading: Surface3DSeries.Shading.Flat drawMode: Surface3DSeries.DrawSurface itemLabelFormat: "Time: @xLabel High:@yLabel$" ItemModelSurfaceDataProxy { itemModel: highModel rowRole: "row" columnRole: "column" yPosRole: "value" } },
La SettingsView presenta información sobre la aplicación.
Para comprender mejor la aplicación, navegue por su código utilizando Qt Creator.
Ejecutar el ejemplo
Para ejecutar el ejemplo desde Qt Creatorabra el modo Welcome y seleccione el ejemplo de Examples. Para más información, consulte Qt Creator: Tutorial: Construir y ejecutar.
Véase también Aplicaciones QML.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.