2015-08-30 2 views
-2

Что не так с моим приложением?AttributeError: объект не имеет атрибута 'box'

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' 

Пожалуйста, помогите мне решить эту проблему. Прошу прощения, если этот вопрос глупо, я все еще новичок.

+0

Ваш отступы правильно? Похоже, что большинство из того, что я ожидаю, должно быть телом '__init__', слишком сильно отступали и были бы частью определения класса вместо –

+0

Мне пришлось исправить отступы, но после этого появилась ошибка, которую вы описываете. Ниже строки, где вы 'setGeometry()' существует несколько строк, которые относятся к 'self.box'. Вы еще этого не определили. – user2027202827

+0

Почему вы импортируете tkinter и PyQt4? Вы не можете использовать эти два вместе. –

ответ

2
  1. Установить переменную до используя ее.
  2. Добавить виджет (frame) вместо его методов (frame.setFixedSize и т. Д.) В поле с помощью addWidget.

Правильный способ сделать это:

self.box = QtGui.QVBoxLayout() # Set self.box before using it. 
self.box.addWidget(frame) 
Смежные вопросы