![]() |
| 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é. | |||||||
|
|||||||
| GTK Vos questions sur GTK sous Linux |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: décembre 2006
Âge: 25
Messages: 28
|
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 |
|
|
|
|
|
#2 (permalink) |
|
C et GTK+ ![]() Date d'inscription: juin 2004
Localisation: Tours - Paris
Âge: 25
Messages: 5 447
|
Bonjour,
Tu as une exemple dans ce tutoriel : http://nicolasj.developpez.com/gtk/cours/?page=page_17 |
|
|
|
|
|
#3 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: décembre 2006
Âge: 25
Messages: 28
|
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 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); C'est souvent plus simple que ça n'y paraît ! |
|
|
|
|
![]() |
![]() |
||
[gtkmm] icones dans un Gtk::TreeView
|
||
| Outils de la discussion | |
|
|