-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
106 lines (96 loc) · 4.34 KB
/
mainwindow.cpp
File metadata and controls
106 lines (96 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include "labelslider.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
LabelSlider *labelSlider1 = new LabelSlider(Qt::Horizontal, this);
labelSlider1->setRange(0, 100);
labelSlider1->setTickInterval(20);
labelSlider1->setTickPosition(QSlider::TicksAbove);
labelSlider1->setTickValuesVisible(true);
labelSlider1->setFormatType(LabelSlider::SimpleFormat);
labelSlider1->setFormatSuffix("°C");
ui->verticalLayout->addWidget(labelSlider1);
LabelSlider *labelSlider2 = new LabelSlider(Qt::Horizontal, this);
labelSlider2->setRange(0, 100);
labelSlider2->setTickInterval(20);
labelSlider2->setTickPosition(QSlider::TicksAbove);
labelSlider2->setTickValuesVisible(true);
labelSlider2->setFormatType(LabelSlider::PrefixSuffixFormat);
labelSlider2->setFormatPrefixSuffix("$", ".00");
ui->verticalLayout->addWidget(labelSlider2);
LabelSlider *labelSlider3 = new LabelSlider(Qt::Horizontal, this);
labelSlider3->setRange(0, 100);
labelSlider3->setTickInterval(20);
labelSlider3->setTickPosition(QSlider::TicksBothSides);
labelSlider3->setTickValuesVisible(true);
labelSlider3->setFormatType(LabelSlider::PrintfFormat);
labelSlider3->setPrintfFormat("%+d dB");
ui->verticalLayout->addWidget(labelSlider3);
LabelSlider *labelSlider4 = new LabelSlider(Qt::Horizontal, this);
labelSlider4->setRange(0, 100);
labelSlider4->setTickInterval(20);
labelSlider4->setTickPosition(QSlider::TicksBelow);
labelSlider4->setTickValuesVisible(true);
labelSlider4->setFormatType(LabelSlider::SimpleFormat);
labelSlider4->setValueScale(0.01);
labelSlider4->setDecimalPlaces(2);
labelSlider4->setFormatSuffix("%");
ui->verticalLayout->addWidget(labelSlider4);
LabelSlider *labelSlider5 = new LabelSlider(Qt::Horizontal, this);
labelSlider5->setRange(0, 100);
labelSlider5->setTickInterval(20);
labelSlider5->setTickPosition(QSlider::TicksBelow);
labelSlider5->setTickValuesVisible(true);
labelSlider5->setFormatType(LabelSlider::CustomFunction);
labelSlider5->setCustomFormatter([](int value) -> QString {
if (value == 50)
return "中心";
if (value > 50)
return QString("右侧 +%1").arg(value);
return QString("左侧 %1").arg(value);
});
ui->verticalLayout->addWidget(labelSlider5);
LabelSlider *labelSlider6 = new LabelSlider(Qt::Vertical, this);
labelSlider6->setRange(0, 100);
labelSlider6->setTickInterval(20);
labelSlider6->setTickPosition(QSlider::TicksLeft);
labelSlider6->setTickValuesVisible(true);
labelSlider6->setFormatType(LabelSlider::CustomMapping);
labelSlider6->setCustomLabel(0, "最小值");
labelSlider6->setCustomLabel(20, "低");
labelSlider6->setCustomLabel(40, "正常");
labelSlider6->setCustomLabel(60, "正常");
labelSlider6->setCustomLabel(80, "高");
labelSlider6->setCustomLabel(100, "最大值");
ui->horizontalLayout->addWidget(labelSlider6);
LabelSlider *labelSlider7 = new LabelSlider(Qt::Vertical, this);
labelSlider7->setRange(0, 100);
labelSlider7->setTickInterval(20);
labelSlider7->setTickPosition(QSlider::TicksBothSides);
labelSlider7->setTickValuesVisible(true);
labelSlider7->setFormatType(LabelSlider::CustomFunction);
labelSlider7->setCustomFormatter([](int value) -> QString {
if (value == 0)
return "静音";
double db = 20.0 * log10(value / 100.0);
return QString("%1 dB").arg(db, 0, 'f', 1);
});
ui->horizontalLayout->addWidget(labelSlider7);
LabelSlider *labelSlider8 = new LabelSlider(Qt::Vertical, this);
labelSlider8->setRange(0, 100);
labelSlider8->setTickInterval(20);
labelSlider8->setTickPosition(QSlider::TicksRight);
labelSlider8->setTickValuesVisible(true);
labelSlider8->setFormatType(LabelSlider::CustomFunction);
labelSlider8->setCustomFormatter([](int celsius) -> QString {
int fahrenheit = celsius * 9 / 5 + 32;
return QString("%1°C (%2°F)").arg(celsius).arg(fahrenheit);
});
ui->horizontalLayout->addWidget(labelSlider8);
}
MainWindow::~MainWindow()
{
delete ui;
}