Python mpylayer、PyQt4和lineEdit
考虑下面的最小示例。在我取消注释以下行之前,它工作得非常好:Python mpylayer、PyQt4和lineEdit,python,pyqt4,mplayer,Python,Pyqt4,Mplayer,考虑下面的最小示例。在我取消注释以下行之前,它工作得非常好: # self.mainwi = QtGui.QWidget(self) # self.lineEdit1 = QtGui.QLineEdit(self.mainwi) # self.setCentralWidget(self.lineEdit1) 如果这些行没有注释,我可以在LineEdit字段中写入文本,但按钮不会做出反应。知道有什么问题吗,怎么解决 我应该补充一点,我是python编程的绝对初学者 #!/usr/bin/pyth
# self.mainwi = QtGui.QWidget(self)
# self.lineEdit1 = QtGui.QLineEdit(self.mainwi)
# self.setCentralWidget(self.lineEdit1)
如果这些行没有注释,我可以在LineEdit字段中写入文本,但按钮不会做出反应。知道有什么问题吗,怎么解决
我应该补充一点,我是python编程的绝对初学者
#!/usr/bin/python
import mpylayer
import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
class DmplayerGUI(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.dirty = False
self.mp = mpylayer.MPlayerControl()
#Toolbar
## items
### Play
self.play = QtGui.QAction(QtGui.QIcon('icons/play_32.png'), 'Play', self)
self.play.setShortcut('Ctrl+A')
self.connect(self.play, QtCore.SIGNAL('triggered()'), self.DPlay)
### Pause
self.pause = QtGui.QAction(QtGui.QIcon('icons/pause_32.png'), 'Pause', self)
self.pause.setShortcut('Ctrl+P')
self.connect(self.pause, QtCore.SIGNAL('triggered()'), self.DPause)
## toolbar
self.toolbar = self.addToolBar('Toolbar')
self.toolbar.addAction(self.play)
self.toolbar.addAction(self.pause)
# self.mainwi = QtGui.QWidget(self)
# self.lineEdit1 = QtGui.QLineEdit(self.mainwi)
# self.setCentralWidget(self.lineEdit1)
# play
def DPlay(self):
self.mp.loadfile('video.mp4')
# pause
def DPause(self):
self.mp.pause(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
dp = DmplayerGUI()
dp.show()
sys.exit(app.exec_())
在这个简单的示例中,您根本不需要mainwi。照办
self.lineEdit1 = QtGui.QLineEdit(self)
self.setCentralWidget(self.lineEdit1)
如果您真的想要它,那么您需要将mainwi设置为centralwidget
self.mainwi = QtGui.QWidget(self)
self.lineEdit1 = QtGui.QLineEdit(self.mainwi)
self.setCentralWidget(self.mainwi)
不要忘记为mainwi添加一些布局,因为这看起来很难看:-)
无论如何,我必须承认,我不知道为什么它会“禁用”按钮。但据我所知,中心小部件必须是窗口的子部件。为什么不将您的
self.mainwi
设置为您的中心小部件?@dex19dt我认为这绝对是初学者的错误:-)谢谢!虽然知道为什么它会禁用这些按钮会很有趣,但我知道如何正确操作就足够了。