Toon posts:

[QT/C++] Plaatsing van Widgets

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een bestaand C++/Qt programma aan te passen aan een nieuwe gebruiker, maar omdat ik niet veel kennis heb van C++/Qt levert dit nog wel eens problemen op / gaat het traag, en nu kom ik echt niet verder (ook niet na research). Het is een programma wat drankjes in een bar registreert, een digitaal kassasysteem. In het beginscherm kies je een naam waarna een lijst met producten verschijnt welke 'aangeslagen' kunnen worden.

Onderstaand plaatje toont het beginscherm. Linksboven (QClientInfo) verschijnt een lijst met namen, wanneer een naam geselecteerd wordt verschijnt rechtsboven (QClientInfoWidget) de saldo informatie van deze persoon. Onderaan (QSalestable) is een lijst met al gedane verkopen te zien.

Afbeeldingslocatie: http://wwwhome.cs.utwente.nl/~pardijs/got/layout1.PNG

Wanneer op enter wordt gedrukt als de juiste naam is geselecteerd verschijnt onderstaande plaatje, de twee bovenste schermen zijn vervangen door QDrinksWidget (de lijst met producten).
Afbeeldingslocatie: http://wwwhome.cs.utwente.nl/~pardijs/got/layout2.PNG

Wat ik nu wil is dat tijdens het kiezen van producten in het tweede plaatje, ook nog de informatie over de persoon voor wie besteld wordt te zien is (de ClientInfoWidget dus). Dat leek me niet zo moeilijk, gewoon een extra widget naast QDrinksWidget plaatsen, maar dit blijkt nog niet te lukken.
Afbeeldingslocatie: http://wwwhome.cs.utwente.nl/~pardijs/got/layout3.PNG

Eerst maar is een stukje code, het opbouwen van het eerste scherm:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Rekhdr::Rekhdr(QApplication *a) : QMainWindow(0, "Flux RekeningManager", WDestructiveClose)
{
   app = a;
   errorMessageDialog = new QErrorMessage(this);
   settings = new Settings();
   file  = new QPopupMenu( this );
   menuBar()->insertItem( "&Bestand", file );
   file->insertItem("&Instellingen", this, SLOT(showSettingsDialog()), ALT+Key_I);
   file->insertItem("&Databasegegevens opnieuw laden", this, SLOT(initDbDialog()), ALT+Key_D);
   file->insertSeparator();
   file->insertItem( "&Afsluiten", this, SLOT( close() ), ALT+Key_F4 );
     QFont f = font();
     f.setPointSize(10);
   setFont( f );
   file->setFont(f);
   vbox = new QVBox(this,"Vbox",0);
   widgetStack = new QWidgetStack(vbox, "Window Stack");
   hbox = new QHBox(widgetStack,"Hbox",0);
   widgetStack->addWidget(hbox);
   dw = new QDrinksWidget(widgetStack, "QDrinkswidget");
   widgetStack->addWidget(dw);
   widgetStack->raiseWidget(hbox);
   ql = new QClientList(hbox,"ClientList");
   ci = new ClientInfoWidget(hbox, "ClientInfoWidget");
   
   hbox->setMaximumSize(1024,200);
   st = new QSalesTable(vbox, "SalesTable");
   tw = new TimeWidget(this, "TimeWidget");
   statusBar()->addWidget(tw, 0, true);
   statusBar()->message("Loading clients..");
   setCentralWidget(vbox);
   setMinimumSize(800,600);
   //FsetMaximumWidth(1024);
   show();
   Init();


En als een naam geselecteerd is en op enter is gedrukt wordt het volgende uitgevoerd:
code:
1
2
widgetStack->raiseWidget(dw);
   dw->setFocus();

Ik snap dat raiseWidget dw over de andere twee widgets (in hbox) heen plaatst, hoe kan ik nu ook ClientInfoWidget nog naast deze dw plaatsen? Gewoon een nieuwe aanmaken laat niks zien, dw in een nieuwe sbox plaatsen en ClientInfoWidget daar ook in plaatsen laat ook geen ci zien...dus weet het ff niet meer...

Lang verhaal, maar hopelijk snapt iemand er iets van en heeft er iemand hulp!

Verwijderd

Topicstarter
Niemand? Dacht dat dit zo ongeveer een basisvraag was...(nee, desondanks bood m'n eigen search geen soelaas)...

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Om heel eerlijk te zijn snap ik niet wat je nu precies wil. Je plaatjes zijn wat onduidelijk.

Ik vermoed dat het probleem misbruik van de QWidgetStack is. Je gebruikt die om te kiezen tussen twee widgets. Welke dat zijn in jouw situatie zou ik niet weten.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • writser
  • Registratie: Mei 2000
  • Laatst online: 16-04 20:35
Ik snap niet precies wat je nou wilt. Je krijgt een paar widgets niet in beeld? Misschien moet je de sizehints nog implementeren, als het custom widgets zijn. In elk geval, met deze (algemene) links:

http://doc.trolltech.com/4.1/index.html
http://doc.trolltech.com/4.1/examples.html
http://doc.trolltech.com/4.1/layout.html
http://www.qtforum.org/

moet je er wel uit kunnen komen. :)

[ Voor 36% gewijzigd door writser op 28-11-2005 22:13 ]

Onvoorstelbaar!