Python QT5。使用循环调用qpushbuttons

发布于 2025-02-13 05:45:50 字数 1608 浏览 3 评论 0原文

我是初级QT用户。试图了解其工作原理。 我有多个qpushbutton。它们是在QT设计师中创建的。

    self.K2o = QtWidgets.QPushButton(self.gridLayoutWidget)
    self.K2o.setMinimumSize(QtCore.QSize(0, 40))
    self.K2o.setStyleSheet("background-color: rgb(255, 0, 58);")
    self.K2o.setCheckable(True)
    self.K2o.setObjectName("K2o")
    self.gridLayout.addWidget(self.K2o, 14, 1, 1, 1)
    self.A3o = QtWidgets.QPushButton(self.gridLayoutWidget)
    self.A3o.setMinimumSize(QtCore.QSize(0, 40))
    self.A3o.setStyleSheet("background-color: rgb(255, 0, 58);")
    self.A3o.setCheckable(True)
    self.A3o.setObjectName("A3o")
    self.gridLayout.addWidget(self.A3o, 13, 0, 1, 1)
    self.b33 = QtWidgets.QPushButton(self.gridLayoutWidget)
    self.b33.setMinimumSize(QtCore.QSize(0, 40))
    self.b33.setStyleSheet("background-color: rgb(122, 184, 255);")
    self.b33.setCheckable(True)
    self.b33.setObjectName("b33")
    self.gridLayout.addWidget(self.b33, 13, 12, 1, 1)

带有按钮的主窗口

它们都是可检查的。有时我需要用不同的按钮做相同的操作。在这种情况下,我如何使用循环。 例如,我想在下一个不使用此按钮上更改我的按钮的“检查状态”:

    self.AA.setChecked(False)
    self.KK.setChecked(False)
    self.QQ.setChecked(False)
    self.JJ.setChecked(False)
    self.TT.setChecked(False)
    self.b99.setChecked(False)
    self.b88.setChecked(False)
    self.b77.setChecked(False)
    self.b66.setChecked(False)
    self.b55.setChecked(False)
    self.b44.setChecked(False)
    self.b33.setChecked(False)
    self.b22.setChecked(False)

主要问题是如何使用其文本或对象名称调用按钮。

I'm a junior QT user. Trying to understand how it works.
I have multiple QPushButtons. They were created in a QT Designer.

    self.K2o = QtWidgets.QPushButton(self.gridLayoutWidget)
    self.K2o.setMinimumSize(QtCore.QSize(0, 40))
    self.K2o.setStyleSheet("background-color: rgb(255, 0, 58);")
    self.K2o.setCheckable(True)
    self.K2o.setObjectName("K2o")
    self.gridLayout.addWidget(self.K2o, 14, 1, 1, 1)
    self.A3o = QtWidgets.QPushButton(self.gridLayoutWidget)
    self.A3o.setMinimumSize(QtCore.QSize(0, 40))
    self.A3o.setStyleSheet("background-color: rgb(255, 0, 58);")
    self.A3o.setCheckable(True)
    self.A3o.setObjectName("A3o")
    self.gridLayout.addWidget(self.A3o, 13, 0, 1, 1)
    self.b33 = QtWidgets.QPushButton(self.gridLayoutWidget)
    self.b33.setMinimumSize(QtCore.QSize(0, 40))
    self.b33.setStyleSheet("background-color: rgb(122, 184, 255);")
    self.b33.setCheckable(True)
    self.b33.setObjectName("b33")
    self.gridLayout.addWidget(self.b33, 13, 12, 1, 1)

Main window with buttons

They are all checkable.Sometimes I need to make the same actions with different buttons. How I can use a loop in this situation.
For example I want to change "check status" for my buttons on the next not using this one:

    self.AA.setChecked(False)
    self.KK.setChecked(False)
    self.QQ.setChecked(False)
    self.JJ.setChecked(False)
    self.TT.setChecked(False)
    self.b99.setChecked(False)
    self.b88.setChecked(False)
    self.b77.setChecked(False)
    self.b66.setChecked(False)
    self.b55.setChecked(False)
    self.b44.setChecked(False)
    self.b33.setChecked(False)
    self.b22.setChecked(False)

The main question is how a can call the button using its text or objectName maybe.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

山人契 2025-02-20 05:45:50

我找到了一个答案... :)

我的按钮都在Gridlayout中。因此,我只需要找到它的所有孩子。

self.buttonGroup = QtWidgets.QButtonGroup(self)
for button in self.gridLayoutWidget.findChildren(QtWidgets.QAbstractButton):
    if button.isChecked():
        button.nextCheckState()

I've found an answer... :)

My buttons are all in GridLayout. So I just need to find all children of it widget.

self.buttonGroup = QtWidgets.QButtonGroup(self)
for button in self.gridLayoutWidget.findChildren(QtWidgets.QAbstractButton):
    if button.isChecked():
        button.nextCheckState()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文