Après réflexion, je me suis décidé a tenter l'aventure Qt en utilisant la librairie php-qt qui fonctionne ma foi fort bien pour le moment.
Mais je suis confronté a un petit problème avec les slots personnalisés...
Hop, voila le code que j'ai fait:
<?php
if(!extension_loaded('php_qt')) {
dl('php_qt.' . PHP_SHLIB_SUFFIX);
}
class window extends QWidget {
const Q_OBJECT = null;
public $slots = array('changerLargeur(int)', 'changerHauteur(int)');
public $signals = array('valueChanged(int)');
public function changerLargeur($largeur) {
$this->setFixedSize($largeur, $this->height());
}
public function changerHauteur($hauteur) {
$this->setFixedSize($this->width(), $hauteur);
}
public function __construct() {
parent::__construct();
$this->setFixedSize('200', '160');
$hslider = new QSlider(Qt::Horizontal, $this);
$hslider->setGeometry(10, 60, 150, 20);
$hslider->setRange($this->height(), 600);
$vslider = new QSlider(Qt::Vertical , $this);
$vslider->setGeometry(160, 10, 20, 150);
$vslider->setRange($this->width(), 600);
$hlcd = new QLCDNumber($this);
$hlcd->setSegmentStyle(QLCDNumber::Flat);
$hlcd->display($this->height());
$vlcd = new QLCDNumber($this);
$vlcd->setSegmentStyle(QLCDNumber::Flat);
$vlcd->move(0, 20);
$vlcd->display($this->width());
QObject::connect($hslider, SIGNAL('valueChanged(int)'), $hlcd, SLOT('display(int)'));
QObject::connect($vslider, SIGNAL('valueChanged(int)'), $vlcd, SLOT('display(int)'));
QObject::connect($hslider, SIGNAL('valueChanged(int)'), $this, SLOT('changerLargeur(int)'));
QObject::connect($vslider, SIGNAL('valueChanged(int)'), $this, SLOT('changerHauteur(int)'));
}
}
//building app
$app = new QApplication(&$argc,$argv);
//building widget
$widget = new window();
//showing widget
$widget->show();
//executing application
$app->exec();
?>
En théorie, si executé en ligne de commande, il doit afficher une fenetre affichant deux sliders, et deux afficheur a segments.Si l'on bouge un de sliders, cela modifie la hauteur ou la largeur, selon le slider déplacé.
Mais le problème est que lorsque je commence a déplacer mon slider, pfuuiiit ! Segmentation fault (Core dumped) dans la console...
Farfouillant sur le web, j'ai vu que en C++ pour utiliser les custom slots, il fallait charger la macro Q_OBJECT, ce qui n'est pas possible en php...
Donc je me demandais si parmi vous quelqu'un aurait deja touché a ce coté sombre et peu exploré de php que sont les interfaces en Qt.
Merci d'avance