Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Général Développement > Programmation Linux > GTK

GTK Vos questions sur GTK sous Linux

Réponse
 
Outils de la discussion
Vieux 09/11/2008, 11h31   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: décembre 2006
Âge: 25
Messages: 28
Par défaut [gtkmm] icones dans un Gtk::TreeView

Bonjour

Dans l'appli sur laquelle je travaille, j'aimerais faire un TreeView represantant une arborescence de fichiers (avec repertoires "expandables" ...) dans laquelle apparait également des icones répertoires et fichiers.

Je voudrais que l'icone se situe juste avant le nom dans la même colonne. Comment est-ce qu'on peux faire ça ?
Si il existe des sources similaire en C++, un petit lien serait super
(j'ai vu l'application DevHelp qui fait un peu pareil avec des icones livre ouvert ou fermé, mais c'est entièrement en C, et j'ai beaucoup de mal a percevoir ou et comment c'est implementé).

Merci de votre aide
Rémi
remitbo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/11/2008, 19h26   #2 (permalink)
Responsable
C et GTK+
 
Avatar de gege2061
 
Date d'inscription: juin 2004
Localisation: Tours - Paris
Âge: 25
Messages: 5 447
Par défaut

Bonjour,

Tu as une exemple dans ce tutoriel : http://nicolasj.developpez.com/gtk/cours/?page=page_17
__________________
Responsable GTK+
gege2061 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 12/11/2008, 19h13   #3 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: décembre 2006
Âge: 25
Messages: 28
Par défaut

Salut

Merci pour le lien. en fait techniquement, dedans, il met l'icone et le texte dans deux colonnes differentes, et n'affiche pas l'entête, ce qui donne l'impression d'une seule colonne.
Moi j'ai vraiment besoin d'une seule colonne, car je fait un arbre, et non une simple liste, et donc les icones doivent se décaler avec le texte dans l'arborescence.

Mais ne vous tracassez pas, j'ai trouvé entre temps (avec l'aide de la gtkmm mail list ). On peut "packer" deux renderers dans la même colonne. voici mon code.
Code :
class FileTreeModel
	:	public Gtk::TreeStore
{
public:
	FileTreeModel();
	virtual ~FileTreeModel();
 
	void addHierarchy (string absDirPath);
	void fillDirectory(const Gtk::TreeModel::Row& row);
	void removeHierarchy (const Gtk::TreeModel::Row& row);
 
	bool is_top_level(const Gtk::TreeModel::iterator& iter);
 
	class FileTreeColumns
		:	public Gtk::TreeModel::ColumnRecord
	{
	public:
		FileTreeColumns()
		{ add(pixbuf); add(name); add(fileInfo); }
 
		Gtk::TreeModelColumn<Pixbuf_ptr>	pixbuf;
		Gtk::TreeModelColumn<string> 		name;
		Gtk::TreeModelColumn<fileCellInfo> 	fileInfo;
	};
 
	const FileTreeColumns& columns() const
		{ return _columns; }
 
	static Glib::RefPtr<FileTreeModel> create()
		{ return Glib::RefPtr<FileTreeModel>( new FileTreeModel() ); }
private:
 
	FileTreeColumns	_columns;
 
	Pixbuf_ptr		_dir_pxbf;
	Pixbuf_ptr		_file_pxbf;
 
	list<File_ptr>	_hierarchies;
};
 
 
// j'ai une instance de Gtk::TreeView : _files_tvw et
// une instance de ce modèle : _files_mdl
 
_files_mdl =  FileTreeModel::create();
_files_tvw->set_model(_files_mdl);
Gtk::TreeViewColumn* column = Gtk::manage(new Gtk::TreeViewColumn("File"));
column->pack_start(_files_mdl->columns().pixbuf, false); 
column->pack_start(_files_mdl->columns().name, true);
	// gtk choisit lui meme les "Renderers" les mieux adaptés
_files_tvw->append_column(*column);
 
et voilà, ça marche super
C'est souvent plus simple que ça n'y paraît !
remitbo est déconnecté   Envoyer un message privé Réponse avec citation
NEWS GTK+FAQ GTK+TUTORIELS GTK+SOURCES GTK+BIBLIOTHEQUESLIVRES GTK+OUTILS GTK+BLOG

Réponse

Précédent   Forum des développeurs > Général Développement > Programmation Linux > GTK



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 03h27.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2009 www.developpez.com - Legal informations