Qt 5.1 QApplication sans affichage - QXcbConnection: Impossible de se connecter pour afficher
Je suis l'aide de Qt5.1 et je suis en train de créer un QApplication sans écran. J'ai besoin de dessiner du texte avec QPainter, donc j'ai besoin d'utiliser QApplication (ou QGuiApplication), sinon, j'obtiens une erreur de segmentation.
L'application a bien fonctionné en Qt4.8, mais échoue dans Qt5.1 sur une tête de version d'Ubuntu avec l'erreur:
"QXcbConnection: impossible de se connecter à afficher".
Dans Qt 4.8, j'ai été en mesure d'utiliser le constructeur suivant avec GUIenabled = false pour créer un QApplication qui n'a pas besoin d'un écran d'affichage:
QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled )
En Qt5.1, le constructeur de QApplication n'a plus le GUIenabled drapeau.
J'ai scanné le code source brièvement, et il ne semble pas être un indicateur dans le QApplication constructeur, mais il est sans-papiers aux options qui peuvent être utilisées dans le drapeau. À l'aide de "faux" ne fonctionne pas.
Comment puis-je créer un QApplication sans écran? Est-il une autre méthode pour raconter QApplication GUIenabled = false? Sinon, puis-je créer un QCoreApplication qui ne sera pas l'erreur de segmentation lors de l'élaboration du texte avec QPainter sur un QImage?
source d'informationauteur Vincent
Vous devez vous connecter pour publier un commentaire.
Oui, c'est un Qt 3 (?) chose qui a disparu dans Qt 5. Essayez de lancer votre application avec le
-platform offscreen
option de ligne de commande à la place.Notez que vous n'avez pas besoin
QApplication
ou un lien versQtWidgets
de simplement s'appuyer sur unQImage
à l'aide deQGuiApplication
(et en les reliant àQtGui
) est suffisante.Si vous souhaitez créer une application sans interface graphique, vous devez utiliser
QCoreApplication
au lieu deQApplication
.