Qt

Programovacie jazyky, rady, poradňa...
Biohazard66
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 63
Registrovaný: 08 nov 2011, 19:16

Qt

Príspevok od používateľa Biohazard66 »

pls poraďte mi niekto potrebujem spraviť tlačidlo a malo by to fungovať takto:

Stlačíte prvý krát zobrazí labe1 stlačíte 2 krát zobrazí label 2 atd.
Dik vopred
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Qt

Príspevok od používateľa audiotrack »

a problém je kde?
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Qt

Príspevok od používateľa metthal »

Takto, ukaz co mas a pokusime sa to spolu dorobit. Dlhsie vidim co pises tu vo vlakne o programovani a takto sa programovat nenaucis, ze to budu robit ludia za teba.

Tiez by som ta poprosil aby si troska upresnil to kliknutie 2 krat. Ma ist o dvojklik alebo o druhe kliknutie v poradi?
Biohazard66
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 63
Registrovaný: 08 nov 2011, 19:16

Re: Qt

Príspevok od používateľa Biohazard66 »

nemám celý program vymýšľam ako by to mohlo byť píšem len funkciu mam priblizne ten klik a ma to byť na 2.kliknutie a vymyslel som to tak že napr.

Kód: Vybrať všetko

ui->label+QString::number(i)->setVisable(true)
ale toto nefunguje
keby som toto dokazal dat do toho kliknutia tak by som v poho dorobil celý program

//autoeditácia príspevku (22 Mar 2012, 20:13)
Proste ide oto že na kliknutie by sa mal zobraziť další label niečo ako next atd.
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Qt

Príspevok od používateľa metthal »

Predpokladam ze ked robis s tlacidlami, tak vies co su sloty a signaly. Ak nie zacni tam, ak hej tak si len sprav nejaku premennu "pocitadlo", kde budes pocitat, kolke stlacenie tlacidla to je. Cez podmienky potom skryjes/zobrazis dany label.

PS: metody na skrytie/zobrazenie nejakeho widgetu su hide()/show() ale keby pouzijes google, tak si to najdes aj sam
Biohazard66
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 63
Registrovaný: 08 nov 2011, 19:16

Re: Qt

Príspevok od používateľa Biohazard66 »

ok dik a ja pouzivam setVisable(true/false)
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Re: Qt

Príspevok od používateľa c-ice »

no si sprav pole kde tie lable naukladas ... a budes sa cez to pole posuvat ...

QList<QLabel*> zoznamLabelov; //tiez definovane v MainWindow.h
//tento kod napchat napr. do konstruktora za volanie ui->setup()
zoznamLabelov.addItem(ui->label1);
.....
zoznamLabelov.addItem(ui->labelX);
.....
premenna ktoru bude mat napr. MainWindow.h ... private: int m_AktualnyLabel = -1;

Kód: Vybrať všetko

onClick... {
  m_AktualnyLabel++;
  for(int i = 0; i < zoznamLabelov.size(); i++){
    if (i == m_AktualnyLabel)
      zoznamLabelov.get(i)->setVisible(true);
     else
       zoznamLabelov.get(i)->setVisible(false);
  } 
}
pisal som len tak netusim ci sa volaju presne tak tie metody mozno nieje "get" ale "at" ... a tak isto to addItem sa mozno vola inak napr push
Biohazard66
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 63
Registrovaný: 08 nov 2011, 19:16

Re: Qt

Príspevok od používateľa Biohazard66 »

Potrebujem ešte jednu radu mam slučku a chcem aby zakaždým pripísalo text ale ked použijem label->setText("nieco") tak to zakaždým prepíše ale ja chcem iba doplniť
Dik
Zappir
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 498
Registrovaný: 17 aug 2008, 9:38
Bydlisko: Praha / Prievidza

Re: Qt

Príspevok od používateľa Zappir »

vezmes ten povodny, prilepis tam novy a posles to nazad (?? setText(getText+"nieco") ??)
Biohazard66
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 63
Registrovaný: 08 nov 2011, 19:16

Re: Qt

Príspevok od používateľa Biohazard66 »

viem ale ten program kombinuje čísla a vypíše 120 kombinácii takže to takto nemá zmisel
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Qt

Príspevok od používateľa metthal »

Tak popis presne co chces, lebo my vestecku gulu nemame. Zappir ti riesenie dal. :roll:
Biohazard66
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 63
Registrovaný: 08 nov 2011, 19:16

Re: Qt

Príspevok od používateľa Biohazard66 »

No ok
Tak mal som program na kombinovanie čísel v konzole a dal som ho do GUI rozhrania a kombinácie chcem vypísať v label, ale nemôźem použit setText pretože vypisuje slučka while a kebyže tam dám setText tak mi napíše len poslednú kombináciu a ja ich chcem všetky ale nepoznám taky "prvok" alebo funkciu ktorá vypisuje zaseba a neprepisuje ten text
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Qt

Príspevok od používateľa metthal »

Trieda QLabel ma clena text takze k textu sa dostanes lahko. QString ma zadefinovany operator+= takze z toho vypliva len jedine

Kód: Vybrať všetko

label->setText(label->text + " " + TVOJ_STRING);
Biohazard66
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 63
Registrovaný: 08 nov 2011, 19:16

Re: Qt

Príspevok od používateľa Biohazard66 »

ale ja tam mám slučku ktorá niečo pripíše 120x
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Qt

Príspevok od používateľa metthal »

A? To je taky problem to hodit do toho cyklu? Alebo ked to nechces robit takto, tak si to len zapisuj do jedneho stringu a na konci cyklu zavolaj setText s tvojim stringom.
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Qt

Príspevok od používateľa Viper »

vo while stačí iba

Kód: Vybrať všetko

ui->label->setText(ui->label->text() + " " + xs);
automaticky sa ti ku starému vypíše nové takže nieje čo riešiť a ešte si daj pozor na okno ak tam máš 120 možnosti alebo aj viac môžeš mat problém s oknom že sa strašne predĺži alebo rozšíri tak stačí použiť

Kód: Vybrať všetko

ui->label->setWordWrap(true);
Napísať odpoveď