Forum: PC-Programmierung Programm ohne Fenster/Titelliste


von Lukas G. (lukas88)


Lesenswert?

Ich suche für mein Projekt eine Möglichkeit, die Fenster/Titelliste 
eines Programms zu entfernen/verstecken.

Es geht darum ein "Information Desk" zu gestalten. Also ein Display das 
diverse Informationen wie Wettervorhersage, Aktuelle Nachrichten , ect 
Anzeigt.

Realisiert wird das mit einem Rasperry-pi und einem 10.1-inch 
WideScreen.

Als Test werde ich eine Website erstellen und sie dann im Vollbildmodus 
Anzeigen. In HTML und JS kein Problem, aber ich würde das gerne mit 
einer "echten" Programmiersprache realisieren, und eine Programm 
schreiben.

Inwiefern ist das in Python/Java realisierbar?

mfg lukas88

von --- (Gast)


Lesenswert?

Du musst dich erstmal entscheiden, mit was du dein GUI erstellen willst. 
QT, TK, GTK, wxWidgets, ...
Dann kannst du gezielt nach Fenstern ohne Rahmen und Titelleiste suchen.

von Dennis S. (eltio)


Lesenswert?

Python und Java sind ja erstmal "nur" Programmiersprachen. Es ist für 
die Erstellung einer GUI zu empfehlen ein passendes Framework zu nutzen. 
Für Python ist eine von vielen Möglichkeiten pyQt:
http://www.qtcentre.org/threads/22451-How-to-create-an-application-without-title-bar-and-border

Unter Java kommt (meines Wissens nach) in der Regel Swing zum Einsatz. 
Auch hier wirst du den Fenstertyp / das Aussehen konfigurieren können.

Also Antwort auf deine Frage: klar geht das!

Gruß
Dennis

von Fritz G. (fritzg)


Lesenswert?

Das Fenster hat nichts mit dem Programm zu tun, das hat keinen Einfluss 
darauf. Das Fenster malt der Window-Manager. Ich nehme an, auf dem Pi 
läuft ein X-Server, den kannst du "nackt" starten, dann gibt es keine 
Fenster.
Dazu den Grafischen Modus beenden und einfach "X :0" starten.
In einem anderen Terminal "export DISPLAY=:0" eingeben.
Danach von dort aus den Browser oder andere Programme starten.
Du kannst dort allerdings das Fenster nicht mehr mit der Maus 
verschieben.

Lies dich dazu zum Thema "X-Window System" ein.

von Fritz G. (fritzg)


Lesenswert?

Dennis S. schrieb:
> Unter Java kommt (meines Wissens nach) in der Regel Swing zum Einsatz.
> Auch hier wirst du den Fenstertyp / das Aussehen konfigurieren können.

Nein.

von Dennis S. (eltio)


Lesenswert?

Fritz G. schrieb:
> Dennis S. schrieb:
>> Unter Java kommt (meines Wissens nach) in der Regel Swing zum Einsatz.
>> Auch hier wirst du den Fenstertyp / das Aussehen konfigurieren können.
>
> Nein.

Tja.. eine starke Behauptung ist immer besser als ein schwaches 
Argument?

: Bearbeitet durch User
von Fritz G. (fritzg)


Lesenswert?

Siehe mein Beitrag oberhalb.

von Lukas G. (lukas88)


Lesenswert?

Am liebsten mit Python & TK

von Garantiert ungiftige Schlange (Gast)


Lesenswert?

Zunächst mal wäre es wichtig zu wissen, ob tatsächlich ein Fenster ohne 
Window-Manager-Dekoration gewünscht ist oder ob die Anwendung vielleicht 
nicht doch eher im Vollbild laufen soll.

von Lukas G. (lukas88)


Lesenswert?

Im Vollbildmodus oder ohne Fensterdekoration ist mir grundsätzlich egal, 
ich will auf dem Infodesk einfach keine sehen...

von Borislav B. (boris_b)


Lesenswert?

Warum nimmst du nicht HTML/JS als GUI-Frontend?

Ich mache grad ein ziemlich ähnliches Projekt (auch ein Info-Display). 
Dafür benutze ich C# + Mono als Backend und HTML + JS als Frontend. 
Läuft auf meinem Pi ganz wunderherrlich ;-)

von Garantiert ungiftige Schlange (Gast)


Lesenswert?

Lukas G. schrieb:
> Im Vollbildmodus oder ohne Fensterdekoration ist mir grundsätzlich egal,
> ich will auf dem Infodesk einfach keine sehen...

Na, dann mach doch einfach das hier:

http://www.google.com/search?&q=tkinter+fullscreen+mode
--> Erstes Ergebnis, zweite Antwort.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Fritz G. schrieb:
> Dennis S. schrieb:
>> Unter Java kommt (meines Wissens nach) in der Regel Swing zum Einsatz.
>> Auch hier wirst du den Fenstertyp / das Aussehen konfigurieren können.
>
> Nein.

Meine Güte, in Java ist das eine der einfachsten Übungen:
1
JFrame.setUndecorated(true)

Geerbt von Frame:

https://docs.oracle.com/javase/8/docs/api/javax/swing/JFrame.html
https://docs.oracle.com/javase/8/docs/api/java/awt/Frame.html#setUndecorated-boolean-

: Bearbeitet durch User
von Sven B. (scummos)


Lesenswert?

--- schrieb:
> Du musst dich erstmal entscheiden, mit was du dein GUI erstellen willst.
> QT, TK, GTK, wxWidgets, ...
> Dann kannst du gezielt nach Fenstern ohne Rahmen und Titelleiste suchen.

Diese Antwort ist m.E. ziemlich falsch, denn unter X11 entscheidet der 
Fenstermanager, ob das Fenster einen Titel oder einen Rahmen hat, und 
nicht das Fenster. Das Fenster kann höchstens einen WM-Hint angeben, den 
der Fenstermanager meistens beachten wird.

Im Endeffekt nimm also irgendeinen Fenstermanager, der das kann, und 
setze die nötigen Hints (die jedes vernünftige Toolkit haben wird) und 
alles ist gut.

von Fritz G. (fritzg)


Lesenswert?

Hannes J. schrieb:
> Meine Güte, in Java ist das eine der einfachsten Übungen:
> JFrame.setUndecorated(true)

Wenn es der Fenstermanager zulässt. Dann bleibt meist noch die 
Menüleiste über.
Wenn er Fullscreen bzw. eine Kioskanwendung will, wozu dann einen 
Fenstermanager starten?

von Rolf M. (rmagnus)


Lesenswert?

Sven B. schrieb:
>> Du musst dich erstmal entscheiden, mit was du dein GUI erstellen willst.
>> QT, TK, GTK, wxWidgets, ...
>> Dann kannst du gezielt nach Fenstern ohne Rahmen und Titelleiste suchen.
>
> Diese Antwort ist m.E. ziemlich falsch, denn unter X11 entscheidet der
> Fenstermanager, ob das Fenster einen Titel oder einen Rahmen hat, und
> nicht das Fenster. Das Fenster kann höchstens einen WM-Hint angeben, den
> der Fenstermanager meistens beachten wird.

Richtig, und wie das gemacht wird, hängt eben vom Toolkit ab. Deshalb 
ist es wichtig zu wissen, welches das ist. Bei Qt müsste man z.B. bei 
den Widget-Flags Qt::FramelessWindowHint angeben.

von Lukas G. (lukas88)


Lesenswert?

Boris P. schrieb:
> Warum nimmst du nicht HTML/JS als GUI-Frontend?
>

Hab ich ja auch vor, als Prototyp. Aber auf längere Sicht, ist mir eine 
richtige Anwendung lieber, da ich in Zukunft auch Sensoren die am 
Rasperry  angeschlossen sind, auslesen möchte. Geht mit HTML/JS zwar 
über Umwege auch, aber macht es auch anfälliger auf Fehler/Störungen. Da 
geh ich Lieber den direkten weg.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.