[PyQt] using xembed with pyqt/pykde
Henning Schröder
henning.schroeder at gmail.com
Wed Jul 28 16:33:21 BST 2010
On Wed, Jul 28, 2010 at 4:17 PM, Aljoša Mohorović
<aljosa.mohorovic at gmail.com> wrote:
> anybody using xembed with pyqt?
>
> Aljosa
>
I used QX11EmbedContainer to embed a terminal in PyQt. I don't know if
gvim could be used in a similar way.
Henning
# ----------------------------------------------------------------------------
# -*- coding: utf-8 -*-
import atexit
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class XTerm(QX11EmbedContainer):
def __init__(self, parent, xterm_cmd="xterm"):
QX11EmbedContainer.__init__(self, parent)
self.xterm_cmd = xterm_cmd
self.process = QProcess(self)
self.connect(self.process,
SIGNAL("finished(int, QProcess::ExitStatus)"),
self.on_term_close)
atexit.register(self.kill)
def kill(self):
self.process.kill()
self.process.waitForFinished()
def sizeHint(self):
size = QSize(400, 300)
return size.expandedTo(QApplication.globalStrut())
def show_term(self):
args = [
"-into",
str(self.winId()),
"-bg",
"#000000", # self.palette().color(QPalette.Background).name(),
"-fg",
"#f0f0f0", #self.palette().color(QPalette.Foreground).name(),
# border
"-b", "0",
"-w", "0",
# blink cursor
"-bc",
]
self.process.start(self.xterm_cmd, args)
if self.process.error() == QProcess.FailedToStart:
print "xterm not installed"
def on_term_close(self, exit_code, exit_status):
print "close", exit_code, exit_status
self.close()
More information about the PyQt
mailing list