[PyQt] [TreeWidget] Text and/or image over a node
projetmbc
projetmbc at club-internet.fr
Sun Apr 5 21:08:13 BST 2009
Hello,
I would like to show a text or a little picture (and why not the both at
the same time) when the mouse is over a node of a TreeWidget. How can I
try to do that ?
Thanks a lot.
Christophe.
-------------- next part --------------
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'C:\Program Files\EasyPHP 2.0b1\www\Python 07-2008\DebuterAvecPythonEtPyQT\CodesProjets\03-Proj3_VueArborescente\dial_Projet3.ui '
#
# Created: Tue Jul 29 23:37:30 2008
# by: PyQt4 UI code generator 4.3.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_dial_Projet3(object):
def setupUi(self, dial_Projet3):
dial_Projet3.setObjectName("dial_Projet3")
dial_Projet3.resize(QtCore.QSize(QtCore.QRect(0,0,520,390).size()).expandedTo(dial_Projet3.minimumSizeHint()))
dial_Projet3.setAutoFillBackground(True)
self.treeWidget = QtGui.QTreeWidget(dial_Projet3)
self.treeWidget.setGeometry(QtCore.QRect(270,40,240,340))
self.treeWidget.setObjectName("treeWidget")
self.textUtilisateur = QtGui.QTextEdit(dial_Projet3)
self.textUtilisateur.setGeometry(QtCore.QRect(10,40,240,340))
self.textUtilisateur.setObjectName("textUtilisateur")
self.lineTitre_1 = QtGui.QLineEdit(dial_Projet3)
self.lineTitre_1.setEnabled(False)
self.lineTitre_1.setGeometry(QtCore.QRect(10,10,241,20))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.WindowText,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Dark,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Text,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.ButtonText,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Base,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Window,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.WindowText,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Dark,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Text,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.ButtonText,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Base,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Window,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.WindowText,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Dark,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Text,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.ButtonText,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Base,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Window,brush)
self.lineTitre_1.setPalette(palette)
font = QtGui.QFont()
font.setWeight(50)
font.setBold(False)
self.lineTitre_1.setFont(font)
self.lineTitre_1.setAlignment(QtCore.Qt.AlignCenter)
self.lineTitre_1.setObjectName("lineTitre_1")
self.lineTitre_2 = QtGui.QLineEdit(dial_Projet3)
self.lineTitre_2.setEnabled(False)
self.lineTitre_2.setGeometry(QtCore.QRect(270,10,241,20))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.WindowText,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Dark,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Text,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.ButtonText,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Base,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Window,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.WindowText,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Dark,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Text,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.ButtonText,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Base,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Window,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.WindowText,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Dark,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Text,brush)
brush = QtGui.QBrush(QtGui.QColor(0,0,0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.ButtonText,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Base,brush)
brush = QtGui.QBrush(QtGui.QColor(255,255,255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Window,brush)
self.lineTitre_2.setPalette(palette)
font = QtGui.QFont()
font.setWeight(50)
font.setBold(False)
self.lineTitre_2.setFont(font)
self.lineTitre_2.setAlignment(QtCore.Qt.AlignCenter)
self.lineTitre_2.setObjectName("lineTitre_2")
self.retranslateUi(dial_Projet3)
QtCore.QMetaObject.connectSlotsByName(dial_Projet3)
def retranslateUi(self, dial_Projet3):
dial_Projet3.setWindowTitle(QtGui.QApplication.translate("dial_Projet3", "Projet n°3", None, QtGui.QApplication.UnicodeUTF8))
self.treeWidget.headerItem().setText(0,QtGui.QApplication.translate("dial_Projet3", "1", None, QtGui.QApplication.UnicodeUTF8))
self.lineTitre_1.setText(QtGui.QApplication.translate("dial_Projet3", "Votre table des matières avec les balises", None, QtGui.QApplication.UnicodeUTF8))
self.lineTitre_2.setText(QtGui.QApplication.translate("dial_Projet3", "Arbre de la table des matières", None, QtGui.QApplication.UnicodeUTF8))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
dial_Projet3 = QtGui.QDialog()
ui = Ui_dial_Projet3()
ui.setupUi(dial_Projet3)
dial_Projet3.show()
sys.exit(app.exec_())
-------------- next part --------------
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# Les lignes ci-dessus sont très importantes :
# 1°) La 1ère ligne indique le codage du fichier Python.
# 2°) La 2nde ligne est indispensable pour un bon fonctionnement sous Linux.
# PRESENTATION : ce script montre comment lier un texte ayant un contenu que nous allons analyser
# à un arbre représentant la struture hiérarchique de ce texte.
# AUTEUR : BAL Christophe
# MAIL : projetmbc at club.fr
# SITE : http://christophe_bal.club.fr/index.php
# DATE DE CREATION : 28/07/2008
# DERNIERE AELIORATION : 27/10/2008
#
# TEST(S) EFFECTUE(S) : programme testé sous Windows XP avec succès.
# On importe les bibliothèques que nous allons utiliser.
import sys
from PyQt4 import QtCore, QtGui
# On importe notre boîte de dialogue.
from dial_Projet3 import Ui_dial_Projet3
# # # # # # # # # # # # # # # # # # # # # #
# Comportement de la boîte de dialogue. DEBUT
class dial_Projet3(QtGui.QDialog, Ui_dial_Projet3):
def __init__(self):
QtGui.QDialog.__init__(self)
Ui_dial_Projet3.__init__(self)
self.setupUi(self)
# On met un texte brut type qui aidera l'utilisateur à faire ses propres tables tout seul.
self.texte_Type = """Intro
Chap I
>Para 1
>>Partie A
>>Partie B
>Para 2
Chap II
Conclusion"""
self.textUtilisateur.setText(self.texte_Type)
# On crée à la main le tableau pour garder en mémoire la table des matières.
self.tablo_tabMat_Memo = []
self.tablo_tabMat_Memo.append('Intro')
tablo_Para = []
tablo_Para.append('Chap I')
tablo_Partie = []
tablo_Partie.append('Para 1')
tablo_Partie.append('Partie A')
tablo_Partie.append('Partie B')
tablo_Para.append(tablo_Partie)
tablo_Para.append('Para 2')
self.tablo_tabMat_Memo.append(tablo_Para)
self.tablo_tabMat_Memo.append('Chap II')
self.tablo_tabMat_Memo.append('Conclusion')
# On continue à remplir l'arbre à la main.
# PETITE NOUVEAUTE : nous allons faire en sorte que l'arbre soit totalement déployé dès l'affichage(voir le commentaire ci-dessous).
self.treeWidget.clear()
self.treeWidget.setColumnCount(1)
self.treeWidget.setHeaderLabels(["Sommaire"])
self.treeWidget.setItemsExpandable(True)
tabNiv_1 = QtGui.QTreeWidgetItem(self.treeWidget, ["Intro"])
tabNiv_1.setIcon(0, QtGui.QIcon('Images/im_1.png'))
tabNiv_1 = QtGui.QTreeWidgetItem(self.treeWidget, ["Chap I"])
tabNiv_1.setIcon(0, QtGui.QIcon('Images/im_1.png'))
# La ligne suivante permet "d'ouvrir" le noeud Para 1. On fait de même avec tous les noeuds de Chap I, puis avec Chap I lui-même.
self.treeWidget.expandItem(tabNiv_1)
tabNiv_2 = QtGui.QTreeWidgetItem(tabNiv_1, ["Para 1"])
tabNiv_2.setIcon(0, QtGui.QIcon('Images/im_2.png'))
self.treeWidget.expandItem(tabNiv_2)
tabNiv_3 = QtGui.QTreeWidgetItem(tabNiv_2, ["Partie A"])
tabNiv_3.setIcon(0, QtGui.QIcon('Images/im_3.png'))
self.treeWidget.expandItem(tabNiv_3)
tabNiv_3 = QtGui.QTreeWidgetItem(tabNiv_2, ["Partie B"])
tabNiv_3.setIcon(0, QtGui.QIcon('Images/im_3.png'))
self.treeWidget.expandItem(tabNiv_3)
tabNiv_2 = QtGui.QTreeWidgetItem(tabNiv_1, ["Para 2"])
tabNiv_2.setIcon(0, QtGui.QIcon('Images/im_2.png'))
self.treeWidget.expandItem(tabNiv_2)
tabNiv_1 = QtGui.QTreeWidgetItem(self.treeWidget, ["Chap II"])
tabNiv_1.setIcon(0, QtGui.QIcon('Images/im_1.png'))
tabNiv_1 = QtGui.QTreeWidgetItem(self.treeWidget, ["Conclusion"])
tabNiv_1.setIcon(0, QtGui.QIcon('Images/im_1.png'))
# On définit la connection liée au changement du contenu du QTextEdit.
self.connect(self.textUtilisateur, QtCore.SIGNAL("textChanged()"), self.chgtTexte)
self.connect(self.treeWidget, QtCore.SIGNAL("itemClicked(QTreeWidgetItem*,int)"), self.clicNoeud)
# On définit la connection liée au menu contextuel.
self.treeWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.connect(self.treeWidget, QtCore.SIGNAL("customContextMenuRequested(const QPoint &)"), self.menuContextTree)
# Menu Contextuel
# Cf. bas de la page :
# http://www.nabble.com/Context-menu-on-items-in-QTreeView-td19981837.html
#
# http://www.riverbankcomputing.com/static/Docs/PyQt4/html/qwidget.html#setContextMenuPolicy
# http://www.riverbankcomputing.com/static/Docs/PyQt4/html/qt.html#ContextMenuPolicy-enum
# http://www.riverbankcomputing.com/static/Docs/PyQt4/html/qwidget.html#customContextMenuRequested
def menuContextTree(self, point):
# On récupère les infos sur l'item sélectionné.
index = self.treeWidget.indexAt(point)
if not index.isValid():
return
# print index.text(0)
item = self.treeWidget.itemAt(point)
name = item.text(0)
# On définie le menu contextuel.
menu=QtGui.QMenu(self)
action=menu.addAction("Souris au-dessus de")
action=menu.addAction(name)
menu.addSeparator()
action_1=menu.addAction("Choix 1")
action_2=menu.addAction("Choix 2")
action_3=menu.addAction("Choix 3")
# Il reste à lier chaque clic sur le menu à une action réelle via un SLOT.
# Voir ici : http://www.developpez.net/forums/d600225/autres-langages/python-zope/gui/pyqt/communiquer-graphicview-vers-classes-application/#post3551618 .
menu.exec_(QtGui.QCursor.pos())
# Info récupérée sur le forum suivant : .
def clicNoeud(self,noeudClic):
# La méthode ci-dessous a ses limites car il faut connaître la profondeur de l'arbre.
par_1=''
par_2=''
test_1 = noeudClic.parent()
if test_1 != None:
par_1 = str(noeudClic.parent().text(0))
test_2 = test_1.parent()
if test_2 != None:
par_2 = str(test_2.parent())
if par_2!='':
print "Clic sur une partie-Titre de la partie :"
print " " + str(noeudClic.text(0))
elif par_1!='':
print "Clic sur un paragraphe-Titre du paragraphe :"
print " " + str(noeudClic.text(0))
else:
print "Clic sur un chapitre-Titre du chapitre :"
print " " + str(noeudClic.text(0))
print''
# Comportement de la boîte de dialogue. FIN
# # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # #
# Analyse brutale du changement de contenu. DEBUT
def chgtTexte(self):
text_TabMatBrut = self.textUtilisateur.toPlainText()
# Traduction du contenu sous forme d'un tableau.
self.tablo_tabMat = []
niv = 0
maj = True
lignes_tabMat_Sale = text_TabMatBrut.split("\n")
lignes_tabMat = []
for i in range(len(lignes_tabMat_Sale)):
# On nettoie les lignes.
uneLignePropre = str(lignes_tabMat_Sale[i]).strip()
if uneLignePropre <> '' and uneLignePropre <> '>' and uneLignePropre <> '>>' :
lignes_tabMat.append(uneLignePropre)
# On parcourt les lignes en les analysant.
for i in range(len(lignes_tabMat)):
uneLignePropre = lignes_tabMat[i]
# Repérage d'une PARTIE
if uneLignePropre[:2] == '>>':
if niv < 2:
maj = False
print u"Un problème de structure logique (sûrement temporaire) a été repéré.\nLa 1ère balise défectueuse est : \"" + uneLignePropre + '".\n'
break
else:
uneLignePropre = uneLignePropre[2:].strip()
if i == len(lignes_tabMat) - 1:
tablo_Partie.append(uneLignePropre)
tablo_Para.append(tablo_Partie)
self.tablo_tabMat.append(tablo_Para)
else:
lignePropreSuivante = lignes_tabMat[i + 1]
if lignePropreSuivante[:2] == '>>':
tablo_Partie.append(uneLignePropre)
elif lignePropreSuivante[0] == '>':
tablo_Partie.append(uneLignePropre)
tablo_Para.append(tablo_Partie)
else :
tablo_Partie.append(uneLignePropre)
tablo_Para.append(tablo_Partie)
self.tablo_tabMat.append(tablo_Para)
niv = 3
# Repérage d'un PARAGRAPHE
elif uneLignePropre[0] == '>':
if niv == 0:
maj = False
print u"Un problème de structure logique (sûrement temporaire) a été repéré.\nLa 1ère balise défectueuse est : \"" + uneLignePropre + '".\n'
break
else:
uneLignePropre = uneLignePropre[1:].strip()
tablo_Partie = []
if i == len(lignes_tabMat) - 1:
tablo_Para.append(uneLignePropre)
self.tablo_tabMat.append(tablo_Para)
else:
lignePropreSuivante = lignes_tabMat[i + 1]
if lignePropreSuivante[:2] == '>>':
tablo_Partie.append(uneLignePropre)
elif lignePropreSuivante[0] == '>':
tablo_Para.append(uneLignePropre)
else:
tablo_Para.append(uneLignePropre)
self.tablo_tabMat.append(tablo_Para)
niv = 2
# Repérage d'un CHAPITRE
else:
niv = 1
tablo_Para = []
tablo_Partie = []
if i == len(lignes_tabMat) - 1:
self.tablo_tabMat.append(uneLignePropre)
else:
lignePropreSuivante = lignes_tabMat[i + 1]
if lignePropreSuivante[0] <> '>':
self.tablo_tabMat.append(uneLignePropre)
else:
tablo_Para.append(uneLignePropre)
# Mise à jour de l'arbre de la table (la technique est similaire à celle utilisée pour l'affichage HTML de la Table des Matières).
if maj:
if self.tablo_tabMat <> self.tablo_tabMat_Memo:
self.lineTitre_2.setText(QtGui.QApplication.translate("dial_TestAnaBalise", "Arbre de la table des matières", None, QtGui.QApplication.UnicodeUTF8))
self.tablo_tabMat_Memo = self.tablo_tabMat
self.treeWidget.clear()
self.treeWidget.setColumnCount(1)
self.treeWidget.setHeaderLabels(["Sommaire"])
self.treeWidget.setItemsExpandable(True)
for i_Chap in range(len(self.tablo_tabMat)):
try:
# ATTENTION ! IL faut donner un tableau avec une seule chaîne pour nourrir l'arbre.
# Donc tabNiv_1 = QtGui.QTreeWidgetItem(self.treeWidget, [self.tablo_tabMat[i_Chap]]) ne marchera
# que si self.tablo_tabMat[i_Chap] est une chaîne de caractères.
# Si ce n'est pas le cas, c'est que le chapitre contient des paragraphes.
tabNiv_1 = QtGui.QTreeWidgetItem(self.treeWidget, [self.tablo_tabMat[i_Chap]])
tabNiv_1.setIcon(0, QtGui.QIcon('Images/im_1.png'))
except:
tabloPara = self.tablo_tabMat[i_Chap]
for i_Para in range(len(tabloPara)):
if i_Para == 0:
tabNiv_1 = QtGui.QTreeWidgetItem(self.treeWidget, [tabloPara[0]])
tabNiv_1.setIcon(0, QtGui.QIcon('Images/im_1.png'))
self.treeWidget.expandItem(tabNiv_1)
else:
try:
tabNiv_2 = QtGui.QTreeWidgetItem(tabNiv_1, [tabloPara[i_Para]])
tabNiv_2.setIcon(0, QtGui.QIcon('Images/im_2.png'))
self.treeWidget.expandItem(tabNiv_2)
except:
tabloPartie = tabloPara[i_Para]
for i_Partie in range(len(tabloPartie)):
if i_Partie == 0:
tabNiv_2 = QtGui.QTreeWidgetItem(tabNiv_1, [tabloPartie[0]])
tabNiv_2.setIcon(0, QtGui.QIcon('Images/im_2.png'))
self.treeWidget.expandItem(tabNiv_2)
else:
tabNiv_3 = QtGui.QTreeWidgetItem(tabNiv_2, [tabloPartie[i_Partie]])
tabNiv_3.setIcon(0, QtGui.QIcon('Images/im_3.png'))
self.treeWidget.expandItem(tabNiv_3)
# Pas de mise à jour possible.
else :
self.tablo_tabMat_Memo = self.tablo_tabMat
self.lineTitre_2.setText(QtGui.QApplication.translate("dial_TestAnaBalise", "Mise à jour impossible", None, QtGui.QApplication.UnicodeUTF8))
# Analyse brutale du changement de contenu. FIN
# # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #
# Lancement de l'application.
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
Projet3 = dial_Projet3()
Projet3.show()
sys.exit(app.exec_())
More information about the PyQt
mailing list