Seite 1 von 1
Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 11:10
von danczi89
Hallo,
ich bin neu hier im Forum und Python Anfänger-Programmierer.
Ich habe folgende Frage:
Ich habe mit Python 3.3 ein kleines Programm geschrieben das eine Website in Fullscreen aufruft (hier z.b. Google)
Der Code:
Code: Alles auswählen
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
web = QWebView()
web.zoomFactor = 5
web.load(QUrl("http://www.google.at"))
web.showFullScreen()
sys.exit(app.exec_())
Ich will jetzt jedoch verhindern das der Text oder Bilder Markiert werden kann.
Da ich nämlich einen Touchscreen an meinen Raspberry angeschlossen habe, finde ich das dadurch die navigation extrem gestört wird.
Hat jemand einen Idee wie ich das in den Code integrieren kann?
Danke für die Hilfe,
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 11:40
von lunar
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 12:03
von danczi89
Danke, das ging aber schnell (ich suche schon 2 Tage und habe nichts gefunden)
Aber wie muss der Quellcode jetzt ausschauen damit das funktioniert?
Wenn ich jezt "body { -webkit-user-select: none; }" im Quellcode einfüge kommt ein syntax error.
Code: Alles auswählen
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
web = QWebView()
web.zoomFactor = 5
body { -webkit-user-select: none; }
web.load(QUrl("www.google.at"))
web.showFullScreen()
sys.exit(app.exec_())
sorry das ich nerve
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 12:52
von BlackJack
@danczi89: Das ist ja auch kein Python sondern CSS.
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 13:02
von danczi89
Stimmt, kann mann dann irgendwie anders den CSS Code in Python integerien? Ich kann das ja nicht in den Quellcode von der Website eintragen, da ich ja eine Website anzeigen will die ich ja gar nicht gebaut habe. Das ist einfach eine Website wo ein Wetter angezeit wird.
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 13:58
von BlackJack
@danczi89: Die `QWebSettings`-Klasse kennt eine Methode `setUserStyleSheetUrl()` die hier vielleicht interessant sein könnte.
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 14:27
von danczi89
Ja das ist ein sehr guter Tipp. Mein Quellecode schaut jetzt so aus:
Code: Alles auswählen
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("www.wetter.at"))
web.page.settings.setUserStyleSheetUrl(QUrl::fromLocalFile("mycss.css"));
web.showFullScreen()
sys.exit(app.exec_())
ich habe in meinem Verzeichnis eine datei erstellt die "mycss.css" heißt ein den Syntax: "body { -webkit-user-select: none; }" reinkopiert.
wenn ich jetzt das programm ausführe kommt aber wieder ein syntax fehler bei Qurl::
Das habe ich von dieser seite kopiert:
http://qt-project.org/forums/viewthread/1267
aber warum funktioniert das nicht?
Danke für eure Hilfe
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 14:43
von BlackJack
@danczi89: Vielleicht magst Du mal ein Python-Tutorial durcharbeiten. In der Dokumentation ist eines. Da wirst Du feststellen dass es ``::`` in der Python-Syntax nicht gibt. Das ist C++.

Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 14:54
von danczi89
Und wie schreibt man das in Python?
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 15:15
von danczi89
so schaut das zwar schon python ähnlicher aus, aber funktionieren tuts noch immer nicht
Code: Alles auswählen
web.page.settings.setUserStyleSheetUrl(QUrl.fromLocalFile("mycss.css"))
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 15:24
von BlackJack
@danczi89: Wenn man Funktionen oder Methoden *aufrufen* will, dann muss man das auch explizit tun und nicht einfach nur das Attribut referenzieren. Aufrufen geht mit Klammern wo die Argumente drin stehen.
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 15:36
von danczi89
ich schaffs nicht.
ich habe mir gerade ein python 3.3 buch gekauft.
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Dienstag 19. März 2013, 15:54
von BlackJack
@danczi89: Das `page`-Attribut vom `QWebView`-Exemplar ist eine Methode. Die muss man aufrufen, dann gibt sie das `QWebPage`-Exemplar für diese Ansicht zurück. Und das `settings`-Attribut auf dem Objekt ist auch wieder eine Methode, muss also auch aufgerufen werden um das `QWebSettings`-Objekt zu bekommen.
Allerdings könnte man die Einstellungen auch direkt von `QWebView`-Exemplar bekommen, das hat nämlich auch eine `settings()`-Methode.
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Mittwoch 20. März 2013, 11:58
von danczi89
Hallo,
das heißt dann müsste das so ausschauen:
Richtig?
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Mittwoch 20. März 2013, 12:08
von danczi89
nein das war auch nicht richtig.
Jetzt bekomme ich einen fehler wo steht "QWebView.settings(): too many arguments
Gruß,
Daniel
Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Mittwoch 20. März 2013, 12:20
von EyDu
Dokumentation zu lesen soll angeblich effizienter sein als Code zu raten. Nur so ein Hinweis

Re: Mit Qtwebview verhindern das Text ausgewählt werden kann
Verfasst: Mittwoch 20. März 2013, 12:52
von danczi89
Ich HABS!!
Danke, danke an alle!!
Code: Alles auswählen
web.settings().setUserStyleSheetUrl(QUrl.fromLocalFile("mycss.css"))
kann mein ein ziehen von bildern auch verhindern?
Gruß,
Daniel