| << Vorheriges Thema anzeigen :: Nächstes Thema anzeigen >> |
| Autor |
Nachricht |
Greenghecco Forum-User

Anmeldungsdatum: 03.06.2008 Beiträge: 61
|
Verfasst am: 01.02.2010, 11:20:18 Titel: selben content in mehreren tabs anzeigen |
|
|
hallo gibt es eine möglichkeit ein frame mit mehreren widgets in mehreren tabs anzuzeigen?. das problem ist wie kann ich einem nbframe sagen das er diese widgets anzeigen soll.
zb.:
frame .test.frame
button .test.frame.but
text .test.frame.txt
grid [tixNoteBook .test.frame.Nb] -column 0 -row 0
der obrere frame soll in jedem tab angezeigt werden.
.test.frame.Nb add new_1 -label "new_1"
und nun soll fram in den new_1 tab
usw. für die anderen tabs |
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 01.02.2010, 12:05:29 Titel: |
|
|
Hallo,
du könntest ein -raisecmd konfigurieren, in dem der Frame in die Notebookseite gepackt wird (pack $frame -in $notebook_page).
Viele Grüße
Göran |
|
| Nach oben |
|
 |
Greenghecco Forum-User

Anmeldungsdatum: 03.06.2008 Beiträge: 61
|
Verfasst am: 01.02.2010, 12:11:56 Titel: |
|
|
| vielen dank, geht das auch mit grid? |
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 01.02.2010, 12:45:09 Titel: |
|
|
Hallo,
Sollte auch mit grid gehen, grid hat auch eine option -in, sagt die Manpage.
Viele Grüße
Göran |
|
| Nach oben |
|
 |
Greenghecco Forum-User

Anmeldungsdatum: 03.06.2008 Beiträge: 61
|
Verfasst am: 01.02.2010, 13:01:44 Titel: |
|
|
schon gut geht auch mit dem parameter -in.
vielen dank nochmal |
|
| Nach oben |
|
 |
Greenghecco Forum-User

Anmeldungsdatum: 03.06.2008 Beiträge: 61
|
Verfasst am: 01.02.2010, 16:19:45 Titel: |
|
|
hm habe noch eine kleine frage. also wie du das beschrieben hast mit dem content einfügen funktioniert tadellos. Es gibts nur noch ein kosmetisches Problem. wenn eich einen neuen Tab erstelle
will ich das die widgets dort gleich zu sehen sind aber leider erscheinen sie erst dann wenn ich nochmals auf das tab klicke. der code sieht folgendermaßen aus:
proc create_new_tab {} {
#tab erstellen
.tixnb add test_2 -label "test_2" -underline 0
#content in tab laden
grid configure .zuladenerframe -in .tixnb.test_2 -row 0 -column 0
.tixnb pageconfigure $name_tab -raisecmd {ebenfalls laden des content}
.tixnb raise test_2
}
also wie gesagt der inhalt bleibt noch grau die widgets werden nicht sofort geladen.
Danke im vorraus |
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 01.02.2010, 18:15:10 Titel: |
|
|
Hallo,
hier würde ich das -raisecommand gleich bei .tixnb add mit angegeben. Dann wird das -raisecommand auch beim ersten Darstellen ausgeführt.
Viele Grüße
Göran |
|
| Nach oben |
|
 |
Greenghecco Forum-User

Anmeldungsdatum: 03.06.2008 Beiträge: 61
|
Verfasst am: 02.02.2010, 11:54:57 Titel: |
|
|
geht leider immer noch nicht:
proc create_tab {}{
.tixnb add test -label "test" -underline 0 -raisecmd {raise_func}
grid configure .content -in .tixnb.nbframe.test -row 0 -column 0
}
die raise_func sieht so aus:
proc raise_func {} {
grid configure .content -in .tixnb.nbframe.test -row 0 -column 0
}
die raise_func ist nur dazu da wenn man die tabs wechselt das der content angezeitg wird.
Aber nach wie vor wird beim erstellen der content leider nicht angzeigt. erst wenn man nochmal explizit auf den tab klickt.
Haste da vielleicht noch ein tipp, vielleicht hab ich auch n denkfehler Göran? |
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 07.02.2010, 18:40:44 Titel: |
|
|
Hallo,
Ich kann dir leider nicht sagen, wo du was verbessern könntest, dein Codeschnipsel erscheint mir unvollständig.
Folgendes Schnipsel tuts bei mir, das Label wird auf allen Seiten bei Tabwechsel angezeigt:
| Code: | package require Tk
package require Tix
proc test w {
set nb [tixNoteBook $w.nb -width 200 -height 200]
pack $nb -expand 1 -fill both
set ::ipage 0 ; # Zähler fuer Seiten
set btn [button $w.b -text NewPage -command [list newpage $nb]]
pack $btn
set ::persist [label $w.l -text "Hallo"]
newpage $nb
}
proc newpage w {
set pname f[incr ::ipage]
set page [$w add $pname -label "$::ipage" ]
$w pageconfigure $pname -raisecmd [list raise_func $::persist $page]
}
proc raise_func {p page} {
pack $p -in $page
}
test [toplevel .t1]
|
Viele Grüße
Göran |
|
| Nach oben |
|
 |
|