import os
import sys
from PySide2 import QtCore, QtWidgets
class CustomRadioButton(QtWidgets.QRadioButton):
def hitButton(self, pos):
return self.rect().contains(pos)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
lay = QtWidgets.QVBoxLayout(w)
for i in range(4):
btn = QtWidgets.QRadioButton(f"QRadioButton-{i}")
lay.addWidget(btn)
for j in range(4):
btn = CustomRadioButton(f"CustomRadioButton-{i}")
lay.addWidget(btn)
w.resize(640, 480)
w.show()
sys.exit(app.exec_())
从QAbstractButton继承的每个按钮(如QPushButton和QRadioButton)都必须实现^{} 方法,该方法指示位置是否改变按钮的状态。因此,在QPushButton的情况下,它将其所有几何体作为参考,而QRadioButton将文本+半径作为参考。解决方案是重写该方法,使其具有所需的行为:
相关问题 更多 >
编程相关推荐