Bilard
Optymalizacja ruchu robota
Robot wieloramienny
PathFinder - znajdowanie najkrótszej ścieżki
Kalkulator naukowy
Rozpoznawanie wzorców
Program do generowania gradientów w formacie Gimpa, css i Inkscape-a
Program do tworzenie dokumentów tekstowych
Generowanie animacji AVI z obrazu
Sterowanie portem LPT
Obliczanie punktu zderzenia figur płaskich
Tetris
Strzelanka
Obracająca się Ziemia
ChangeWallPaper - program do zmiany tapety
Zegar
Stoper
Program rozwiązujący kratownice statycznie wyznaczalne
Program wyznaczający pole powierzchni i środek ciężkości figury płaskiej nie przecinającej się
Program kolorujący kod zapisany w plikach .h i .cpp
Gra konsolowa Car
NumericSystem - konsolowy program do przeliczania liczb z różnych systemów liczbowych
AlbumGenerator - wersja Qt C++ pod Linuxa
Generator faktur napisany w Qt Creatorze pod Linuksem
Strategiczna gra i SFML
QtLinuxMusicPlayer - czyli odtwarzacz mp3 na Linux-a
Konsolowy klient FTP
C++ - projekt programu do zmiany przezroczystości okien pod Windowsem
Qt - program konsolowy do generowania wykresów słupkowych SVG
Qt - program konsolowy do generowania wykresów funkcji osadzonych w kodzie HTML
Qt - prosty program do przeglądania zdjęć z automatyczną opcją ich przewijania
Qt - generowanie rysunku przekładni pasowej w OpenSCAD-ie z wykorzystaniem sieci neuronowej
Qt - konsolowy program do konwersji pliku SVG do formatu OpenSCAD-a
Qt - program konsolowy do generowania bryły 3W w formacie OpenSCAD-a powstałej poprzez obrócenie w osi z płaszczyzny z jednoczesnym jej przesunięciem w tej samej osi
Qt program konsolowy generujący bryłę 3W utworzoną poprzez połączenie dwóch figur płaskich w formacie OpenSCAD-a
Ta strona należy do działu:
Programowanie poddziału
Projekty C++ Autor podstrony: Krzysztof Zajączkowski
Stronę tą wyświetlono już: 2947 razy
Prosty program konsolowy, który w zasadzie stworzyłem z myślą przetestowania nowego zestawu narzędzi, jakie na własne potrzeby wykonuję, a które umożliwi mi szybkie, łatwe i przyjemne generowanie plików HTML z elementami grafiki SVG . Program działa na zasadzie podania w konsoli systemowej argumentu pozwalającego wygenerować wykres w HTML-u . Oto przykładowe wywołanie programu pod systemem Windows :
SvgCreator.exe "value={1;opis 1}|value={2;opis 2}|value={3;opis3}|xLabel=Os X|yLabel=Os Y|title=Przykladowy wykres|id=wykres|height=400|width=600"
W systemie Linux :
./SvgCreator "value={1;opis 1}|value={2;opis 2}|value={3;opis3}|xLabel=Os X|yLabel=Os Y|title=Przykladowy wykres|id=wykres|height=400|width=600"
Możliwe jest oczywiście wygenerowanie do jednego pliku HTML kilku takich wykresów:
SvgCreator.exe "value={1;opis 1}|value={2;opis 2}|value={3;opis3}|xLabel=Os X|yLabel=Os Y|title=Przykladowy wykres|id=wykres|height=400|width=600" "value={1;opis 1}|value={2;opis 2}|value={3;opis3}|xLabel=Os X|yLabel=Os Y|title=Przykladowy wykres 2|id=wykres|height=400|width=600"
Powyższe wywołanie spowoduje utworzenie pliku HTML z dwoma wykresami. Przykład wygenerowanego w ten sposób wykresu zamieszczam poniżej.
Przykladowy wykres
Os X
Os Y
1
1
2
2
3
3
Legenda wykresu:
1) opis 1 = 1
2) opis 2 = 2
3) opis3 = 3
Sam kod użyty w funkcji main wygląda następująco:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qsrand(static_cast<uint>(time(nullptr)));
QHtmlPage *htmlPage = new QHtmlPage("Qt html + svg");
htmlPage->addJavaScriptCode(svg::diagram::SvgDiagramPale::getJavaScriptDiagramCode());
// local css files
for(int i = 1; i < argc; i++){
qDebug() << argv[i];
htmlPage->getBody()->addHtmlChild(svg::diagram::SvgDiagramPale::getSvgDiagramPale(QString::fromLatin1(argv[i]).toUtf8()));
}
htmlPage->addLocalStyle(
"svg.diagram { "
"display: block;"
"margin: auto;"
"max-width: 100%;"
"}"
"figcaption.title { "
"font-size: 14pt;"
"text-align: center;"
"}"
"figcaption.diagramLegend {"
"margin: auto;"
"padding: 0 0 0 0;"
"width: 800px;"
"max-width: 100%;"
"background-color: #aaaaaa;"
"}"
"ul.diagramLegend { "
"list-style-type: none;"
"background-color: #aaaaaa;"
"width: 100%;"
"margin: auto;"
"padding: 0;"
"}"
"ul.diagramLegend > li {"
"display: inline-table;"
"width: 25%;"
"margin: 0 0 0 0;"
"padding: 0 0 0 0;"
"}"
"ul.diagramLegend > li > p { "
"margin-left: 10px;"
"margin-right: 10px;"
"}"
"ul.diagramLegend > li:hover { "
"color: white;"
"}"
"figcaption.diagramLegend > p { "
"padding: 10px 0 0 10px;"
"background-color: #aaaaaa;"
"}"
);
QFile file("htmlWithSvg.html");
file.open(QIODevice::WriteOnly);
QTextStream textStream(&file);
textStream << htmlPage;
file.close();
delete htmlPage;
return a.exec();
}
Dokładny przykład generowanego pliku można zobaczyć tutaj .
Załączniki: Wersja na Windowsa programu SvgCreator przeznaczonego do generowania wykresów SVG osadzonych w pliku HTML