Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 3


|
Conversation : Dimensionnement automatique de la fenêtre? |
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Salut à tous, Je débute avec wxWidgets et j'en rencontré un problème de dimensionnement de ma fenêtre. Elle contient de nombreux sizers, widgets, etc et lorsqu'elle elle s'ouvre après compilation, sa taille n'est pas adaptée à ce qu'elle contient. Elle est toute petite alors qu'elle contient une vingtaine de lignes de texte avec des champs de texte en face, donc forcément c'est illisible...
D'où ma question : existe-t-il un moyen de la faire se redimensionner automatiquement en fonction de ce qu'elle contient?
J'ai bien essayé Fit(), mais il ne fait que me réduire la fenêtre au minimum... Comme si elle était vide.
Merci à ceux qui sauront me répondre
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Tu as defini la taille des wxTextCtrl? A mon avis ca viens de la, faut le faire
|
Itérer est humain, récurser est divin
|
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Merci pour ta réponse rapide, en effet, la taille n'était pas définie. Je viens de le faire et de virer les wxEXPAND que j'avais collés partout lorsque j'ajoutais mes widgets aux sizers. Maintenant, mes wxStaticBoxSizer sont fixes (ce que je désire), mais la taille de la fenêtre ne l'est toujours pas, et par défaut, elle reste trop petite.
J'ai donc appelé des Fit() un peu partout (ma Frame principale, mon notebook, chaque panel de mon notebook...) mais comme avant, ils ne font que réduire la fenêtre.
Une autre idée?
Merci en tous cas, on progresse ^^
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Montre ton code stp ---------- Tiens regarde ca, c'est pas bien fai mais bon http:/svn.gna.org/viewcvs/ate/trunk/src … iew=markup
Dernière modification par xxltux (08-11-2007 20:02:20)
|
Itérer est humain, récurser est divin
|
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
La page de notebook qui nous intéresse :
Code wxWidgets: #include "ArkhSim.h" ArkhSim::ArkhSim(wxNotebook* parent) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxEXPAND) { wxBoxSizer *mainSizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *leftColumn = new wxBoxSizer(wxVERTICAL); wxBoxSizer *rightColumn = new wxBoxSizer(wxVERTICAL); wxStaticBoxSizer *fleet = new wxStaticBoxSizer(wxVERTICAL, this, _("Flottes")); wxStaticBoxSizer *defense = new wxStaticBoxSizer(wxVERTICAL, this, _("Défenses")); wxStaticBoxSizer *target = new wxStaticBoxSizer(wxVERTICAL, this, _("Cible")); SimElement *SC = new SimElement(this, -1, _("Petit Transporteur"), FLEET); SimElement *LC = new SimElement(this, -1, _("Grand Transporteur"), FLEET); SimElement *LF = new SimElement(this, -1, _("Chasseur Léger"), FLEET); SimElement *HF = new SimElement(this, -1, _("Chasseur Lourd"), FLEET); SimElement *CR = new SimElement(this, -1, _("Croiseur"), FLEET); SimElement *BS = new SimElement(this, -1, _("Vaisseau de Bataille"), FLEET); SimElement *CS = new SimElement(this, -1, _("Vaisseau de Colonisation"), FLEET); SimElement *RC = new SimElement(this, -1, _("Recycleur"), FLEET); SimElement *EP = new SimElement(this, -1, _("Sonde Espionnage"), FLEET); SimElement *BB = new SimElement(this, -1, _("Bombardier"), FLEET); SimElement *SS = new SimElement(this, -1, _("Satellite Solaire"), SAT); SimElement *DE = new SimElement(this, -1, _("Destructeur"), FLEET); SimElement *DS = new SimElement(this, -1, _("Etoile de la Mort"), FLEET); SimElement *BC = new SimElement(this, -1, _("Traqueur"), FLEET); SimElement *RL = new SimElement(this, -1, _("Lanceur de missiles"), DEFENSE); SimElement *LL = new SimElement(this, -1, _("Artillerie laser légère"), DEFENSE); SimElement *HL = new SimElement(this, -1, _("Artillerie laser lourde"), DEFENSE); SimElement *GC = new SimElement(this, -1, _("Canon de Gauss"), DEFENSE); SimElement *IC = new SimElement(this, -1, _("Artillerie à ions"), DEFENSE); SimElement *PT = new SimElement(this, -1, _("Lanceur de plasma"), DEFENSE); SimElement *SD = new SimElement(this, -1, _("Petit bouclier"), DEFENSE); SimElement *LD = new SimElement(this, -1, _("Grand bouclier"), DEFENSE); SimElement *MI = new SimElement(this, -1, _("Missiles"), MISSILE); fleet->Add(SC, wxEXPAND); //Small Cargo fleet->Add(LC, wxEXPAND); //Large Cargo fleet->Add(LF, wxEXPAND); //Light Fighter fleet->Add(HF, wxEXPAND); //Heavy Fighter fleet->Add(CR, wxEXPAND); //Cruiser fleet->Add(BS, wxEXPAND); //Battle Ship fleet->Add(CS, wxEXPAND); //Colony Ship fleet->Add(RC, wxEXPAND); //Recycler fleet->Add(EP, wxEXPAND); //Espionage Probe fleet->Add(BB, wxEXPAND); //Bomber fleet->Add(SS, wxEXPAND); //Solar Satellite fleet->Add(DE, wxEXPAND); //Destructor fleet->Add(DS, wxEXPAND); //Death Star fleet->Add(BC, wxEXPAND); //Battle Cruiser defense->Add(RL, wxEXPAND); //Rocket Launcher defense->Add(LL, wxEXPAND); //Light Laser defense->Add(HL, wxEXPAND); //Heavy Laser defense->Add(GC, wxEXPAND); //Gauss Canon defense->Add(IC, wxEXPAND); //Ion Canon defense->Add(PT, wxEXPAND); //Plasma Turret defense->Add(SD, wxEXPAND); //Small Dome defense->Add(LD, wxEXPAND); //Large Dome defense->Add(MI, wxEXPAND); //Missiles leftColumn->Add(fleet); leftColumn->Add(defense); rightColumn->Add(target); mainSizer->Add(leftColumn); mainSizer->Add(rightColumn); this->SetSizer(mainSizer); } ArkhSim::~ArkhSim() { //dtor } SimElement::SimElement(wxWindow *parent, wxWindowID id, wxString name, unsigned int type) : wxBoxSizer(wxHORIZONTAL) { wxStaticText *label = new wxStaticText(parent, id, name, wxDefaultPosition, wxSize(150, 20)); wxTextCtrl *nbAtt = new wxTextCtrl(parent, wxID_ANY, _(""), wxDefaultPosition, wxSize(50, 20)); this->Add(label); this->Add(nbAtt); }
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
A tu me le fileras, je me sui refai un compte lol
|
Itérer est humain, récurser est divin
|
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
lol, et sinon pour mon problème? ^^
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
SimElement c'est quoi con constructeur?
Montre le constructeur tant qu'on y est lol Tu as vu mon code? Moi me sui fai un compte en 52
Dernière modification par xxltux (08-11-2007 20:48:53)
|
Itérer est humain, récurser est divin
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Salut, et bienvenue.
Pour ton problème, il faut demander au sizer principal de la fenêtre d'en recalculer automatiquement la taille.
Code wxWidgets:// Dans le constructeur de la fenêtre : SizerPrincipal->SetSizeHints(this);
C'est bien entendu à adapter à ton code.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Heu mon code au fait il a donc un probleme?
|
Itérer est humain, récurser est divin
|
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Quel boulet... Ma fenêtre principale n'avait pas de sizer, juste le notebook sans rien. Alors forcément... Mais SetSizeHints est utile quand même pour redimensionner la fenêtre
Merci à vous!
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Tu fais aussi les simulations des ressources?
|
Itérer est humain, récurser est divin
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
En fait, quand la fenêtre ne contient qu'un seul contrôle (hormis la statusbar), tu n'es pas obligé de lui affecter un sizer : le contrôle est automatiquement redimensionné pour occuper toute la zone cliente. Mais dans ton cas, il est quand même utile pour le redimensionnement automatique. Si ça se trouve, il y en a un par défaut : il faut juste trouver le moyen de le récupérer (à étudier...)
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
J'ai pas l'impression : à chaque fois que j'oubliais d'assigner un élément à un sizer, il était mis dans le coin en haut à gauche...
Enfin bon, autant faire un sizer soi-même et pas se compliquer je pense, mais c'est intéressant.
@xxltux : oui quand j'aurai fait l'interface, le simulateur, l'importateur de RC/RE, le metteur en forme, etc ^^
Arkhiall, uni 24, 1230k points
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Un coup de main? Dommage qu'on soit pas sur le meme univers ---------- Heu au fait les statistique sont maj quand?
Dernière modification par xxltux (08-11-2007 21:26:50)
|
Itérer est humain, récurser est divin
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
xxltux:Heu au fait les statistique sont maj quand? Pour le nombre de membres inscrits, le fichier "cache" est mis à jour à chaque nouvelle inscription. Pour les autres, c'est une table sql "en mémoire" : c'est donc en live (avec en temps de non-activité réglable pour les membres/invités en ligne).
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Désolé mais je parlai de celle de oGame lol
|
Itérer est humain, récurser est divin
|
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
lol un peu HS alors ^^ Bah comme toujours les stats, chaque jour à 0h05, 8h05 et 16h05. Pour le coup de main ca devrait aller le simulateur est déjà codé
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Alors montre stp
|
Itérer est humain, récurser est divin
|
Arkhiall (Membre)
Inscrit le : 08-11-2007
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Sur un forum c'est rac il doit y avoir une bonne douzaine de fichiers de 200 lignes en moyenne lol
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Moi j'ai que 7 points snif ---------- Faudrai se faire une alliance wx sur un univers lol
Dernière modification par xxltux (09-11-2007 20:48:32)
|
Itérer est humain, récurser est divin
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
oeuf corse!
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Tu devrais aller a la colombiere lol ---------- Alors on peux l'avoir le prog? Que je dise qu'un nouveau programme de simulation est sorti à mon alliance lol
Dernière modification par xxltux (01-12-2007 11:48:44)
|
Itérer est humain, récurser est divin
|
|