diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/CMakeLists.txt | 2 | ||||
-rw-r--r-- | examples/charts/CMakeLists.txt | 102 | ||||
-rw-r--r-- | examples/charts/audio/CMakeLists.txt | 1 | ||||
-rw-r--r-- | examples/charts/audio/apple/Info.plist.in | 13 | ||||
-rw-r--r-- | examples/charts/audio/main.cpp | 5 | ||||
-rw-r--r-- | examples/charts/audio/widget.cpp | 23 | ||||
-rw-r--r-- | examples/charts/audio/widget.h | 6 | ||||
-rw-r--r-- | examples/charts/piechartcustomization/mainwidget.cpp | 41 | ||||
-rw-r--r-- | examples/charts/piechartcustomization/mainwidget.h | 8 |
9 files changed, 131 insertions, 70 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 7613c97b..4eb2527b 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,6 +1,6 @@ # Generated from examples.pro. -qt_examples_build_begin() +qt_examples_build_begin(EXTERNAL_BUILD) add_subdirectory(charts) diff --git a/examples/charts/CMakeLists.txt b/examples/charts/CMakeLists.txt index 45e3f577..55ec96b7 100644 --- a/examples/charts/CMakeLists.txt +++ b/examples/charts/CMakeLists.txt @@ -1,88 +1,88 @@ # Generated from charts.pro. if(QT_FEATURE_charts_area_chart) - add_subdirectory(areachart) + qt_internal_add_example(areachart) endif() if(QT_FEATURE_charts_line_chart) - add_subdirectory(callout) - add_subdirectory(chartinteractions) - add_subdirectory(customchart) - add_subdirectory(linechart) - add_subdirectory(lineandbar) - add_subdirectory(legendmarkers) - add_subdirectory(logvalueaxis) - add_subdirectory(modeldata) - add_subdirectory(zoomlinechart) + qt_internal_add_example(callout) + qt_internal_add_example(chartinteractions) + qt_internal_add_example(customchart) + qt_internal_add_example(linechart) + qt_internal_add_example(lineandbar) + qt_internal_add_example(legendmarkers) + qt_internal_add_example(logvalueaxis) + qt_internal_add_example(modeldata) + qt_internal_add_example(zoomlinechart) endif() if(QT_FEATURE_charts_spline_chart) - add_subdirectory(dynamicspline) - add_subdirectory(multiaxis) - add_subdirectory(splinechart) - add_subdirectory(pointsselectionandmarkers) + qt_internal_add_example(dynamicspline) + qt_internal_add_example(multiaxis) + qt_internal_add_example(splinechart) + qt_internal_add_example(pointsselectionandmarkers) endif() if(QT_FEATURE_charts_area_chart AND QT_FEATURE_charts_spline_chart) - add_subdirectory(chartthemes) - add_subdirectory(polarchart) + qt_internal_add_example(chartthemes) + qt_internal_add_example(polarchart) endif() if(QT_FEATURE_charts_bar_chart) - add_subdirectory(barchart) - add_subdirectory(barmodelmapper) - add_subdirectory(horizontalbarchart) - add_subdirectory(horizontalpercentbarchart) - add_subdirectory(horizontalstackedbarchart) - add_subdirectory(stackedbarchart) - add_subdirectory(stackedbarchartdrilldown) - add_subdirectory(percentbarchart) - add_subdirectory(legend) - add_subdirectory(temperaturerecords) - add_subdirectory(selectedbar) + qt_internal_add_example(barchart) + qt_internal_add_example(barmodelmapper) + qt_internal_add_example(horizontalbarchart) + qt_internal_add_example(horizontalpercentbarchart) + qt_internal_add_example(horizontalstackedbarchart) + qt_internal_add_example(stackedbarchart) + qt_internal_add_example(stackedbarchartdrilldown) + qt_internal_add_example(percentbarchart) + qt_internal_add_example(legend) + qt_internal_add_example(temperaturerecords) + qt_internal_add_example(selectedbar) endif() if(QT_FEATURE_charts_pie_chart) - add_subdirectory(donutchart) - add_subdirectory(donutbreakdown) - add_subdirectory(nesteddonuts) - add_subdirectory(piechart) - add_subdirectory(piechartcustomization) - add_subdirectory(piechartdrilldown) + qt_internal_add_example(donutchart) + qt_internal_add_example(donutbreakdown) + qt_internal_add_example(nesteddonuts) + qt_internal_add_example(piechart) + qt_internal_add_example(piechartcustomization) + qt_internal_add_example(piechartdrilldown) endif() if(QT_FEATURE_charts_pie_chart AND TARGET Qt::Quick) - add_subdirectory(qmlpiechart) + qt_internal_add_example(qmlpiechart) endif() if(QT_FEATURE_charts_boxplot_chart) - add_subdirectory(boxplotchart) + qt_internal_add_example(boxplotchart) endif() if(QT_FEATURE_charts_boxplot_chart AND TARGET Qt::Quick) - add_subdirectory(qmlboxplot) + qt_internal_add_example(qmlboxplot) endif() if(QT_FEATURE_charts_candlestick_chart) - add_subdirectory(candlestickchart) + qt_internal_add_example(candlestickchart) endif() if(QT_FEATURE_charts_candlestick_chart AND TARGET Qt::Quick) - add_subdirectory(qmlcandlestick) + qt_internal_add_example(qmlcandlestick) endif() if(QT_FEATURE_charts_scatter_chart) - add_subdirectory(scatterchart) - add_subdirectory(scatterinteractions) + qt_internal_add_example(scatterchart) + qt_internal_add_example(scatterinteractions) endif() if(TARGET Qt::Quick) - add_subdirectory(qmlchart) - add_subdirectory(qmlcustomizations) - add_subdirectory(qmlcustomlegend) - add_subdirectory(qmlf1legends) - add_subdirectory(qmloscilloscope) - add_subdirectory(qmlweather) + qt_internal_add_example(qmlchart) + qt_internal_add_example(qmlcustomizations) + qt_internal_add_example(qmlcustomlegend) + qt_internal_add_example(qmlf1legends) + qt_internal_add_example(qmloscilloscope) + qt_internal_add_example(qmlweather) endif() if(TARGET Qt::Multimedia) # TODO: this never gets compiled : missing find_pacakge - # add_subdirectory(audio) // QTBUG-94181 + # qt_internal_add_example(audio) // QTBUG-94181 endif() if(QT_FEATURE_opengl) - add_subdirectory(openglseries) + qt_internal_add_example(openglseries) endif() if(QT_FEATURE_charts_datetime_axis) - add_subdirectory(datetimeaxis) + qt_internal_add_example(datetimeaxis) endif() if(QT_FEATURE_charts_datetime_axis AND TARGET Qt::Quick) - add_subdirectory(qmlaxes) - add_subdirectory(qmlpolarchart) + qt_internal_add_example(qmlaxes) + qt_internal_add_example(qmlpolarchart) endif() diff --git a/examples/charts/audio/CMakeLists.txt b/examples/charts/audio/CMakeLists.txt index 6349e31d..3148f9c8 100644 --- a/examples/charts/audio/CMakeLists.txt +++ b/examples/charts/audio/CMakeLists.txt @@ -28,6 +28,7 @@ qt_add_executable(audio set_target_properties(audio PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/apple/Info.plist.in" ) target_link_libraries(audio PUBLIC Qt::Charts diff --git a/examples/charts/audio/apple/Info.plist.in b/examples/charts/audio/apple/Info.plist.in new file mode 100644 index 00000000..9e6cc252 --- /dev/null +++ b/examples/charts/audio/apple/Info.plist.in @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + + <key>NSMicrophoneUsageDescription</key> + <string>Qt Charts Example</string> +</dict> +</plist> diff --git a/examples/charts/audio/main.cpp b/examples/charts/audio/main.cpp index 8c4eca66..712a7c14 100644 --- a/examples/charts/audio/main.cpp +++ b/examples/charts/audio/main.cpp @@ -29,7 +29,8 @@ #include "widget.h" -#include <QtMultimedia/QAudioDeviceInfo> +#include <QtMultimedia/QAudioDevice> +#include <QtMultimedia/QMediaDevices> #include <QtWidgets/QApplication> #include <QtWidgets/QMessageBox> @@ -37,7 +38,7 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); - const QAudioDeviceInfo inputDevice = QAudioDeviceInfo::defaultInputDevice(); + const QAudioDevice inputDevice = QMediaDevices::defaultAudioInput(); if (inputDevice.isNull()) { QMessageBox::warning(nullptr, "audio", "There is no audio input device available."); diff --git a/examples/charts/audio/widget.cpp b/examples/charts/audio/widget.cpp index c4945067..1a63150b 100644 --- a/examples/charts/audio/widget.cpp +++ b/examples/charts/audio/widget.cpp @@ -30,8 +30,9 @@ #include "widget.h" #include "xyseriesiodevice.h" -#include <QtMultimedia/QAudioDeviceInfo> +#include <QtMultimedia/QAudioDevice> #include <QtMultimedia/QAudioInput> +#include <QtMultimedia/QAudioSource> #include <QtCharts/QChartView> #include <QtCharts/QLineSeries> @@ -42,7 +43,7 @@ QT_USE_NAMESPACE -Widget::Widget(const QAudioDeviceInfo &deviceInfo, QWidget *parent) : +Widget::Widget(const QAudioDevice &deviceInfo, QWidget *parent) : QWidget(parent), m_chart(new QChart), m_series(new QLineSeries) @@ -62,29 +63,31 @@ Widget::Widget(const QAudioDeviceInfo &deviceInfo, QWidget *parent) : m_chart->addAxis(axisY, Qt::AlignLeft); m_series->attachAxis(axisY); m_chart->legend()->hide(); - m_chart->setTitle("Data from the microphone (" + deviceInfo.deviceName() + ')'); + m_chart->setTitle("Data from the microphone (" + deviceInfo.description() + ')'); QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->addWidget(chartView); + m_audioInput = new QAudioInput(deviceInfo, this); + QAudioFormat formatAudio; formatAudio.setSampleRate(8000); formatAudio.setChannelCount(1); - formatAudio.setSampleSize(8); - formatAudio.setCodec("audio/pcm"); - formatAudio.setByteOrder(QAudioFormat::LittleEndian); - formatAudio.setSampleType(QAudioFormat::UnSignedInt); + formatAudio.setSampleFormat(QAudioFormat::UInt8); - m_audioInput = new QAudioInput(deviceInfo, formatAudio, this); + m_audioSource = new QAudioSource(deviceInfo, formatAudio); + m_audioSource->setBufferSize(200); m_device = new XYSeriesIODevice(m_series, this); m_device->open(QIODevice::WriteOnly); - m_audioInput->start(m_device); + m_audioSource->start(m_device); } Widget::~Widget() { - m_audioInput->stop(); + m_audioSource->stop(); m_device->close(); + delete m_audioInput; + delete m_device; } diff --git a/examples/charts/audio/widget.h b/examples/charts/audio/widget.h index f4c3f049..64a130a2 100644 --- a/examples/charts/audio/widget.h +++ b/examples/charts/audio/widget.h @@ -44,7 +44,8 @@ class XYSeriesIODevice; QT_BEGIN_NAMESPACE class QAudioInput; -class QAudioDeviceInfo; +class QAudioDevice; +class QAudioSource; QT_END_NAMESPACE class Widget : public QWidget @@ -52,7 +53,7 @@ class Widget : public QWidget Q_OBJECT public: - explicit Widget(const QAudioDeviceInfo &deviceInfo, QWidget *parent = nullptr); + explicit Widget(const QAudioDevice &deviceInfo, QWidget *parent = nullptr); ~Widget(); private: @@ -60,6 +61,7 @@ private: QChart *m_chart; QLineSeries *m_series ; QAudioInput *m_audioInput = nullptr; + QAudioSource *m_audioSource = nullptr; }; #endif // WIDGET_H diff --git a/examples/charts/piechartcustomization/mainwidget.cpp b/examples/charts/piechartcustomization/mainwidget.cpp index 5d2ac832..8c2d9b71 100644 --- a/examples/charts/piechartcustomization/mainwidget.cpp +++ b/examples/charts/piechartcustomization/mainwidget.cpp @@ -81,7 +81,7 @@ MainWidget::MainWidget(QWidget *parent) m_legendCheckBox = new QCheckBox(); - QScrollArea *settingsScrollBar = new QScrollArea(); + settingsScrollBar = new QScrollArea(); QWidget *settingsContentWidget = new QWidget(); QFormLayout *chartSettingsLayout = new QFormLayout(settingsContentWidget); @@ -212,6 +212,7 @@ MainWidget::MainWidget(QWidget *parent) sliceSettingsLayout->addRow("Explode distance", m_sliceExplodedFactor); QGroupBox *sliceSettings = new QGroupBox("Selected slice"); sliceSettings->setLayout(sliceSettingsLayout); + sliceSettings->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Preferred); connect(m_sliceName, &QLineEdit::textChanged, this, &MainWidget::updateSliceSettings); connect(m_sliceValue, @@ -244,12 +245,16 @@ MainWidget::MainWidget(QWidget *parent) settingsLayout->addWidget(sliceSettings); settingsContentWidget->setLayout(settingsLayout); + settingsScrollBar->setWidget(settingsContentWidget); - settingsScrollBar->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + settingsScrollBar->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + settingsScrollBar->setWidgetResizable(true); + settingsScrollBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); + m_chartView->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - QGridLayout *baseLayout = new QGridLayout(); + baseLayout = new QGridLayout(); baseLayout->addWidget(settingsScrollBar, 0, 0); - baseLayout->addWidget(m_chartView, 0, 1); + baseLayout->addWidget(m_chartView, 1, 0); setLayout(baseLayout); updateSerieSettings(); @@ -393,4 +398,32 @@ void MainWidget::removeSlice() m_slice = 0; } +void MainWidget::resizeEvent(QResizeEvent *e) +{ + if (width() == 0 || height() == 0) + return; + + const double aspectRatio = double(width()) / double(height()); + + if ((aspectRatio < 1.0) && (oldAspectRatio > 1.0)) { + baseLayout->removeWidget(m_chartView); + baseLayout->removeWidget(settingsScrollBar); + + baseLayout->addWidget(m_chartView, 0, 0); + baseLayout->addWidget(settingsScrollBar, 1, 0); + + oldAspectRatio = aspectRatio; + } + else if ((aspectRatio > 1.0) && (oldAspectRatio < 1.0)) { + baseLayout->removeWidget(m_chartView); + baseLayout->removeWidget(settingsScrollBar); + + baseLayout->addWidget(m_chartView, 0, 0); + baseLayout->addWidget(settingsScrollBar, 0, 1); + + oldAspectRatio = aspectRatio; + } +} + + #include "moc_mainwidget.cpp" diff --git a/examples/charts/piechartcustomization/mainwidget.h b/examples/charts/piechartcustomization/mainwidget.h index d3c1e724..ba6c3670 100644 --- a/examples/charts/piechartcustomization/mainwidget.h +++ b/examples/charts/piechartcustomization/mainwidget.h @@ -29,6 +29,8 @@ #ifndef MAINWIDGET_H #define MAINWIDGET_H +#include "qgridlayout.h" +#include "qscrollarea.h" #include <QtWidgets/QWidget> #include <QtCharts/QChartGlobal> @@ -70,6 +72,8 @@ public Q_SLOTS: void removeSlice(); private: + void resizeEvent(QResizeEvent *e); + QComboBox *m_themeComboBox; QCheckBox *m_aaCheckBox; QCheckBox *m_animationsCheckBox; @@ -100,6 +104,10 @@ private: QPushButton *m_labelBrush; QComboBox *m_labelPosition; BrushTool *m_labelBrushTool; + QGridLayout *baseLayout; + QScrollArea *settingsScrollBar; + + double oldAspectRatio; }; #endif // MAINWIDGET_H |