AttributeError:对象没有属性'box'

时间:2015-08-30 15:18:41

标签: python user-interface pyqt4

我的应用程序出了什么问题?

import sys
import time
import random
from tkinter import *
from PyQt4 import QtGui
from PyQt4 import QtCore
from PyQt4.QtGui import *

class WindowHello(QWidget):
    def __init__(self, parent = None):
        QWidget.__init__(self, parent)

    frame = QFrame()
    palette = QPalette()
    layout = QHBoxLayout()

    palette.setBrush(QPalette.Background,QBrush(QPixmap("First hello.gif")))
    frame.setFixedSize(450, 380)
    frame.setLayout(layout)
    frame.setPalette(palette)
    frame.show()

    self.setGeometry(650, 450, 450, 380)
    self.box.addWidget(frame.setBrush)
    self.box.addWidget(frame.setFixedSize)
    self.box.addWidget(frame.setLayout)
    self.box.addWidget(frame.setPalette)
    self.box = QtGui.QVBoxLayout()
    self.setLayout(self.box)

app = QtGui.QApplication(sys.argv)

op = WindowHello()
op.setWindowTitle('LangTIME')
op.setWindowIcon(QtGui.QIcon('Minilogowin.png'))
op.show()

sys.exit(app.exec_())

当我尝试运行此代码时,它显示错误:

AttributeError: 'WindowHello' object has no attribute 'box'

请帮我解决这个问题。 我很抱歉,如果这个问题很愚蠢,我还是新人。

1 个答案:

答案 0 :(得分:2)

  1. 使用
  2. 之前设置变量
  3. 使用frame将小部件(frame.setFixedSize)代替其方法(addWidget等)添加到框中。
  4. 正确的方法:

    self.box = QtGui.QVBoxLayout()   # Set self.box before using it.
    self.box.addWidget(frame)