Thread GUI Prima: Probleme mit der Event Loop bei mehreren toplevel Windows (5 answers)
Opened by docsnyder at 2020-03-29 16:05

haj
 2020-03-29 20:59
#191665 #191665
User since
2015-01-07
527 Artikel
BenutzerIn

user image
Mit Prima habe ich keine Erfahrung, deshalb wäre da ein Code-Beispiel wirklich interessant gewesen, oder die Information, welche Plattform Du verwendest. Die Prima-Fenster werden nämlich laut Dokumentation vom Window-Manager des Systems verwaltet

Aus alter Erinnerung: Es kann sein, dass bestimmte Window-Manager Redraw-Events nicht verarbeiten, wenn sie nicht das Fenster betreffen, das aktuell den Fokus hat. Ich kann's aber nicht mit meinen Testsystemen/Window Managern reproduzieren (Linux mit Gnome 3 oder MATE-Metacity, Windows 10 mit Strawberry Perl).

Folgendes Programm habe ich benutzt:
Code (perl): (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
use Prima qw/Buttons Label Application/;

my $main = Prima::MainWindow->new(
    text => 'Hello world'
);

my $label = $main->insert( 'Prima::Label',
                           text      => 'Text Text Text',
                           pack => {},
                       );

my $window = Prima::Window->create(
    size => [ 100, 100 ]
);

my $button = $window->insert('Prima::Button',
                             text => 'Click me',
                             pack => {},
                             onClick => sub {
                                 $label->set(text => 'Toxt Toxt Toxt');
                             }
                            );

run Prima;

Wenn ich im Fenster auf den Button klicke, dann ändert sich der Text im Label wie gewünscht, obwohl das Hauptfenster nicht den Fokus hat. Wie man Tool-Tips mit Prima baut, habe ich auf die Schnelle nicht rausgefunden. Also: "Bei mir geht's"!

View full thread GUI Prima: Probleme mit der Event Loop bei mehreren toplevel Windows