2016-07-14 21 views
0

これは私が使用しているコードです。ボタンは表示されず、空白のウィンドウしか表示されません。コンソールにエラーはありません。PyQt5 PushButtonが表示されない

from PyQt5 import QtWidgets 
from PyQt5.QtWidgets import * 


import sys 

def start(): 
    app = QApplication(sys.argv) 
    w = QWidget() 
    w.resize(128,102) 
    w.move(0, 0) 
    w.setWindowTitle('Simple') 
    btn = QtWidgets.QPushButton("Hi") 
    btn.move(50, 50) 
    btn.resize(btn.sizeHint()) 
    w.show() 

    sys.exit(app.exec_()) 

start() 

これは pic

答えて

3

は、コンストラクタに親引数を渡す試してみてください表示するウィンドウです。親の引数は、ボタンがPyQtではなくQtによって所有されるようにします。 btn = QtWidgets.QPushButton("Hi", w)が動作するはずです。

+0

を通じてbuttonに親として割り当てられています。私はPyQtが初めてです。 – silentcallz

0

あなたが示すことにしたい任意のウィジェットは、あなたがそれをに表示するウィジェットに、直接または間接的に、親にする必要があります。

これを行うための一般的な方法は、レイアウトウィジェットを割り当て、追加することです他のウィジェットやサブレイアウトを表示できます。この例では

widget = QtWidgets.QWidget() 
button = QtWidgets.QPushButton('Hi') 
layout = QtWidgets.QVBoxLayout(widget) # Parents layout to widget 
layout.addWidget(button) 
widget.show() 

widgetを間接的にありがとうございlayout

0
from PyQt5 import QtWidgets 
from PyQt5.QtWidgets import * 


import sys 

def start(): 
    app  = QApplication(sys.argv) 
    w  = QWidget() 
    w.resize(128,102) 
    w.move(0, 0) 
    w.setWindowTitle('Simple') 

    btn = QtWidgets.QPushButton (w) 
    btn.move(50, 50) 
    btn.resize(btn.sizeHint()) 
    btn.setText ('Hi') 

    w.show() 

    sys.exit(app.exec_()) 

start() 
関連する問題