mirror of
https://github.com/Lurkki14/tuxclocker.git
synced 2025-02-25 18:55:24 -06:00
B
A
This commit is contained in:
parent
45ac973040
commit
68072b25d4
176
mainwindow.cpp
176
mainwindow.cpp
@ -26,8 +26,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
|
|
||||||
ui->memClkSlider->setRange(defMemClk + minMemClkOfsInt, defMemClk + maxMemClkOfsInt);
|
ui->memClkSlider->setRange(defMemClk + minMemClkOfsInt, defMemClk + maxMemClkOfsInt);
|
||||||
ui->memClkSpinBox->setRange(defMemClk + minMemClkOfsInt, defMemClk + maxMemClkOfsInt);
|
ui->memClkSpinBox->setRange(defMemClk + minMemClkOfsInt, defMemClk + maxMemClkOfsInt);
|
||||||
ui->memClkSlider->setValue(curMaxMemClkInt);
|
ui->memClkSlider->setValue(defMemClk + memClkOfsInt);
|
||||||
ui->memClkSpinBox->setValue(curMaxMemClkInt);
|
ui->memClkSpinBox->setValue(defMemClk + memClkOfsInt);
|
||||||
|
|
||||||
ui->voltageSlider->setRange(voltInt + minVoltOfsInt, voltInt + maxVoltOfsInt);
|
ui->voltageSlider->setRange(voltInt + minVoltOfsInt, voltInt + maxVoltOfsInt);
|
||||||
ui->voltageSpinBox->setRange(voltInt + minVoltOfsInt, voltInt + maxVoltOfsInt);
|
ui->voltageSpinBox->setRange(voltInt + minVoltOfsInt, voltInt + maxVoltOfsInt);
|
||||||
@ -41,8 +41,13 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
|
|
||||||
QTimer *fanUpdateTimer = new QTimer(this);
|
QTimer *fanUpdateTimer = new QTimer(this);
|
||||||
connect(fanUpdateTimer, SIGNAL(timeout()), this, SLOT(fanSpeedUpdater()));
|
connect(fanUpdateTimer, SIGNAL(timeout()), this, SLOT(fanSpeedUpdater()));
|
||||||
connect(fanUpdateTimer, SIGNAL(timeout()), this, SLOT(tempUpdater()));
|
//connect(fanUpdateTimer, SIGNAL(timeout()), this, SLOT(tempUpdater()));
|
||||||
fanUpdateTimer->start(2000);
|
fanUpdateTimer->start(2000);
|
||||||
|
|
||||||
|
connect(ui->frequencySpinBox, SIGNAL(valueChanged(int)), SLOT(resetTimer()));
|
||||||
|
connect(ui->powerLimSpinBox, SIGNAL(valueChanged(int)), SLOT(resetTimer()));
|
||||||
|
connect(ui->memClkSpinBox, SIGNAL(valueChanged(int)), SLOT(resetTimer()));
|
||||||
|
connect(ui->voltageSpinBox, SIGNAL(valueChanged(int)), SLOT(resetTimer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
@ -162,22 +167,44 @@ void MainWindow::tempUpdater()
|
|||||||
generateFanPoint();
|
generateFanPoint();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void MainWindow::resetTimer()
|
||||||
|
{
|
||||||
|
// If a value has been changed this timer will start. When the apply button has been pressed, this gets cancelled
|
||||||
|
connect(resettimer, SIGNAL(timeout()), SLOT(resetChanges()));
|
||||||
|
resettimer->stop();
|
||||||
|
resettimer->setSingleShot(true);
|
||||||
|
resettimer->start(10000);
|
||||||
|
}
|
||||||
|
void MainWindow::resetChanges()
|
||||||
|
{
|
||||||
|
// If the settings haven't been applied in 10 seconds, reset all values to their latest values
|
||||||
|
ui->frequencySlider->setValue(defCoreClk + latestClkOfs);
|
||||||
|
ui->frequencySpinBox->setValue(defCoreClk + latestClkOfs);
|
||||||
|
|
||||||
|
ui->powerLimSlider->setValue(latestPowerLim);
|
||||||
|
ui->powerLimSpinBox->setValue(latestPowerLim);
|
||||||
|
|
||||||
|
ui->voltageSlider->setValue(voltInt + latestVoltOfs);
|
||||||
|
ui->voltageSpinBox->setValue(voltInt + latestVoltOfs);
|
||||||
|
|
||||||
|
ui->memClkSlider->setValue(curMaxMemClkInt);
|
||||||
|
ui->memClkSpinBox->setValue(curMaxMemClkInt);
|
||||||
|
|
||||||
|
ui->memClkSlider->setValue(defMemClk + latestMemClkOfs);
|
||||||
|
ui->memClkSpinBox->setValue(defMemClk + latestMemClkOfs);
|
||||||
|
qDebug() << "timer";
|
||||||
|
}
|
||||||
void MainWindow::queryGPUSettings()
|
void MainWindow::queryGPUSettings()
|
||||||
{
|
{
|
||||||
QString volt;
|
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.start(nvVoltQ);
|
process.start(nvVoltQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
volt = process.readLine();
|
voltInt = process.readLine().toInt()/1000;
|
||||||
volt.chop(1);
|
|
||||||
voltInt = volt.toInt()/1000;
|
|
||||||
|
|
||||||
QString voltOfs;
|
|
||||||
process.start(nvVoltOfsQ);
|
process.start(nvVoltOfsQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
voltOfs = process.readLine();
|
voltOfsInt = process.readLine().toInt()/1000;
|
||||||
voltOfs.chop(1);
|
latestVoltOfs = voltOfsInt;
|
||||||
voltOfsInt = voltOfs.toInt()/1000;
|
|
||||||
|
|
||||||
defVolt = voltInt - voltOfsInt;
|
defVolt = voltInt - voltOfsInt;
|
||||||
|
|
||||||
@ -197,56 +224,26 @@ void MainWindow::queryGPUSettings()
|
|||||||
coreFreqOfs = process.readLine();
|
coreFreqOfs = process.readLine();
|
||||||
coreFreqOfs.chop(1);
|
coreFreqOfs.chop(1);
|
||||||
coreFreqOfsInt = coreFreqOfs.toInt();
|
coreFreqOfsInt = coreFreqOfs.toInt();
|
||||||
|
latestClkOfs = coreFreqOfsInt;
|
||||||
|
|
||||||
QString curMaxClk;
|
|
||||||
process.start(nvCurMaxClkQ);
|
process.start(nvCurMaxClkQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
curMaxClkInt = process.readLine().toInt();
|
curMaxClkInt = process.readLine().toInt();
|
||||||
qDebug() << curMaxClkInt;
|
qDebug() << curMaxClkInt;
|
||||||
|
|
||||||
QString maxPowerLim;
|
|
||||||
process.start(nvMaxPowerLimQ);
|
process.start(nvMaxPowerLimQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
for (int i=0; i<process.size(); i++) {
|
maxPowerLimInt = process.readLine().toInt();
|
||||||
QString output = process.readLine();
|
|
||||||
if (!output.contains("power")) {
|
|
||||||
maxPowerLim = output;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
maxPowerLim.chop(3);
|
|
||||||
maxPowerLimInt = maxPowerLim.toDouble();
|
|
||||||
qDebug() << maxPowerLimInt;
|
|
||||||
|
|
||||||
QString minPowerLim;
|
|
||||||
process.start(nvMinPowerLimQ);
|
process.start(nvMinPowerLimQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
for (int i=0; i<process.size(); i++) {
|
minPowerLimInt = process.readLine().toInt();
|
||||||
QString output = process.readLine();
|
|
||||||
if (!output.contains("power")) {
|
|
||||||
minPowerLim = output;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
minPowerLim.chop(3);
|
|
||||||
minPowerLimInt = minPowerLim.toDouble();
|
|
||||||
qDebug() << minPowerLimInt;
|
|
||||||
|
|
||||||
QString curPowerLim;
|
|
||||||
process.start(nvCurPowerLimQ);
|
process.start(nvCurPowerLimQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
for (int i=0; i<process.size(); i++) {
|
curPowerLimInt = process.readLine().toInt();
|
||||||
QString output = process.readLine();
|
latestPowerLim = curPowerLimInt;
|
||||||
if (!output.contains("power")) {
|
|
||||||
curPowerLim = output;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
curPowerLim.chop(3);
|
|
||||||
curPowerLimInt = curPowerLim.toDouble();
|
|
||||||
qDebug() << curPowerLimInt;
|
|
||||||
|
|
||||||
QString clockLimits;
|
|
||||||
process.start(nvClockLimQ);
|
process.start(nvClockLimQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
for (int i=0; i<2; i++) {
|
for (int i=0; i<2; i++) {
|
||||||
@ -270,22 +267,15 @@ void MainWindow::queryGPUSettings()
|
|||||||
maxMemClkOfsInt = line.toInt()/2;
|
maxMemClkOfsInt = line.toInt()/2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qDebug() << minMemClkOfsInt << maxMemClkOfsInt;
|
|
||||||
|
|
||||||
process.start(nvCurMaxMemClkQ);
|
process.start(nvCurMaxMemClkQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
curMaxMemClkInt = process.readLine().toInt();
|
curMaxMemClkInt = process.readLine().toInt();
|
||||||
qDebug() << curMaxMemClkInt;
|
|
||||||
|
|
||||||
process.start(nvCurMemClkOfsQ);
|
process.start(nvCurMemClkOfsQ);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
memClkOfsInt = process.readLine().toInt()/2;
|
memClkOfsInt = process.readLine().toInt()/2;
|
||||||
qDebug() << memClkOfsInt;
|
latestMemClkOfs = memClkOfsInt;
|
||||||
|
|
||||||
process.start(nvFanQ);
|
|
||||||
process.waitForFinished(-1);
|
|
||||||
fanSpeed = process.readLine().toInt();
|
|
||||||
qDebug() << fanSpeed;
|
|
||||||
|
|
||||||
// Since the maximum core clock reported is the same on negative offsets as on 0 offset add a check here
|
// Since the maximum core clock reported is the same on negative offsets as on 0 offset add a check here
|
||||||
if (0 >= coreFreqOfsInt) {
|
if (0 >= coreFreqOfsInt) {
|
||||||
@ -298,40 +288,56 @@ void MainWindow::queryGPUSettings()
|
|||||||
void MainWindow::applyGPUSettings()
|
void MainWindow::applyGPUSettings()
|
||||||
{
|
{
|
||||||
QProcess process;
|
QProcess process;
|
||||||
int offsetValue = ui->frequencySlider->value() - defCoreClk;
|
int offsetValue;
|
||||||
|
int powerLimit;
|
||||||
QString input = nvCoreClkSet;
|
QString input = nvCoreClkSet;
|
||||||
input.append(QString::number(offsetValue));
|
if (latestClkOfs != ui->frequencySlider->value() - defCoreClk) {
|
||||||
qDebug() << input;
|
offsetValue = ui->frequencySlider->value() - defCoreClk;
|
||||||
process.start(input);
|
QString input = nvCoreClkSet;
|
||||||
process.waitForFinished(-1);
|
input.append(QString::number(offsetValue));
|
||||||
|
qDebug() << input;
|
||||||
offsetValue = ui->memClkSlider->value() - defMemClk;
|
|
||||||
input = nvMemClkSet;
|
|
||||||
input.append(QString::number(offsetValue*2));
|
|
||||||
qDebug() << input;
|
|
||||||
process.start(input);
|
|
||||||
process.waitForFinished(-1);
|
|
||||||
|
|
||||||
int powerLimit = ui->powerLimSlider->value();
|
|
||||||
input = nvPowerLimSet;
|
|
||||||
if (!isRoot) {
|
|
||||||
input.append(QString::number(powerLimit) +"'\"");
|
|
||||||
input.prepend("/bin/sh -c \"kdesu -c ");
|
|
||||||
process.start(input);
|
process.start(input);
|
||||||
process.waitForFinished(-1);
|
process.waitForFinished(-1);
|
||||||
} else {
|
latestClkOfs = ui->frequencySlider->value() - defCoreClk;
|
||||||
input.append(QString::number(powerLimit));
|
|
||||||
process.start(input);
|
|
||||||
process.waitForFinished(-1);
|
|
||||||
qDebug() << "ran as root";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
offsetValue = ui->voltageSlider->value() - defVolt;
|
if (latestMemClkOfs != ui->memClkSlider->value() - defMemClk) {
|
||||||
input = nvVoltageSet;
|
offsetValue = ui->memClkSlider->value() - defMemClk;
|
||||||
input.append(QString::number(offsetValue*1000));
|
input = nvMemClkSet;
|
||||||
qDebug() << input;
|
input.append(QString::number(offsetValue*2));
|
||||||
process.start(input);
|
qDebug() << input;
|
||||||
process.waitForFinished(-1);
|
process.start(input);
|
||||||
|
process.waitForFinished(-1);
|
||||||
|
latestMemClkOfs = ui->memClkSlider->value() - defMemClk;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (latestPowerLim != ui->powerLimSlider->value()) {
|
||||||
|
powerLimit = ui->powerLimSlider->value();
|
||||||
|
input = nvPowerLimSet;
|
||||||
|
if (!isRoot) {
|
||||||
|
input.append(QString::number(powerLimit) +"'\"");
|
||||||
|
input.prepend("/bin/sh -c \"kdesu -c ");
|
||||||
|
process.start(input);
|
||||||
|
process.waitForFinished(-1);
|
||||||
|
} else {
|
||||||
|
input.append(QString::number(powerLimit));
|
||||||
|
process.start(input);
|
||||||
|
process.waitForFinished(-1);
|
||||||
|
qDebug() << "ran as root";
|
||||||
|
}
|
||||||
|
latestPowerLim = ui->powerLimSlider->value();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (latestVoltOfs != ui->voltageSlider->value() - defVolt) {
|
||||||
|
offsetValue = ui->voltageSlider->value() - defVolt;
|
||||||
|
input = nvVoltageSet;
|
||||||
|
input.append(QString::number(offsetValue*1000));
|
||||||
|
qDebug() << input;
|
||||||
|
process.start(input);
|
||||||
|
process.waitForFinished(-1);
|
||||||
|
latestVoltOfs = ui->voltageSlider->value() - defVolt;
|
||||||
|
}
|
||||||
|
resettimer->stop();
|
||||||
}
|
}
|
||||||
void MainWindow::loadProfileSettings()
|
void MainWindow::loadProfileSettings()
|
||||||
{
|
{
|
||||||
@ -380,8 +386,8 @@ void MainWindow::on_newProfile_closed()
|
|||||||
}
|
}
|
||||||
void MainWindow::saveProfileSettings()
|
void MainWindow::saveProfileSettings()
|
||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings("nvfancurve");
|
||||||
|
settings.beginGroup(currentProfile);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
19
mainwindow.h
19
mainwindow.h
@ -20,20 +20,20 @@ public:
|
|||||||
explicit MainWindow(QWidget *parent = nullptr);
|
explicit MainWindow(QWidget *parent = nullptr);
|
||||||
~MainWindow();
|
~MainWindow();
|
||||||
QString currentProfile;
|
QString currentProfile;
|
||||||
QString nvFanQ = "nvidia-settings -q GPUCurrentFanSpeed -t";
|
QString nvFanQ = "/bin/sh -c \"nvidia-smi --query-gpu=fan.speed --format=csv | egrep -o '[1-9]{1,4}'\"";
|
||||||
QString nvVoltQ = "nvidia-settings -q GPUCurrentCoreVoltage -t";
|
QString nvVoltQ = "nvidia-settings -q GPUCurrentCoreVoltage -t";
|
||||||
QString nvVoltOfsQ = "nvidia-settings -q GPUOverVoltageOffset -t";
|
QString nvVoltOfsQ = "nvidia-settings -q GPUOverVoltageOffset -t";
|
||||||
QString nvVoltOfsLimQ = "/bin/sh -c \"nvidia-settings -a GPUOverVoltageOffset=99999999 | egrep -o '[0-9]{1,9}'\"";
|
QString nvVoltOfsLimQ = "/bin/sh -c \"nvidia-settings -a GPUOverVoltageOffset=99999999 | egrep -o '[0-9]{1,9}'\"";
|
||||||
QString nvCoreClkOfsQ = "nvidia-settings -q GPUGraphicsClockOffset[3] -t";
|
QString nvCoreClkOfsQ = "nvidia-settings -q GPUGraphicsClockOffset[3] -t";
|
||||||
QString nvCurMaxClkQ = "/bin/sh -c \"nvidia-smi --query-supported-clocks=gr --format=csv | egrep -o '[0-9]{2,9}'\"";
|
QString nvCurMaxClkQ = "/bin/sh -c \"nvidia-smi --query-supported-clocks=gr --format=csv | egrep -o '[0-9]{2,9}'\"";
|
||||||
QString nvMaxPowerLimQ = "nvidia-smi --query-gpu=power.max_limit --format=csv";
|
QString nvMaxPowerLimQ = "/bin/sh -c \"nvidia-smi --query-gpu=power.max_limit --format=csv | egrep -o '[0-9]{1,7}'\"";
|
||||||
QString nvMinPowerLimQ = "nvidia-smi --query-gpu=power.min_limit --format=csv";
|
QString nvMinPowerLimQ = "/bin/sh -c \"nvidia-smi --query-gpu=power.min_limit --format=csv | egrep -o '[0-9]{1,7}'\"";
|
||||||
QString nvCurPowerLimQ = "nvidia-smi --query-gpu=power.limit --format=csv";
|
QString nvCurPowerLimQ = "/bin/sh -c \"nvidia-smi --query-gpu=power.limit --format=csv | egrep -o '[0-9]{1,7}'\"";
|
||||||
QString nvClockLimQ = "/bin/sh -c \"nvidia-settings -a GPUGraphicsClockOffset[3]=999999 | egrep -o '[-0-9]{2,9}'\"";
|
QString nvClockLimQ = "/bin/sh -c \"nvidia-settings -a GPUGraphicsClockOffset[3]=999999 | egrep -o '[-0-9]{2,9}'\"";
|
||||||
QString nvMemClkLimQ = "/bin/sh -c \"nvidia-settings -a GPUMemoryTransferRateOffset[3]=999999 | egrep -o '[-0-9]{2,9}'\"";
|
QString nvMemClkLimQ = "/bin/sh -c \"nvidia-settings -a GPUMemoryTransferRateOffset[3]=999999 | egrep -o '[-0-9]{2,9}'\"";
|
||||||
QString nvCurMaxMemClkQ = "/bin/sh -c \"nvidia-smi --query-supported-clocks=mem --format=csv | egrep -o '[0-9]{2,9}'\"";
|
QString nvCurMaxMemClkQ = "/bin/sh -c \"nvidia-smi --query-supported-clocks=mem --format=csv | egrep -o '[0-9]{2,9}'\"";
|
||||||
QString nvCurMemClkOfsQ = "nvidia-settings -q GPUMemoryTransferRateOffset[3] -t";
|
QString nvCurMemClkOfsQ = "nvidia-settings -q GPUMemoryTransferRateOffset[3] -t";
|
||||||
QString nvTempQ = "nvidia-settings -q ThermalSensorReading -t";
|
QString nvTempQ = "/bin/sh -c \"nvidia-smi --query-gpu=temperature.gpu --format=csv | egrep -o '[1-9]{1,4}'\"";
|
||||||
|
|
||||||
QString nvCoreClkSet = "nvidia-settings -a GPUGraphicsClockOffset[3]=";
|
QString nvCoreClkSet = "nvidia-settings -a GPUGraphicsClockOffset[3]=";
|
||||||
QString nvMemClkSet = "nvidia-settings -a GPUMemoryTransferRateOffset[3]=";
|
QString nvMemClkSet = "nvidia-settings -a GPUMemoryTransferRateOffset[3]=";
|
||||||
@ -73,6 +73,11 @@ public:
|
|||||||
int defMemClk;
|
int defMemClk;
|
||||||
int defVolt;
|
int defVolt;
|
||||||
|
|
||||||
|
int latestClkOfs;
|
||||||
|
int latestPowerLim;
|
||||||
|
int latestMemClkOfs;
|
||||||
|
int latestVoltOfs;
|
||||||
|
|
||||||
bool isRoot;
|
bool isRoot;
|
||||||
public slots:
|
public slots:
|
||||||
void saveProfileSettings();
|
void saveProfileSettings();
|
||||||
@ -117,10 +122,14 @@ private slots:
|
|||||||
void checkForRoot();
|
void checkForRoot();
|
||||||
void tempUpdater();
|
void tempUpdater();
|
||||||
void enableFanControl();
|
void enableFanControl();
|
||||||
|
void resetChanges();
|
||||||
|
void resetTimer();
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
bool noProfiles = true;
|
bool noProfiles = true;
|
||||||
QVector <int> compXPoints, compYPoints;
|
QVector <int> compXPoints, compYPoints;
|
||||||
|
|
||||||
|
QTimer *resettimer = new QTimer(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
346
mainwindow.ui
346
mainwindow.ui
@ -6,250 +6,132 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>513</width>
|
<width>384</width>
|
||||||
<height>762</height>
|
<height>590</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>MainWindow</string>
|
<string>MainWindow</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralWidget">
|
<widget class="QWidget" name="centralWidget">
|
||||||
<widget class="QComboBox" name="profileComboBox">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="geometry">
|
<item row="0" column="0">
|
||||||
<rect>
|
<widget class="QPushButton" name="pushButton">
|
||||||
<x>340</x>
|
<property name="text">
|
||||||
<y>650</y>
|
<string>testinappi</string>
|
||||||
<width>151</width>
|
</property>
|
||||||
<height>31</height>
|
</widget>
|
||||||
</rect>
|
</item>
|
||||||
</property>
|
<item row="1" column="0" colspan="2">
|
||||||
</widget>
|
<widget class="QLabel" name="label">
|
||||||
<widget class="QPushButton" name="pushButton">
|
<property name="text">
|
||||||
<property name="geometry">
|
<string>Fan Speed (%)</string>
|
||||||
<rect>
|
</property>
|
||||||
<x>10</x>
|
</widget>
|
||||||
<y>10</y>
|
</item>
|
||||||
<width>75</width>
|
<item row="2" column="0" colspan="3">
|
||||||
<height>23</height>
|
<widget class="QSlider" name="fanSlider">
|
||||||
</rect>
|
<property name="orientation">
|
||||||
</property>
|
<enum>Qt::Horizontal</enum>
|
||||||
<property name="text">
|
</property>
|
||||||
<string>testinappi</string>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
</widget>
|
<item row="2" column="3">
|
||||||
<widget class="QSlider" name="frequencySlider">
|
<widget class="QSpinBox" name="fanSpinBox"/>
|
||||||
<property name="geometry">
|
</item>
|
||||||
<rect>
|
<item row="3" column="0" colspan="2">
|
||||||
<x>70</x>
|
<widget class="QLabel" name="voltgeLabel">
|
||||||
<y>560</y>
|
<property name="text">
|
||||||
<width>271</width>
|
<string>Voltage (mV)</string>
|
||||||
<height>20</height>
|
</property>
|
||||||
</rect>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
<property name="orientation">
|
<item row="4" column="0" colspan="3">
|
||||||
<enum>Qt::Horizontal</enum>
|
<widget class="QSlider" name="voltageSlider">
|
||||||
</property>
|
<property name="orientation">
|
||||||
</widget>
|
<enum>Qt::Horizontal</enum>
|
||||||
<widget class="QSpinBox" name="frequencySpinBox">
|
</property>
|
||||||
<property name="geometry">
|
</widget>
|
||||||
<rect>
|
</item>
|
||||||
<x>350</x>
|
<item row="4" column="3">
|
||||||
<y>560</y>
|
<widget class="QSpinBox" name="voltageSpinBox"/>
|
||||||
<width>71</width>
|
</item>
|
||||||
<height>21</height>
|
<item row="5" column="0" colspan="2">
|
||||||
</rect>
|
<widget class="QLabel" name="memClockLabel">
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<string>Memory Clock (MHz)</string>
|
||||||
<widget class="QPushButton" name="newProfile">
|
</property>
|
||||||
<property name="geometry">
|
</widget>
|
||||||
<rect>
|
</item>
|
||||||
<x>300</x>
|
<item row="6" column="0" colspan="3">
|
||||||
<y>650</y>
|
<widget class="QSlider" name="memClkSlider">
|
||||||
<width>31</width>
|
<property name="orientation">
|
||||||
<height>31</height>
|
<enum>Qt::Horizontal</enum>
|
||||||
</rect>
|
</property>
|
||||||
</property>
|
</widget>
|
||||||
<property name="text">
|
</item>
|
||||||
<string>...</string>
|
<item row="6" column="3">
|
||||||
</property>
|
<widget class="QSpinBox" name="memClkSpinBox"/>
|
||||||
</widget>
|
</item>
|
||||||
<widget class="QSlider" name="powerLimSlider">
|
<item row="7" column="0" colspan="2">
|
||||||
<property name="geometry">
|
<widget class="QLabel" name="powerLimLabel">
|
||||||
<rect>
|
<property name="text">
|
||||||
<x>70</x>
|
<string>Power Limit (W)</string>
|
||||||
<y>501</y>
|
</property>
|
||||||
<width>271</width>
|
</widget>
|
||||||
<height>20</height>
|
</item>
|
||||||
</rect>
|
<item row="8" column="0" colspan="3">
|
||||||
</property>
|
<widget class="QSlider" name="powerLimSlider">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QSpinBox" name="powerLimSpinBox">
|
</item>
|
||||||
<property name="geometry">
|
<item row="8" column="3">
|
||||||
<rect>
|
<widget class="QSpinBox" name="powerLimSpinBox"/>
|
||||||
<x>350</x>
|
</item>
|
||||||
<y>500</y>
|
<item row="9" column="0" colspan="2">
|
||||||
<width>71</width>
|
<widget class="QLabel" name="clockFreqLabel">
|
||||||
<height>21</height>
|
<property name="text">
|
||||||
</rect>
|
<string>Clock Frequency (MHz)</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QSpinBox" name="memClkSpinBox">
|
</item>
|
||||||
<property name="geometry">
|
<item row="10" column="0" colspan="3">
|
||||||
<rect>
|
<widget class="QSlider" name="frequencySlider">
|
||||||
<x>350</x>
|
<property name="orientation">
|
||||||
<y>440</y>
|
<enum>Qt::Horizontal</enum>
|
||||||
<width>71</width>
|
</property>
|
||||||
<height>21</height>
|
</widget>
|
||||||
</rect>
|
</item>
|
||||||
</property>
|
<item row="10" column="3">
|
||||||
</widget>
|
<widget class="QSpinBox" name="frequencySpinBox"/>
|
||||||
<widget class="QSlider" name="memClkSlider">
|
</item>
|
||||||
<property name="geometry">
|
<item row="11" column="1">
|
||||||
<rect>
|
<widget class="QPushButton" name="applyButton">
|
||||||
<x>70</x>
|
<property name="text">
|
||||||
<y>440</y>
|
<string>Apply changes</string>
|
||||||
<width>271</width>
|
</property>
|
||||||
<height>20</height>
|
</widget>
|
||||||
</rect>
|
</item>
|
||||||
</property>
|
<item row="11" column="2">
|
||||||
<property name="orientation">
|
<widget class="QPushButton" name="newProfile">
|
||||||
<enum>Qt::Horizontal</enum>
|
<property name="text">
|
||||||
</property>
|
<string>...</string>
|
||||||
</widget>
|
</property>
|
||||||
<widget class="QSlider" name="voltageSlider">
|
</widget>
|
||||||
<property name="geometry">
|
</item>
|
||||||
<rect>
|
<item row="11" column="3">
|
||||||
<x>70</x>
|
<widget class="QComboBox" name="profileComboBox"/>
|
||||||
<y>381</y>
|
</item>
|
||||||
<width>271</width>
|
</layout>
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QSpinBox" name="voltageSpinBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>350</x>
|
|
||||||
<y>380</y>
|
|
||||||
<width>71</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="clockFreqLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>530</y>
|
|
||||||
<width>191</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Clock Frequency (MHz)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="powerLimLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>470</y>
|
|
||||||
<width>141</width>
|
|
||||||
<height>16</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Power Limit (W)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="memClockLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>410</y>
|
|
||||||
<width>151</width>
|
|
||||||
<height>16</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Memory Clock (MHz)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="voltgeLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>350</y>
|
|
||||||
<width>141</width>
|
|
||||||
<height>16</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Voltage (mV)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QSlider" name="fanSlider">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>320</y>
|
|
||||||
<width>271</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QSpinBox" name="fanSpinBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>351</x>
|
|
||||||
<y>319</y>
|
|
||||||
<width>71</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>290</y>
|
|
||||||
<width>131</width>
|
|
||||||
<height>16</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Fan Speed (%)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="applyButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>175</x>
|
|
||||||
<y>650</y>
|
|
||||||
<width>101</width>
|
|
||||||
<height>32</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Apply changes</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenuBar" name="menuBar">
|
<widget class="QMenuBar" name="menuBar">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>513</width>
|
<width>384</width>
|
||||||
<height>28</height>
|
<height>28</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
Loading…
Reference in New Issue
Block a user