У меня возникли трудности с пониманием примера осциллографа qwt. Я понимаю большую часть программы примерно, но я не могу найти связь между классом выборки и классом сюжета.Как работает класс samplingthread примера осциллографа qwt в проекте?
Похоже, что образцы диаграмм взяты из пробы выборки и предоставляются объекту QwtPlotCurve в классе сюжетов.
Однако я не могу найти связь между объектом samplingthread и сюжетным объектом. Но когда я изменяю значение частоты в объекте sampleplingthread, оно применяется и появляется на сюжетном объекте (холст).
Ниже приведена часть кода (из main.cpp). Я не совсем понял, но, пожалуйста, обратитесь к полному проекту (нужно декомпрессию, я думаю), загрузив с http://sourceforge.net/projects/qwt/files/qwt/6.1.2/.
int main(int argc, char **argv)
{
QApplication app(argc, argv);
app.setPalette(Qt::darkGray);
MainWindow window;
window.resize(800, 400);
SamplingThread samplingThread;
samplingThread.setFrequency(window.frequency()); // window.frequency()'s type is double
samplingThread.setAmplitude(window.amplitude()); // window.amplitude()'s type is double
samplingThread.setInterval(window.signalInterval()); // window.signalInterval()'s type is double
window.connect(&window, SIGNAL(frequencyChanged(double)),
&samplingThread, SLOT(setFrequency(double)));
window.connect(&window, SIGNAL(amplitudeChanged(double)),
&samplingThread, SLOT(setAmplitude(double)));
window.connect(&window, SIGNAL(signalIntervalChanged(double)),
&samplingThread, SLOT(setInterval(double)));
window.show();
samplingThread.start();
window.start();
bool ok = app.exec();
samplingThread.stop();
samplingThread.wait(1000);
return ok;
}
наверху window.start() равен plot-> start(). и я не могу найти связь между объектом сюжета и объектом sampleplingthread. Может ли кто-нибудь объяснить эту часть для меня?
Эти 'window.connect' являются сигналами и слотами, которые соединяются с более поздними данными передачи между компонентами. Если вы не знакомы с механизмом, это похоже на настройку обратных вызовов. – UmNyobe
Сигналы из виджетов qwt, расположенных в MainWindows, и являются ссылкой на функцию sampleplingThread. Мой вопрос - это связь между сюжетом и выборкой. Потому что, когда переменная-член выборки переменная (например, частота) изменилась, она применяется и отображается на графике. – Jackson
так что yu означает другой путь 'thread -> UI'? Этот код не показывает ничего полезного. – UmNyobe