【发布时间】:2018-03-07 15:09:38
【问题描述】:
我的一个小项目使用 PyQt5 出现了一个小问题。我尝试将随机 QWidget(在本例中为 QPushbutton)添加到自定义 QWidget。但是,我不理解“setParent”函数的行为。当我在自定义 QWidget 之外使用它时,会显示 QPushButton。当我在自定义 Widget 的声明函数中使用它时,QPushButton 被遮挡,除了添加布局(我不想要)之外,我没有机会显示它。这里是源代码示例:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class customWidget(QWidget):
def __init__(self):
super().__init__()
self.addButton()
def addButton(self):
button = QPushButton('not_showing')
button.setParent(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
button = QPushButton('showing')
button.setParent(w)
button.move(50,50)
w.resize(600,600)
w.move(1000,300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
在QPushButton初始化过程中添加父级时没有变化。
【问题讨论】:
-
您的示例有效,因为我在 main 中创建了一个 customWidget 对象,您可以在使用 customWidget 的地方发布您尝试过的代码。不创建对象的类永远不会被调用