pothosware / pothoswidgets Goto Github PK
View Code? Open in Web Editor NEWGraphical widgets to supplement the Pothos GUI
Home Page: https://github.com/pothosware/PothosWidgets/wiki
License: Boost Software License 1.0
Graphical widgets to supplement the Pothos GUI
Home Page: https://github.com/pothosware/PothosWidgets/wiki
License: Boost Software License 1.0
This widget displays an image passed in via message. The message should contain a matrix. Exact format to be determined.
/*!
* FIXME -- This is almost certainly a Qt bug-workaround.
* Changing this widget's parent causes a segfault in QComboBox.
* Start with no parent, set parent, clear parent, set again -> segfault.
* The workaround is to create a new QComboBox and restore its state.
*/
bool event(QEvent *e)
{
if (e->type() == QEvent::ParentAboutToChange)
{
const auto oldIndex = _comboBox->currentIndex();
QStringList oldItems; for (int i = 0; i < _comboBox->count(); i++) oldItems.push_back(_comboBox->itemText(i));
delete _comboBox;
_comboBox = (new QComboBox(this));
layout()->addWidget(_comboBox);
_comboBox->addItems(oldItems);
_comboBox->setCurrentIndex(oldIndex);
}
return QWidget::event(e);
}
One of those widgets with hooks to spin individual digits up and down (example gqrx)
We don't actually need the embedded copy, its just for special situations where its hard to get pre-built qwt. An optional submodule would be preferable:
Something happens with zooming + tooltip that causes invalid memory access into the raster.
try to set a center freq, it doesnt display at all -- investigate and fix
Currently fullscale is assumed to be 1.0. To better handle fixed point data (and really anything) there should be a parameter that specifies what is full-scale (defaulting to 1.0).
Display the raw values of the stream or packet with a finite window, hex format, binary format, float values. But just printing the raw values.
Looks like the end-bin math may be bad (after the shift to put DC in center). This shows up in the periodigram at the bin[0] index as random jumps up to 0dB
This may be cause by the fact that QGroupBox is checkable (which is disabled in this case), so its eating the events and not forwarding them...
Set the bins per display or points per wave plotter and the input sits on all the buffer resources waiting for more. Set the size back and it resumes plotting. We should in general address the issue of buffer requirements through the API, however in this case, accumulating to a render buffer at the display rate is very reasonable
We want an easy way to visualize the state of something. Like active/inactive, fail/pass, 0/1/tristate, etc.
The colored square block has an input slot which takes an arbitrary value of arbitrary type. The user configures the block with a map of possible values to a hex color code. The block performs the lookup to set the color.
Example configs:
Plot titling would be better if it could be format stringed.
"Constellation: %1" <--- BPSK or QPSK.
qwt thermo?
qwt dial?
In the same style of pothos-gui edit wigets:
https://github.com/pothosware/pothos-gui/tree/master/EditWidgets
Any arbitrary widget can be registered into the property tree at "/gui/EntryWidgets/*"
This window function edit widget can be used in Periodigram, Spectrogram, and pothos-blocks taps designer block.
Perhaps the spin box change is stealing focus, we may have to set it back to the slider
Use the qwt zoom picker to enable mouse controls to zoom select with a bounding box, and zoom out with click
Example: https://github.com/eiimage/qwt/blob/master/examples/spectrogram/plot.cpp#L13
Provide these settings in the regular block properties panel. Possibly a context menu or built-in plot control panel as well.
Allow the user to step through a stream with a push button, triggered by the presense of messages and labels. The widget will display the contents of the object (at least the data type).
This will allow QString-based signals and slots from a Qt widget to be used in an ecosystem outside of Qt which would use std::string. Supporting this lowers the amount of code wrapping because users can directly register QWidget slots that take QStrings and it will "just work".
When in synchronous alignment mode, the wave plotter should ensure that the entire display is only refreshed after all N channels have arrived. Otherwise we are not necessarily looking at curves from the same time.
Complex graphs like the one attached cause problems where the constellation plot will not update.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.