2016-07-14 188 views
0

這是我正在使用的代碼和按鈕不顯示,它只顯示一個空白窗口。控制檯中沒有錯誤。PyQt5 PushButton not showing

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

嘗試父參數傳遞給構造函數的窗口。父參數使按鈕由Qt所有,而不是PyQt。 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()