https://github.com/naghim/fft-lab10
https://github.com/naghim/fft-lab10
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/naghim/fft-lab10
- Owner: naghim
- Created: 2022-03-25T06:26:13.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T05:44:37.000Z (almost 2 years ago)
- Last Synced: 2025-02-25T12:48:55.882Z (11 months ago)
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Labor 10
## Diagramok készítése Qt-ben
Diagramok elkészítéséhez a [Qt Charts](https://doc.qt.io/qt-6/qtcharts-index.html) könyvtárát/modulját fogjuk használni, amely könnyen használható diagram-összetevőket tartalmaz. Ennek érdekében a projektfájlban majd hozzá kell adjuk: `QT += charts` (qmake) vagy `find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Charts)` (CMake).
## Feladatok
1. Próbáljunk ki különböző diagramokat. Készítsünk legalább 5 értékből álló:
- vonaldiagramot (_linechart_ - s ennek a görbés változatát _splinechart_, vagyis a pontokat egyenesek helyett görbék kötik össze),
- tortadiagramot (_piechart_),
- oszlopdiagramot (_barchart_ - ennél is próbáljuk ki a horizontális és vertikális elrendezést) stb.

2. Készítsünk "élő" vonaldiagramot, amelyet folyamatosan eltolunk (adunk hozzá új, véletlenszerűen kigenerált pontot, a régit pedig töröljük). Ennek megfelelően állítsuk a tengely címkéit is. Állítsuk át a vonal/háttér színét is tetszőleges színűre.
3. Az előző feladatot módosítsuk annyiban, hogy a véletlenszerűen kigenerált pontok helyett az aktuális CPU kihasználtságot tüntessük fel. A kihasználtságot a következőképp tudjuk lekérni Windows alatt:
```cpp
#include
static float CalculateCPULoad(unsigned long long idleTicks, unsigned long long totalTicks) {
static unsigned long long _previousTotalTicks = 0;
static unsigned long long _previousIdleTicks = 0;
unsigned long long totalTicksSinceLastTime = totalTicks - _previousTotalTicks;
unsigned long long idleTicksSinceLastTime = idleTicks - _previousIdleTicks;
float ret = 1.0f - ((totalTicksSinceLastTime > 0) ? ((float) idleTicksSinceLastTime) / totalTicksSinceLastTime : 0);
_previousTotalTicks = totalTicks;
_previousIdleTicks = idleTicks;
return ret;
}
static unsigned long long FileTimeToInt64(const FILETIME &ft) {
return (((unsigned long long)(ft.dwHighDateTime))<<32)|((unsigned long long)ft.dwLowDateTime);
}
float GetCPULoad() {
FILETIME idleTime, kernelTime, userTime;
return GetSystemTimes(&idleTime, &kernelTime, &userTime) ? CalculateCPULoad(FileTimeToInt64(idleTime), FileTimeToInt64(kernelTime) + FileTimeToInt64(userTime)) : -1.0f;
}
```
[Forrás](https://stackoverflow.com/questions/23143693/retrieving-cpu-load-percent-total-in-windows-with-c)