gnssview_old/lib/quality/signalQuality_page.dart

79 lines
2.3 KiB
Dart
Raw Permalink Normal View History

2024-07-30 18:20:27 +08:00
import 'package:flutter/material.dart';
import 'chartpart.dart';
import 'singlebutton.dart';
2024-07-31 19:04:11 +08:00
class SignalQuality extends StatefulWidget {
2024-07-30 18:20:27 +08:00
@override
2024-07-31 19:04:11 +08:00
_SignalQualityState createState() => _SignalQualityState();
2024-07-30 18:20:27 +08:00
}
2024-07-31 19:04:11 +08:00
class _SignalQualityState extends State<SignalQuality> {
2024-07-30 18:20:27 +08:00
Color selectedColor = Colors.blue; // 默认颜色
List<Color> colors = [Colors.blue, Colors.red, Colors.green, Colors.orange];
List<List<Color>> groupColors = []; // 存储每个组的颜色
@override
void initState() {
super.initState();
// 初始化每个组的颜色
for (int i = 0; i < 4; i++) {
2024-08-01 18:17:57 +08:00
groupColors
.add([colors[i % colors.length], colors[(i + 1) % colors.length]]);
2024-07-30 18:20:27 +08:00
}
}
void updateGroupColor(int groupIndex, Color color) {
setState(() {
for (int i = 0; i < groupColors.length; i++) {
// 只保留与选中颜色相同的颜色
2024-08-01 18:17:57 +08:00
groupColors[i] =
groupColors[i].first == color ? [color] : [Colors.transparent];
2024-07-30 18:20:27 +08:00
}
});
}
String colorToString(Color color) {
// 将颜色转换为字符串
2024-08-01 18:17:57 +08:00
if (color == Color.fromARGB(255, 255, 0, 0)) return 'GPS(G)';
if (color == Color.fromARGB(255, 0, 255, 0)) return 'GLONASS(R)';
if (color == Color.fromARGB(255, 0, 0, 255)) return 'GALILEO(E)';
if (color == Color.fromARGB(255, 255, 255, 0)) return 'BEIDOU(B)';
if (color == Color.fromARGB(255, 0, 255, 255)) return 'QZSS(Q)';
2024-07-30 18:20:27 +08:00
return 'Unknown Color';
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('信号质量'),
),
body: OrientationBuilder(builder: (context, orientation) {
return Column(
children: [
SingleButton(
2024-08-01 18:17:57 +08:00
// colors: colors,
2024-07-30 18:20:27 +08:00
onSelectionChanged: (color) {
setState(() {
selectedColor = color; // 更新选中的颜色
// 更新所有组为选中颜色
for (int i = 0; i < groupColors.length; i++) {
updateGroupColor(i, selectedColor);
}
});
},
2024-08-01 18:17:57 +08:00
signalColorList: [],
2024-07-30 18:20:27 +08:00
),
Expanded(
child: Center(
2024-08-01 18:17:57 +08:00
child: ChartPart(), // 将组颜色传递给 ChartPart
2024-07-30 18:20:27 +08:00
),
),
],
);
}),
);
}
}