2013-05-17 3 views
1

У меня проблема с QFrame в PyQt4 Python2.7.
Когда я показываю QLineEdit, Qframe self.videoframeRemote не нарисован.
Если я удалю QlineEdit, он будет нарисован.
Я не могу найти, что происходит не так. Вот код:QFrame не нарисовано

class Player(QtGui.QMainWindow): 
def __init__(self, master=None): 
    QtGui.QMainWindow.__init__(self, master) 
    self.setWindowTitle("Media Player") 

    self.instance1 = vlc.Instance() 
    self.instance2 = vlc.Instance() 

    self.mediaplayerLocal = self.instance1.media_player_new() 
    self.mediaplayerRemote = self.instance2.media_player_new() 

    self.createUI() 
    self.isPaused = False 
    self.OpenWebCamMic() 

def createUI(self): 
    self.widget = QtGui.QWidget(self) 
    self.setCentralWidget(self.widget) 

    self.vboxlayout = QtGui.QVBoxLayout() 
    self.hboxlayout = QtGui.QHBoxLayout() 

    # In this widget, the video will be drawn 
    self.videoframeLocal = QtGui.QFrame()   
    self.palette1 = self.videoframeLocal.palette() 
    self.palette1.setColor (QtGui.QPalette.Window, QtGui.QColor(0,0,0)) 

    self.videoframeRemote = QtGui.QFrame()   
    self.palette2 = self.videoframeRemote.palette() 
    self.palette2.setColor (QtGui.QPalette.Window, QtGui.QColor(0,0,0)) 

    self.videoframeLocal.setPalette(self.palette1) 
    self.videoframeLocal.setAutoFillBackground(True) 
    self.videoframeLocal.setMaximumSize(160, 120) 
    self.vboxlayout.addWidget(self.videoframeLocal) 

    self.URIbox = QtGui.QLineEdit("type SIP URI here") 
    self.URIbox.setMaximumSize(160, 30) 
    self.vboxlayout.addWidget(self.URIbox) 

    self.callButton = QtGui.QPushButton("Call") 
    self.callButton.setMaximumSize(160, 30) 
    self.vboxlayout.addWidget(self.callButton) 
    self.connect(self.callButton, QtCore.SIGNAL("clicked()"), self.establishCall) 

    self.byeButton = QtGui.QPushButton("Bye") 
    self.byeButton.setMaximumSize(160, 30) 
    self.vboxlayout.addWidget(self.byeButton) 
    self.connect(self.byeButton, QtCore.SIGNAL("clicked()"), self.Bye)   

    self.hboxlayout.addLayout(self.vboxlayout) 

    self.videoframeRemote.setPalette(self.palette2) 
    self.videoframeRemote.setAutoFillBackground(True) 
    self.videoframeRemote.setMaximumSize(640, 480) 
    self.hboxlayout.addWidget(self.videoframeRemote)   

    self.widget.setLayout(self.hboxlayout) 

    self.timer = QtCore.QTimer(self) 
    self.timer.setInterval(200) 
    self.connect(self.timer, QtCore.SIGNAL("timeout()"), self.updateUI) 

Любые предложения?
С уважением,
Ск

+0

Вы пытались установить минимальный размер * для рамки? Возможно, кадр отображается, но это похоже на 1px большой ... – Bakuriu

+0

спасибо, что сделал. –

ответ

0

Спасибо Bakuriu,

добавление self.videoframeRemote.setMinimumSize(640, 480) сделал VideoFrame видно!

Смежные вопросы