QtCodeStats

31 janvier 2014 Laisser un commentaire

QtCodeStats est un petit utilitaire affichant des statistiques de code source.

  • Nombre de lignes de code
  • tailles des fichiers
  • % de commentaires

Basé sur Qt et prévu pour un code source Qt, il peut être adapté a d’autres type de codes.

Distribué sous licence GPL v3

dépôt hg : https://bitbucket.org/tankd03/qtcodestats

Installeur Win32

QtCodeStats00

QtCodeStats01

Catégories :Progra

TnkBiblio – interface QtQuick

2 décembre 2011 Laisser un commentaire

Catégories :Progra

Photos

11 novembre 2011 Laisser un commentaire
Catégories :Photos

TnkBiblio

Un petit programme de gestion de bibliothèque.

Recherche et téléchargement des informations des livres en ligne, filtrage, base de donnée locale.

Ce diaporama nécessite JavaScript.

Encore en version de tests.

La première version est basé sur Qt Widget sur PC (Interface QT Standard), (Windows et Linux) .
Suivra une version basé sur QtQuick pour PC et mobile(Android, Meego).

Cette dernière devrai être beaucoup plus conviviale.

 

Catégories :Progra

Essai de montage 2D

7 février 2011 Laisser un commentaire

Catégories :Photos

Affichage QML dans SFML 2.0

2 février 2011 Laisser un commentaire

Ayant découvert l’interface QtQuick depuis peu, j’ai trouvé le concept intéressant pour des interfaces de jeux (menu, HUD, …).
Cela permettra de gérer facilement des interfaces animés et beaucoup plus évolués.

Voici donc une classe permettant l’affichage d’une interface QML dans SFML 2.

Pour l’instant, elle ne gère pas le redimensionnement, les entrés claviers et souris, ni la modification des éléments.

Un petit schéma expliquant le fonctionnement :

Un petit screenshot :

Et le code source :

CQmlGui.h


#ifndef CQMLGUI_H
#define CQMLGUI_H

#include "../Root/Core/CUtil.h" // TNK_EXPORT

#include
#include
#include

namespace Tnk
{

//Classe d'affichage d'une interface QML (QtQuick) dans un sf::Sprite
//Nécessite un QApplication valide
//Le clavier et la souris ne sont pour l'instant pas géré.

class TNK_EXPORT CQmlGui : public QDeclarativeView
{

public:
CQmlGui(int width, int height);
virtual ~CQmlGui();

//Met à jour l'affichage du QML et écrit dans le sprite
void Update();

const sf::Sprite& getSfSprite() const
{
return SfSprite;
}

void setProperty(string str, string text);
void setProperty(string str, int i);
void setProperty(string str, float f);

protected:
//L'image pour le rendu via Qt
QImage *RenderImage;

//L'image pour le transfert depuis RenderImage
sf::Image SfImage;

//le Sprite pour l'affichage
sf::Sprite SfSprite;
};

}

#endif // CQMLGUI_H

 

CQmlGui.cpp
#include « cqmlgui.h »

#include « CWindow.h » //SFML2 Window

namespace Tnk
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CQmlGui::CQmlGui(string fileName, int width, int height)
:QDeclarativeView(NULL)
{
//charge le fichier QML
setSource(QUrl::fromLocalFile(fileName.c_str()));

setAttribute(Qt::WA_TranslucentBackground);
QPalette palette;
palette.setColor(QPalette::Base, Qt::transparent);
setPalette(palette);

setAutoFillBackground(false);

//Créé l’image de rendu
RenderImage = new QImage(width, height, QImage::Format_ARGB32);

//cré l’image SFML
SfImage.Create(width, height);
SfImage.SetSmooth(false);
SfSprite.SetImage(SfImage);
SfSprite.SetBlendMode(sf::Blend::Alpha);

SfShader.LoadFromFile(« shaders/qml.sfx »);
SfShader.SetTexture(« texture », sf::Shader::CurrentTexture);

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CQmlGui::~CQmlGui()
{
delete RenderImage;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CQmlGui::Update()
{
//Met a jour QML

update();
//Rendu vers RenderImage
QPainter Painter(RenderImage);

this->render(
&Painter,
QRectF(0, 0, RenderImage->width(), RenderImage->height()),
QRect(0, 0, this->sceneRect().size().toSize().width(), this->sceneRect().size().toSize().height()));

//RenderImage->save(« qt.png »);
//Copie dans Sf::Image

SfImage.UpdatePixels(RenderImage->bits());
//SfImage.SaveToFile(« sf.png »);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CQmlGui::RenderToWindow()
{
CWindow::self()->getSfWindow()->Draw(SfSprite, SfShader);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CQmlGui::setProperty(string str, string text)
{

rootObject()->setProperty(
str.c_str(),
QVariant(QString(text.c_str())));
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CQmlGui::setProperty(string str, int i)
{
rootObject()->setProperty(
str.c_str(),
QVariant(i));

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CQmlGui::setProperty(string str, float f)
{
rootObject()->setProperty(
str.c_str(),
QVariant(f));
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}

Catégories :Progra

Screenshot de l’editeur

8 décembre 2010 Laisser un commentaire

Catégories :Progra
Suivre

Recevez les nouvelles publications par mail.