Portál AbcLinuxu, 10. května 2025 02:19

Dotaz: verticalScrollBar (Qt)

31.10.2010 11:05 krb | blog: herni_blog
verticalScrollBar (Qt)
Přečteno: 260×
Odpovědět | Admin
Dobrý den, chtěl bych do programu udělat vertikální ScrollBar, který by roloval s textBrowserem, ale při sestavování mi to vyhodí chybu na řádek:

verticalScrollBar->valueChanged(int 5);

expected primary-expression before 'int'

V čem dělám chybu?

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.10.2010 11:27 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: verticalScrollBar
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je tam int navíc:
verticalScrollBar->valueChanged(5);
I am always ready to learn although I do not always like to be taught. (W. Churchill)
31.10.2010 12:58 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar
Jo, to už jsem zkoušel, ale to zase vyhodí tuhle chybu:

In member function 'void_Ui_MainWindow::setupUi(QMainWindow*)'

'void QAbstractSlider::valueChanged(int)' is protected within this context: verticalScrollBar->valueChanged(5);
31.10.2010 13:34 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: verticalScrollBar
Vložte sem celý zdroják (resp. celou relevantní část). Z chybové hlášky bez zdrojáku se to těžko vykouká...
I am always ready to learn although I do not always like to be taught. (W. Churchill)
Vojta Drbohlav avatar 31.10.2010 13:36 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
Musíš použít nějakou z funkcí, které jsou public. Záleží na tom, co chceš s tím scrollbarem udělat. Takže třeba vericalScrollBar->setValue(5);. Viz dokumentaci třídy QAbstractSlider, kterou dědí QScrollBar.
31.10.2010 13:41 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar
Jo takže setValue to je vlastně hodnota resp. pozice na které ten slider bude při spuštění, mě spíš jde totiž o to že chci udělat že když se bude hýbat sliderem, bude se to pohybovat v text browseru ale asi přesně nevím jak to udělat, spíš jak udělat ten connect
Vojta Drbohlav avatar 31.10.2010 13:46 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
QTextBrowser dědí QTextEdit a ten dědí QAbstractScrollArea, takže stačí udělat:
textBrowser->setVerticalScrollBar(verticalScrollBar);
Ale myslím si, že by dokonce mělo nastavit verticalScrollBarPolicy a scrollbary se automaticky přidají, viz dokumentace QAbstractScrollBarArea. :-)
Vojta Drbohlav avatar 31.10.2010 13:47 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
s/mělo nastavit/mělo stačit nastavit/
31.10.2010 13:54 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar
To jsem zkusil ale to je divný protože se ten verticalScrollBar teď nezobrazí vůbec
Vojta Drbohlav avatar 31.10.2010 14:10 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
No defaultně by se oba scrollbary měly objevit, pokud jsou potřeba. Ale je možné že u QTextBrowseru je nastavené automatické zalamování řádků, takže to musíš asi změnit. Viz dokumentace QTextEditu. Koukni se hlavně na lineWrapMode a wordWrapMode.
31.10.2010 15:02 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar

Takže by to mělo vypadat takto?

 

textBrowser->setLineWrapMode(0);

textBrowser->setWordWrapMode(0);

 

To mi ale zase háže chyby jestli jsem dobře pochopil tak mode 0 je NoWrap a to by mělo být řešením ...

Vojta Drbohlav avatar 31.10.2010 15:45 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
Když ti něco háže chyby, tak příště rovnou napiš jaké. Zkus tohle:
textBrowser->setLineWrapMode(QTextEdit::NoWrap);
textBrowser->setWordWrapMode(QTextOption::NoWrap);
Místo čísel by si měl používat definované konstanty, ty jsou v dokumentaci taky popsané. ;-)
31.10.2010 17:04 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar
Stejně se scrollBar nezobrazí já fakt už nevím :(
Vojta Drbohlav avatar 31.10.2010 17:43 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
Pokud si v QtCreatoru udělám jen základní příklad, kde na formulář přidám QTextBrowser a v konstruktoru MainWindow mu nastavím již zmíněné NoWrap a načtu obsah velkého souboru, tak se scrollbary skutěčně ukážou.

Pravděpodobně budeš mít problém jinde, zkus sem postnout celý zdroják, takhle se chyba hledá těžko.
31.10.2010 17:48 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar
Příloha:
Soubor je v příloze...
Vojta Drbohlav avatar 31.10.2010 17:57 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
Zkus si celý projekt znovu vytvořit znovu a použít QtCreator a necpat všechno do ui souboru. :-) Ten je automaticky generovaný. O práci s QtCreatorem tu vyšel i pěkný seriál.
Vojta Drbohlav avatar 31.10.2010 17:59 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
Příloha:
V příloze je ukázka, která mi funguje, akorát si musíš v MainWindow.cpp změnit název souboru, který se do QTextBrowseru načítá.
31.10.2010 18:21 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar
Tak jsem to pozměnil a zkoušel sestavit ale napsal:

cannot open output file test: is a directory
Vojta Drbohlav avatar 31.10.2010 21:34 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: verticalScrollBar
V čem si to sestavoval a upravoval? Použil si QtCreator? Stačí to rozbalit a otevřít v něm.
2.11.2010 15:34 krb | blog: herni_blog
Rozbalit Rozbalit vše Re: verticalScrollBar
Jo, normálně Qt Creator ...
stativ avatar 31.10.2010 16:46 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: verticalScrollBar
Odpovědět | | Sbalit | Link | Blokovat | Admin
Z diskuse jsem pochopil, že je to Qt. Pokud tomu tak opravdu je, tak si nejdřív přečti dokumentaci a nějaké tutoriály než začneš něco prasit. valueChanged() u QScrollBaru je totiž signál a ten se fakt nevolá.
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.