Schrift
[thread]10715[/thread]

Tk::messageBox den icon oben wegkriegen, geht das?

Leser: 1


<< >> 7 Einträge, 1 Seite
#Kein Kommentar
 2007-11-03 16:50
#101771 #101771
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
hallihallo,

ich suche ne möglichkeit um den icon links oben in der tasksleiste von einer messageBox wegzukriegen, weil der bei mir immer so nen komisches leeres windows zeichen drin hat.

geht das?
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
ptk
 2007-11-03 21:04
#101791 #101791
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Irgendwo im Netz (leider nicht im CPAN) gibt es ein Modul namens Tk::Icon. Vielleicht kannst du damit das Icon von allen Fenstern einer Applikation ändern.
#Kein Kommentar
 2007-11-03 21:34
#101794 #101794
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
danke, ich werd's ma suchen
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
#Kein Kommentar
 2007-11-03 21:46
#101795 #101795
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
ah, hab's gefunden: Tk::Icon.

Leider hilft mir das nicht weiter, da dieses modul nur eine funktion stellt, die erst nach dem erzeugen eines fensters ein icon ändern kann. die messageBox öffnet sich ja aber sofort.

gibt's vllt eine alternative zu messageBox? (außer Tk::dialog)
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
ptk
 2007-11-03 22:20
#101799 #101799
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Hast du mal versucht, wenigstens das Icon des Hauptfensters zu verändern? Vielleicht wird diese Veränderung auch an die Dialoge weitervererbt?

Du könntest versuchen, native Win32-Dialogboxen per Win32::GUI oder Win32::API zu öffnen (nicht ausprobiert).

Bei Tk804.027_500 und später gibt es noch Tk::MesgBox als Alternative.

Außerdem ist es nicht so schwierig, mit einem Toplevel einen eigenen Dialog zu basteln. Die einzige Magie ist waitVariable, mit dem du das "Blockieren" implementieren kannst.
Spieler
 2007-11-04 12:43
#101815 #101815
User since
2007-09-24
70 Artikel
BenutzerIn
[default_avatar]
Hallo,

Ein applikations - übergreifendes Icon kannst du z.B. wie folgt erzeugen. Das funktioniert aber nicht mit messageBox, weil dies - so vorhanden - einen Systemdialog benutzt daher 'MessageBox(-parent => $my_parent)', dann funktioniert es.

Grüße, Christoph

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
use warnings;
use strict;
use Tk;
my $logo = <<'logo_end';
/* XPM */
static char * logo_xpm[] = {
"32 32 5 1",
" c None",
". c #FD000A",
"+ c #FD6463",
"@ c #FEBEBE",
"# c #FEFFFC",
"################################",
"################################",
"################################",
"################################",
"################################",
"################################",
"################################",
"################################",
"################################",
"########........##.....@########",
"#########@....+####@.###########",
"##########+....@###.@###########",
"###########.....##++############",
"###########@....+@.#############",
"############+.....@#############",
"#############.....##############",
"#############@....@#############",
"#############@.....#############",
"#############.+....+############",
"############++#+....@###########",
"###########@.###.....###########",
"###########.@###@....+##########",
"##########++#####+....@#########",
"########+....###........########",
"################################",
"################################",
"################################",
"################################",
"################################",
"################################",
"################################",
"################################"};
logo_end
;






package Tk::Toplevel;

sub InitObject{
my ($self,$args) = @_;
$self->SUPER::InitObject($args);
my $mw = $self->MainWindow;
if ($mw->cget('-appicon')){
$self->afterIdle(sub{$self->iconimage($mw->cget('-appicon'))}) ;
}

}

package MainWindow;
sub Populate{
my ($self,$args) = @_;

$self->SUPER::Populate($args);
$self->ConfigSpecs(-appicondata => ['METHOD'],
-appiconfile => ['METHOD'],
-appicon => ['PASSIVE']
);
$self->configure(%$args);
}

sub appicondata{
my $self = shift;
$self->configure(-appicon => $self->Pixmap(-data=>$_[0]));

}

sub appiconfile{
my $self = shift;
$self->configure('-appicon' => $self->Pixmap(-file=>$_[0]));

}

package main;

#my $mw = MainWindow->new(-appiconfile => 'logo.xpm');
my $mw = MainWindow->new(-appicondata => $logo);
$mw->Toplevel();

$mw->MessageBox(-parent => $mw,
-font => 'Helvetica 11',
-message => 'a message');
MainLoop;
#Kein Kommentar
 2007-11-04 13:54
#101823 #101823
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
danke, werd ich ausprobieren
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
<< >> 7 Einträge, 1 Seite



View all threads created 2007-11-03 16:50.