Wie machen die das in KSnapshot???

Alles rund um die Programmierung mit Qt
Antworten
gahre
Beiträge: 6
Registriert: 11. September 2007 20:49

Wie machen die das in KSnapshot???

Beitrag von gahre »

Hallo! Es dreht sich eigentlich nicht um ein Qt-Problem, da ich (ausnahmsweise ;) ) keine Qt-Anwendung programmieren will, sondern ein Plugin... Da jedoch KSnapshot in Qt programmiert ist, frage ich hier. Also:
In KSnapshot ist es möglich, einen Screenshot von nur einer "Region" in einem Fenster anzufertigen, und das unabhängig davon, ob Qt oder GTK oder sonstiges verwendet wird... Wie kann man per Mausklick auf ein Fenster die Dimensionen des Bereiches rausfinden, auf den man gerade geklickt hat? Handelt es sich hierbei um eine native xlib-Funktion? Oder gibt es da evtl sogar ein kleines Programm ähnlich xprop, das mir ähnliche Informationen ausspuckt?
(*g* Noch mehr: würde das dann auch ohne Mausklick funktionieren?)

Vielen Dank

Gahre
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

apt-get source ksnapshot
gahre
Beiträge: 6
Registriert: 11. September 2007 20:49

Beitrag von gahre »

Ach nee... Leider verfüge ich nicht über so viel Menschenverstand, um mich vorher nach source-packages umzusehen...
Das wollte ich eben vermeiden, da ich Fedora verwende und ksnapshot nur im Paket kdegraphics erhältlich ist und ich nicht alle quelltexte der pakete, die darin enthalten sind installieren wollte nur um diese Frage zu beantworten...
Wieso schreiben wir überhaupt Dokumentation, wenn soviel Quelltexte im Internet herumschwirren? Wäre das nicht alles viel einfacher??? (@upsala: IRONIIIIEEEE)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ein bischen suchen und schon findet man auch den Quelltext von KSnapshot...
http://websvn.kde.org/trunk/KDE/kdegraphics/ksnapshot/
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
gahre
Beiträge: 6
Registriert: 11. September 2007 20:49

Beitrag von gahre »

Sehr schön, merci, hab nur immer den von älteren Versionen gefunden
mollitz
Beiträge: 81
Registriert: 5. April 2007 10:55

Beitrag von mollitz »

QPixmap pm( QPixmap::grabWindow( QX11Info::appRootWindow(), x, y, w, h ) );

das sieht doch nicht schlecht aus, oder? (is aus der grabwindow.cpp)
gahre
Beiträge: 6
Registriert: 11. September 2007 20:49

Beitrag von gahre »

Ja, und vorher wird noch eine Liste von Dimensionen aller Fenster geholt und das kleinste Fenster gesucht, dass den Mauszeiger enthält - also scheinbar handelt es sich bei einer "Region" in einem Fenster um ein eigenes Fenster, bzw. "Unterfenster", und dessen Koordinaten werden dann in die von Dir benannte Funktion eingestetzt...

So hab ich das verstanden... *g*
Antworten