feat: 添加GPU温度/使用率/显存实时监控
- C++后端:GpuInfo扩展统计字段,readGpuStats()支持NVIDIA(nvidia-smi)和AMD(sysfs) - PCI到DRM card映射,新增gpuStats属性和refreshStats方法 - QML前端:弹窗卡片显示温度(带颜色)、GPU使用率进度条、显存使用 - 任务栏tooltip显示简洁摘要(厂商简称+温度+使用率) - 定时刷新:弹窗和tooltip打开时每2秒刷新,关闭时停止 - 优化卡片布局:压缩高度和间距,弹窗高度调整至420px
This commit is contained in:
@@ -17,6 +17,14 @@ struct GpuInfo {
|
||||
QString driver; // 驱动模块名,如 "nvidia"
|
||||
QString driverVersion; // 驱动版本
|
||||
QString pciId; // PCI ID,如 "01:00.0"
|
||||
int drmCard; // DRM 卡号,如 0, 1(-1 表示未找到)
|
||||
|
||||
// 实时统计
|
||||
int temperature; // 温度 (°C),-1 表示不可用
|
||||
int gpuUsage; // GPU 使用率 (%),-1 表示不可用
|
||||
int memUsage; // 显存使用率 (%),-1 表示不可用
|
||||
int memTotal; // 显存总量 (MB),-1 表示不可用
|
||||
int memUsed; // 显存已用 (MB),-1 表示不可用
|
||||
};
|
||||
|
||||
class GraphicsDriverApplet : public DApplet
|
||||
@@ -26,6 +34,7 @@ class GraphicsDriverApplet : public DApplet
|
||||
Q_PROPERTY(QString deviceInfo READ deviceInfo NOTIFY deviceInfoChanged)
|
||||
Q_PROPERTY(QString currentDriver READ currentDriver NOTIFY currentDriverChanged)
|
||||
Q_PROPERTY(QString gpuSummary READ gpuSummary NOTIFY gpuSummaryChanged)
|
||||
Q_PROPERTY(QStringList gpuStats READ gpuStats NOTIFY gpuStatsChanged)
|
||||
Q_PROPERTY(bool ready READ ready NOTIFY readyChanged)
|
||||
|
||||
public:
|
||||
@@ -38,18 +47,23 @@ public:
|
||||
QString deviceInfo() const;
|
||||
QString currentDriver() const;
|
||||
QString gpuSummary() const;
|
||||
QStringList gpuStats() const;
|
||||
bool ready() const;
|
||||
|
||||
Q_INVOKABLE void refreshDeviceInfo();
|
||||
Q_INVOKABLE void refreshStats();
|
||||
|
||||
signals:
|
||||
void deviceInfoChanged();
|
||||
void currentDriverChanged();
|
||||
void gpuSummaryChanged();
|
||||
void gpuStatsChanged();
|
||||
void readyChanged();
|
||||
|
||||
private:
|
||||
void detectGpus();
|
||||
void readGpuStats();
|
||||
static int findDrmCard(const QString &pciId);
|
||||
static QStringList runCommand(const QString &cmd, const QStringList &args);
|
||||
static QString parseGpuName(const QString &line);
|
||||
static QString readDriverVersion(const QString &driverName);
|
||||
@@ -58,6 +72,7 @@ private:
|
||||
QString m_deviceInfo;
|
||||
QString m_currentDriver;
|
||||
QString m_gpuSummary;
|
||||
QStringList m_gpuStats;
|
||||
bool m_ready;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user