Kezdőoldal » Számítástechnika » Programozás » Hogyan legyen scrollbar a...

Ozmium42 kérdése:

Hogyan legyen scrollbar a Dialogon? (python3, Gtk)

Figyelt kérdés

Van egy programom, amiben van egy gomb, aminek a megnyomására megjelenik egy Dialog, benne két TreeView. A problémám annyi, hogy a felugró Dialog nem görgethető, a tartalom kilóg a monitorból, és nem sikerült rájönnöm, hogyan oldjam meg. Ha Dialog helyett ScrolledWindow-t használok, akkor a gombnyomásra nem jelenik meg az ablak, hibaüzenet meg semmi. Most már hónapok óta rá se néztem a Gtk-ra, úgyhogy már arra a kevésre is csak foszlányosan emlékszem, amit eddig megértettem.


Nem kész kódot kérek, hanem valami elméleti vázlatot a megoldáshoz.


- Például hogyan nézne ki egy Parent -> Gomb -> felugró ScrolledWindow kód

vagy

- Hogy kerülhet scrollbar a Dialogba.



2019. júl. 23. 21:16
1 2
 1/11 anonim ***** válasza:
100%

Nem ismerem a pythont, de most nem igazából scrollable treeview kell neked?

[link]

2019. júl. 23. 22:11
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
#1 Amit linkeltél, az Tkinter. Gtk-ban szerintem nincs külön scrolled treeview. Mindenhol a ScrolledWindow-t erőltetik. Ezzel viszont az a baj, hogy nem ugrik fel gombnyomásra, ezt valahogy másképpen kell megoldani, mint a Dialognál. Még olyat találtam, hogy Scrollbar-t, mint objektumot lehet rendelni hozzá külön, de elég bonyolult nekem.
2019. júl. 23. 22:23
 3/11 A kérdező kommentje:
Azt hiszem írnom kell egy kis tesztprogramot, mert ez a project már túl kusza, hogy ezen kísérletezgessem ki.
2019. júl. 23. 22:25
 4/11 tabaki ***** válasza:
100%

Ez sem segít?

[link]

2019. júl. 23. 23:04
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
100%

Szóval, ahogy értem van a dialog és van a treeview , namost nem lehet, hogy valami konténerbe kéne raknod a treeview-et, ami görgethető?

? flowbox vagy mi?:)

[link]

2019. júl. 24. 08:22
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:
Ha főablak lenne, akkor segítene. Az én esetben felugró ablak kell, és ez így bonyolultabb. Este majd próbálkozok.
2019. júl. 24. 09:32
 7/11 A kérdező kommentje:
#5 Elvileg a TreeView (és még pár más widget) beépítetten "scrollable", de ennek csak annyi a következménye, hogy nem kell egy külön Viewport container-be rakni, mielőtt hozzáadod egy ScrolledWindow-hoz. Viszont ez nem segít nekem, mert a Dialog nem görgethető, a ScrolledWindow pedig nem ugrik fel.
2019. júl. 24. 09:41
 8/11 anonim ***** válasza:
100%

Itt találsz konkrét példát. (C++, de a lényeg most úgysem az.)

[link]

2019. júl. 24. 14:04
Hasznos számodra ez a válasz?
 9/11 A kérdező kommentje:

Kiemeltem a kérdést, mert nem oldódott meg a probléma. Kipróbáltam még egy dolgot, de nem jött be. Kicsit utána guglizva... kezdem azt hinni, hogy nem is lehet GTK-ban egyszerre több ablak megnyitva?!


Nem elég megoldás a ScrolledWindow. Van egy főablak (sima Window), egy gomb. A második ablaknak gombnyomásra kell megjelennie, eltűnnie. A Dialog erre tökéletes, de nincs rajta scrollbar. A ScrollWindow tökéletes lenne, mint főablak, de nem vagyok képes rájönni, hogyan jelenjen meg gombnyomásra, mint child. Lehet, hogy sehogy.

2019. júl. 27. 20:00
 10/11 A kérdező kommentje:

Elhamarkodott volt, itt a megoldás:


A ScrolledWindow a jelek ellenére mégsem egy önálló ablak, hanem úgy működik mint egy widget, csak kiegészíti a megfelelő elemekkel a hozzáadott TreeView-t aztán így kell hozzáadni (add) a containerhez, jelen esetben egy HBoxhoz, azt meg a Dialoghoz, azt meg a főablakhoz. (Így a HBox görgethető csak, nem a Dialog teljes tartalma, de ez részletkérdés, a lényeg, hogy le kellett esnie a ScrolledWindow logikájának).

2019. júl. 27. 21:10
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!