2017-01-23 11 views
0

Очень застрял здесь, я пытаюсь научиться использовать классы и просто хочу показать кнопку в окне, когда кнопка находится в другом классе. Вот код, который я пытаюсь использовать:PyQt, используя классы, чтобы показать кнопку

#!/usr/bin/python3 

import sys 
from PyQt4 import QtGui, QtCore 

class Window(QtGui.QDialog): 

    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setGeometry(0, 0, 800, 600) 
     main_menu = Menu() 

     self.show() 

class Menu(QtGui.QWidget): 

    def __init__(self): 
     btn = QtGui.QPushButton("Quit") 
     btn.resize(btn.sizeHint()) 
     btn.move(100,100) 
     btn.show() 
     print("Hello I am a menu") 




def main(): 
    app = QtGui.QApplication(sys.argv) 
    main_window = Window() 

    sys.exit(app.exec()) 


if __name__ == "__main__": 
    main() 

Это работает до сих пор, как я получаю окно, но нет кнопки на нем, Howerver печати сообщения я помещал в работах. Что я делаю неправильно?

+0

не возиться с кнопками в других классах. – furas

+0

изменить на 'sys.exit (app.exec _())' – answerSeeker

ответ

1

Вы должны инициализировать родительский класс в Menu, в дополнение к передаче родительского элемента этому классу и кнопке.

import sys 
from PyQt4 import QtGui, QtCore 

class Window(QtGui.QDialog): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setGeometry(0, 0, 800, 600) 
     main_menu = Menu(self) 
     self.show() 

class Menu(QtGui.QWidget): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     btn = QtGui.QPushButton("Quit", self) 
     btn.resize(btn.sizeHint()) 
     btn.move(100,100) 
     print("Hello I am a menu") 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    main_window = Window() 

    sys.exit(app.exec_()) 


if __name__ == "__main__": 
    main() 

enter image description here

+0

'sys.exit (app.exec _())' вместо – answerSeeker

+0

@answerSeeker спасибо – eyllanesc

+0

eyllanesc, без проблем. – answerSeeker