PySide QLineEdit没有出现

时间:2014-03-05 02:33:23

标签: python user-interface alignment pyside qlineedit

我正在学习PySide,似乎无法显示QLineEdit。我最好的猜测是因为QTextEdit被设置为主要小部件并且正在掩盖它。这是我的代码:

#!/usr/bin/python

import sys
from PySide import QtGui

class Window(QtGui.QMainWindow):
  def __init__(self):
    super(Window, self).__init__()
    self.initUI()

  def initUI(self):
    self.setWindowTitle("A Text Editor")
    self.setGeometry(300,1000,500,500)
    self.fileName = QtGui.QLineEdit('File Name')    
    self.fileName.resize(self.fileName.sizeHint())

    self.text = QtGui.QTextEdit()
    self.setCentralWidget(self.text)

    menubar = self.menuBar()
    exitAction = QtGui.QAction(QtGui.QIcon('exit.png'),'&Exit',self)
    exitAction.setShortcut('Ctrl+Q')
    exitAction.triggered.connect(self.close)
    saveAction = QtGui.QAction(QtGui.QIcon('save.png'),'&Save',self)
    saveAction.setShortcut('Ctrl+S')
    saveAction.triggered.connect(self.save)

    fileMenu = menubar.addMenu('&File')
    fileMenu.addAction(exitAction)
    fileMenu.addAction(saveAction)
    self.show()

  def save(self):
    f = open(self.fileName.text(),'w')
    f.write(self.text.toPlainText())
    f.close()

def main():
  app = QtGui.QApplication(sys.argv)
  win = Window()
  exit(app.exec_())

if __name__ == "__main__":
  main()

1 个答案:

答案 0 :(得分:0)

您将要设置一个具有某种布局形式的中央窗口小部件,以使它们都显示出来。

类似的东西:

layout = QtGui.QVBoxLayout()
layout.addWidget(self.fileName)
layout.addWidget(self.text)
centralWidget = QtGui.QWidget()
centralWidget.setLayout(layout)
self.setCentralWidget(centralWidget)