Schrift
[thread]5202[/thread]

BrowseEntry vs. disable: funktioniert nicht wirklich

Leser: 1


<< |< 1 2 3 >| >> 28 Einträge, 3 Seiten
zipster
 2006-06-03 16:28
#45595 #45595
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Hi,

habe in meinem Programm State eingebaut. Funktioniert auch überall Problemlos ausser bei BrowseEntry. Das Feld wird zwar ausgegraut aber eine Auswahl kann man trotz allem noch treffen.

Ich habe es jetzt mit 'readonly' und 'disable' versucht birngt aber nichts.

Lauf Doku sollte dies aber funktionieren.
Quote
-state
Specifies one of three states for the widget: normal, readonly, or disabled. If the widget is disabled then the value may not be changed and the arrow button won't activate. If the widget is readonly, the entry may not be edited, but it may be changed by choosing a value from the popup listbox. normal is the default.


Was mach ich den falsch?

Gruß

Seri aka Zipster
ptk
 2006-06-05 22:09
#45596 #45596
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Es heißt "disabled", nicht "disable". Und das Verhalten von "readonly" entspricht exakt der Dokumentation.
zipster
 2006-06-06 11:05
#45597 #45597
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
LOL

Das "d" hat echt gefehlt. *G*
Warum hat er aber mit disable auch alles ausgegraut? Find ich irgendwie witzig.
Danke PTK
ptk
 2006-06-06 12:06
#45598 #45598
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Da gab es wohl einen Mischmasch mit exakten und abgekürzten Konfigurationsoptionen. Im Tk-Core ist es häufig (immer?) erlaubt, Abkürzungen für Konfigurationsoptionen und -werte zu verwenden. Dieses Codestück gibt "disabled" aus:
Code: (dl )
1
2
3
4
5
use Tk;
$top = new MainWindow;
$b = $top->Button(-st => "disa")->pack;
warn $b->cget(-state);
MainLoop;

Tk::BrowseEntry ist nun aber ein zusammengesetztes Widget, bei dem ein Teil der Konfigurationsoptionen an die Core-Widgets weitergeleitet wird (und hier Abkürzungen möglich sind), einige Sachen aber direkt in Perl mit "eq" abgefragt werden. Der Bösewicht ist wohl in Zeile 176 in BrowseEntry.pm. Hier hätte man vielleicht $w->Subwidget("arrow")->cget(-state) verwenden sollen.
zipster
 2006-06-06 12:21
#45599 #45599
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
AHA?!

Sag mal kann man die Schrift bei Disabled irgendwie schwarz machen wie bei Readonly?

Hätte nämlich gern alles als quasi "readonly" aber trotzdem unveränderbar.
renee
 2006-06-06 12:22
#45600 #45600
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Probier mal -foreground explizit zu setzen...
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/
zipster
 2006-06-06 12:27
#45601 #45601
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Entry nimmt es an aber Browseentry und Checkbutton nicht. Hab es extra mal auf red gesetzt.
ptk
 2006-06-06 14:00
#45602 #45602
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Tut es denn mit -disabledforeground?
zipster
 2006-06-06 14:06
#45603 #45603
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Sehr gut...
Für Checkbutton und BrowseEntry brauch ich disabledforeground und für Entry foreground.

Gibts nun noch ne möglichkeit das für jedes Widget im Interface zu benutzten?
Irgendwie mit 'ConfigSpecs'???
ptk
 2006-06-06 14:33
#45604 #45604
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Das kann man mit der Option-DB machen. Siehe perldoc Tk::option
Ein Snippet aus einer eigenen Applikation:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
    for (qw(Browse Entry NumEntry Date*NumEntryPlain PathEntry
Listbox KListbox K2Listbox
TixHList HList Text ROText BrowseEntry.Entry SimpleHistEntry
ListboxSearchAnything
)) {
if ($os eq 'win') {
$top->optionAdd("*$_.background", "SystemWindow", "startupFile");
} else {
$top->optionAdd("*$_.background", "grey95", "startupFile");
}
}
<< |< 1 2 3 >| >> 28 Einträge, 3 Seiten



View all threads created 2006-06-03 16:28.