Schrift
[thread]5335[/thread]

MListbox + Scrolled - Problem



<< >> 8 Einträge, 1 Seite
GoodFella
 2007-06-13 04:34
#46465 #46465
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Folgende Grafik beschreibt das Problem am besten:

http://flux.pldsecurity.de/cmp.JPG

..Alles mehrmals gecheckt, kein erkennbarer Fehler / keine erkennbare Ursache. Achja, im "Kunden"-Tab funktioniert Scrolled + MListbox perfekt, dabei ist die Deklaration beider absolut identisch, ist ein klassischer Fall von copy,paste and modify - also nur Variablennamen geändert..
Ich poste gerne Mal den ganzen Code, wenn ihr das wollt, sind allerdings 1500 Zeilen (wollte das irgendwann aufteilen ^^ lalala *pfeif*)

..Achja, ich benutze place als Geometriemanager, der Code steht etwas weiter unten, hat nicht mehr auf den Screenshot gepasst - habe ich also nicht vergessen.\n\n

<!--EDIT|GoodFella|1181695073-->
ptk
 2007-06-13 09:36
#46466 #46466
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Was ist denn das Problem? Dass die Höhe nicht stimmt? Überstimmt vielleicht place() die Angaben des Widgets?
GoodFella
 2007-06-13 11:51
#46467 #46467
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Ich dachte, das wäre ersichtlich: Die Breite und die Höhe sind 0, statt wie angegeben... Mit pack komme ich leider zum selben Ergebnis :(
GoodFella
 2007-06-13 12:44
#46468 #46468
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Ein weiteres Problem ist, dass ich den Fehler nicht reproduzieren kann.

Das Script hier:

Code: (dl )
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
36
37
38
39
40
41
#!/usr/bin/perl

use Tk;
use Tk::NoteBook;
use Tk::MListbox;

$mw = MainWindow->new();
$mw->geometry( "550x550" );
$book = $mw->NoteBook()->pack( -fill=>'both', -expand=>1 );

$tab1 = $book->add( "Sheet 1", -label=>"1" );
$tab2 = $book->add( "Sheet 2", -label=>"2" );
$tab3 = $book->add( "Sheet 3", -label=>"3" );


my @job_cols = ( [-text => 'Datum', -width => 10],
[-text => 'Firma', -width => 15],
[-text => 'Priorität', -width => 5] );
$mlb_job = $tab1->Scrolled('MListbox',
-moveable => 1, -width => 165, -height => 27,
-scrollbars => 'e',
-columns => [@job_cols] );

$mlb_job->place( -x => 310, -y => 10 );


my @_cols = ( [-text => 'Datum', -width => 10],
[-text => 'Firma', -width => 15],
[-text => 'Priorität', -width => 5] );
$_job = $tab2->Scrolled('MListbox',
-moveable => 1, -width => 165, -height => 27,
-scrollbars => 'e',
-columns => [@_cols] );

$_job->place( -x => 310, -y => 10 );

$tab1->Label( -textvariable=>\$starttime )->pack( -expand=>1 );
$tab2->Label( -textvariable=>\$raisetime )->pack( -expand=>1 );
$tab3->Button( -text=>'Quit', -command=>sub{ exit; } )->pack( -expand=>1 );

MainLoop;

verhält sich wie erwartet.

Ich habe mal meinen Monstercode hochgeladen:
Vielleicht findet jemand die Ursache des Problems..

http://flux.pldsecurity.de/mmj.txt


Gruss


Pete
ptk
 2007-06-13 23:42
#46469 #46469
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Als Workaround könntest du -width und -height in place() und nicht im MListbox-Aufruf angeben. Und wenn du schon böses place() verwendest, solltest du dir mal die Optionen -relx/-rely/-relheight/-relwidth anschauen.

Warum es mal funktioniert und mal nicht, kann ich dir nicht sagen. Vielleicht macht Tk::MListbox intern zu komplizierte Dinge. Vielleicht solltest du lieber Tk::HList verwenden?
GoodFella
 2007-06-14 02:38
#46470 #46470
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
YEA!!! Der Workaround funktioniert - allerdings sind -width und -height dann Pixelgrössen und keine Character-Grössen.. Vielen Danke ptk!

Habe mir früher mal HList angeschaut, aber es gab da einen Grund, warum ich mich generell dagegen entschieden habe; an den ich mich aber nicht erinnere ^^
ptk
 2007-06-14 10:28
#46471 #46471
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei Tk::HList kann man von Haus aus die Spaltenbreiten nicht per Maus ändern, und die Header sind nicht für das Sortieren anklickbar. Vielleicht meintest du das? Aber dazu gibt es CPAN:Tk::ResizeButton, auch wenn es etwas umständlich zu benutzen ist.
renee
 2007-06-14 10:45
#46472 #46472
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Crian hat ein Beispiel für CPAN:Tk::HList mit Header zum Sortieren auf seiner Seite.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 8 Einträge, 1 Seite



View all threads created 2007-06-13 04:34.