【发布时间】:2018-03-12 19:58:25
【问题描述】:
所以我想知道如何创建一个小部件的子类 例如,如果我想创建一个从 QtWidgets.QPushButton 继承的方法和属性的小部件,但是我会在此之上创建额外的方法和属性。
class Coord(QtWidgets.QPushButton):
def __init__(self):
super(Coord, self).__init__()
self.coordinates = []
#basically adding attributes to the object "QPushButton"
def set_text(self,text):
self.setText(text)
chrcount = 100 / len(text)
self.setStyleSheet("font-size: {}".format(chrcount))
#This will set the text of the button, yet will resize it appropriatly
这是一个例子。但是,它将“按钮”小部件创建为新窗口。我想知道如何让它像 QPushButton 一样工作,只是加上我想添加的额外功能
编辑:固定- 从
替换了我的“超级”功能def __init__(self):
super(Coord, self).__init__()
到
def __init__(self,parent):
super(Coord, self).__init__(parent)
真的不知道这是怎么解决的,但是嘿嘿!
【问题讨论】:
-
我正准备回答你的问题。 Qt 中的对象需要父对象。我建议查看 QObject 的文档,也可能还有 Layout API 概述。
-
我知道我错过了一些东西,因为 QtWidgets.QPushButtin(self) 和 Coord() 缺乏“自我”之间的区别
-
@TomBell 您的问题对于其他人来说是无法解决的,因为您没有显示生成该问题的上下文,因此它属于题外话“为什么此代码不起作用?”,仅您能够解决它,因为您拥有重现错误所需的代码,我们没有。我建议对于下一个问题阅读How to Ask,并在必要时提供minimal reproducible example