Heb de source online gezet:
http://download.dvdmeer.nl/python-randr/python-randr-0.0.2.tar.gzWat doet dit progje: een simpele gui met een paar buttons, elk van die button voert een shell command uit.
Als ik bijvoorbeeld op de button LCD + TV klik, dan krijg ik mijn laptopbeeld op de tv in kleur. Dit gebeurd bij mij namelijk niet standaard. En om telkens nou commando's of shell scriptjes te draaien.. daarom voor het gemak dit progje gemaakt.
Op 1 functie na gebeurd alles nu via QProcess.
Het gene waar ik nog os.popen gebruik is hier:
[EDIT]: heb het op kunnen lossen daar dit in de dependencies te zetten in het CONTROL bestand. Dus deze functie zal uit het programma verdwijnen.. maar ik laat het nog even staan, omdat ik nog wel wil weten hoe dit opgelost zou kunnen worden.[/EDIT]
# check which version is running
def getRandR(self):
self.version = os.popen('xrandr -v').readline()
self.version = self.version.split(None)[4]
return self.version
Het is me niet gelukt om dit werkend met QProcess te krijgen. Zowel QProcess.start als .execute uitgevoerd, maar ik krijg simpel weg niet de output binnen...
En over die QProcess, waar ik het nu gebruik:
# LCD and TV
def LcdTv(self):
self.command = "xrandr --output TV --set TV_FORMAT PAL --output LVDS --mode 1024x768 --output TV --auto --output VGA --off"
self.qproc = QProcess(self)
self.qproc.setProcessChannelMode(QProcess.MergedChannels)
self.qproc.start(QString.fromUtf8(str(self.command)))
Dit werkt allemaal prima, maar doe ik dit zo op de goede manier. Moet ik QProcess niet afsluiten? Had dit zelf al geprobeerd middels QProcess.close() maar als ik dat doe werkt geen enkele functie meer.
Ik hoop dat je het een beetje begrijpt, en wat uitleg kan geven?
(btw, heb vidiqatch er naast gehouden.. en tijdelijk een paar icons daar van gebruikt)