gpt4 book ai didi

python - PyQt5 setText 按对象名称?

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:53 28 4
gpt4 key购买 nike

我有一个按钮网格,每个按钮都位于它自己的组框中。我想动态更新这些按钮的标签。

我不清楚如何在迭代中创建这些按钮后对其进行寻址,有没有办法只寻址它们的对象名称。

我读过的文档似乎没有包含任何通过对象名称设置文本的方法。这是可能的还是有更好的方法来做到这一点?

PyQt5、Python 3.6

最佳答案

如果您使用以下函数为小部件命名:

your_widget.setObjectName(your_name)

您可以通过 findChild 函数通过父级访问它:

your_parent_widget.findChild(name_class, your_name)

例子:

import sys

from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget


class Widget(QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent=parent)
self.verticalLayout = QVBoxLayout(self)
# self.verticalLayout.setObjectName("verticalLayout")
for i in range(10):
pushButton = QPushButton(self)
pushButton.setObjectName("pushButton{}".format(i))
pushButton.setText(str(i))
self.verticalLayout.addWidget(pushButton)

timer = QTimer(self)
timer.setInterval(1000)
timer.timeout.connect(self.updateText)
timer.start()

def updateText(self):
for i in range(10):
child = self.findChild(QPushButton, "pushButton{}".format(i))
counter = int(child.text())
child.setText(str(counter+1))


if __name__ == '__main__':
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())

关于python - PyQt5 setText 按对象名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42191391/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com