Fenstergröße webbrowser

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

Hallo,

Anfängerfrage Python 3.5.2

wie kann man mehrere Internet-Seiten nebeneinander auf dem Bildschirm anordnen, die mit webbrowser.open() geöffnet werden?
Bisher öffnet jeder open() Befehl ein maximales Fenster über den ganzen Bildschirm.
Wie bekommt man eine Referenz zu den Fenstern und dann so etwas wie .position() und .size().

Danke für jeden Hinweis!
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hat du mal in die Dokumentation geschaut?

https://docs.python.org/2/library/webbr ... owser.open
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

Ja, und weil ich dort und in meinen 3 Python-Büchern nichts gefunden habe, frage ich hier.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ich würde sagen: ootb gar nicht. Das webbrowser-Modul ruft ja "nur" den Default-Browser mit einer URL auf. Mehr nicht, damit ist keine Fernsteuerung oder so was möglich.

Was hast du denn vor und welches Betriebssystem benutzt du?

Gruß,
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Rolfi56: Die Python-Dokumentation ist ziemlich gut. Und wenn da für eine Funktion steht was die macht, und bei vielen Argumenten nach dem Effekt auch noch eine „if possible“-Einschränkung steht, also das was sie macht nicht immer und überall funktioniert, sondern das alles nur Versuche sind, dann solltest Du nicht auch noch erwarten, dass das Modul noch mehr kann als das bisschen was da wirklich dokumentiert ist.

Das was Du willst geht mit dem Modul nicht.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

Danke für die Antworten!

@noisefloor Mein OS ist Ubuntu 16.04 LTS 64 bit.

Meine Python-Anfänger-Frage:
Wenn das Modul webbrowser so etwas nicht leistet, muß man dann umständlich durch Simulation von Mausbewegungen die Fenster manipulieren oder gibt es da eine einfachere Möglichkeit?
Zuletzt geändert von Rolfi56 am Sonntag 9. Dezember 2018, 20:42, insgesamt 1-mal geändert.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

@ThomasL, danke für den Hinweis auf Ubuntu-Fenstermanager, aber ich möchte mit einem Python-Programm (!) drei Webseiten aufrufen und diese nebeneinander auf dem Bildschirm sehen.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Rolfi56: Dazu musst Du die in Webbrowser-Fenster starten und dem Fenstermanager sagen, das die nebeneinander dargestellt werden sollen. Wobei die Wiki-Seite vielleicht schon ein grundlegendes Problem erahnen lässt: Es gibt nicht *den* Fenstermanager und vieles was einem Fenstermanager sagen kann, darf der als netten Hinweis ansehen, den er befolgen kann, oder eben auch nicht. So ganz allgemein gesprochen kann das also sogar unmöglich sein was Du haben möchtest. So wirklich Kontrolle hat man immer nur innerhalb eines Fensters, weil da tatsächlich der eigene Code bestimmen kann was dort wie angezeigt wird.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Welcher Browser wird denn genutzt? Chrome kennt z.B. die Kommandozeilen-Argumente --window-position und --window-size. Da kann man entsprechende Werte angeben, siehe https://www.ghacks.net/2013/10/06/list- ... -switches/

Sofern du dort nur durch Ausprobieren fixe Werte eintragen willst, dann bedenke dass die dann auch nur für genau diese Bildschirmgröße und Auflösung funktionieren. An einem anderen Rechner kann das schon wieder ganz anders aussehen. Wir kennen ja den näheren Hintergrund nicht...
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

@__blackjack__, danke für Deinen Hinweis. Als Python-Anfänger fühle ich mich überfordert.

"Dazu musst Du die in Webbrowser-Fenster starten und dem Fenstermanager sagen, das die nebeneinander dargestellt werden sollen."
Genau. Und wie macht man das in Python?

Irgendwie finde ich nur Anleitungen, wie man ein neues Fenster erstellt und dann manipuliert, aber nicht, wie man den Bezug zu genau dem Fenster herstellt, das webbrowser gerade geöffnet hat.

@snafu
Firefox 63.0.3

Hinweis: Ich arbeite mich gerade ein in
https://automatetheboringstuff.com/chapter11/
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Plan B: GUI mit Qt Schreiben und drei QtWebEngine Widgets nebeneinander platzieren. Dann hast du die volle Kontrolle.

Und nochmal, obwohl es schon gesagt wurde: das was du vorhast, ist _einfach_ mit Python (und anderen Programmiersprachen) _nicht_ machbar. Du kannst mit Python nicht auto-magisch den Desktop deines Betriebssystems manipulieren und automatisieren.

Gruß, noisefloor
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

@noisefloor

Danke!

Erstaunlich, aber herzlichen Dank für diese klare Aussage, die mir viel Mühe und Zeit erspart!
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

Daß man sich mehrere Internetseiten nebeneinander (!) auf dem Bildschirm anschaut, hätte ich für eine häufig vorkommende Anwendung gehalten.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mag sein. Finde ich ehrlich gesagt überhaupt nicht, es gibt eine guten Grund, warum Browser tabs haben. Und wenn es das wäre, wie sähe das denn aus? Welches Verhältnis ein breite und Höhe, wo platziert, was passiert wenn man ein Fenster bewegt? Das ist alles längst nicht so trivial wie du dir das denkst.

Aber unabhängig von unseren Meinungen dazu: es gibt keine standardisierten Schnittstellen für die Ausrichtung von Fenstern. Im allgemeinen, und im besonderen nicht bei Browsern. Wer sowas will, der muss es sich eben programmieren. Entweder IM Browser, zb durch JavaScript und iframes. Oder wie von noisefloor schon angesprochen hat per WebView in Qt. Oder man benutzt die APIs der entsprechenden windowmanager. Das ist aber alles keine leichte Kost. Niemand hat gesagt es geht nicht. Ist halt nur schwer und nicht schön bequem eingebaut. Wenn du das willst, dann schlau dich auf und guck in die win32 API. https://stackoverflow.com/questions/692 ... indows-api
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Die Win32-API wird unter Linux nicht so viel nützen. Rolfi56 hat weiter oben Ubuntu als Betriebssystem angegeben.

@Rolfi56: Also ich habe schon öfter mal den Anwendungsfall gehabt zwei Dokumente nebeneinander/parallel lesen/durchgehen zu müssen. Dafür habe ich mich dann aber einfach bei den Möglichkeiten meiner Fensterverwaltung und den Tastaturkürzeln dafür bedient. Bei KDE kann man beispielsweise mit <Meta>+<Cursor links> beziehungsweise <Meta>+<Cursor rechts> das aktuelle Fenster nicht auf den gesamten Bildschirm, sondern auf die gesamte linke oder rechte Hälfte ”maximieren”. Womit man sehr schnell beliebige zwei Fenster auf dem Bildschirm nebeneinander hinbekommt. Ähnliches geht bei anderen Fensterverwaltungen sicher auch irgendwie. Aber das ist halt überall etwas unterschiedlich und deshalb schlecht von einem Programm aus für beliebige Zielsysteme steuerbar.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Rolfi56
User
Beiträge: 24
Registriert: Donnerstag 18. Oktober 2018, 10:07

__deets__ hat geschrieben: Montag 10. Dezember 2018, 00:02 Das ist alles längst nicht so trivial wie du dir das denkst.
__deets__: Damit hast Du wohl Recht. Als Anfänger habe ich offenbar falsche Vorstellungen. Danke für den Hinweis!
Antworten