如何连接Qtoolbutton和QStackedWidget(两者都在同一框架中)

Abhishek tripathi

主窗口

我创建了一个窗口,其中有4个不同的QToolButtons,它位于QStackedWidget之外。当我单击第一个QToolButton时,如图所示,这是Balance Inquiry,然后应该显示Balance Inquiry的内容,其余的QToolButtons也应类似。他们两个都在同一帧中。

我不知道该如何连接。我正在学习PyQt5。我只是使用设计器,对PyQt5中的编码有一个非常基本的想法。

GitHub存储库链接为:https : //github.com/abhi7585/Bank-of-Braavos

永乐

由于您不提供MRE,因此我将从头开始提供解决方案。

解决方案是使用QButtonGroup,其中添加了与id关联的按钮,然后使用buttonClicked信号,该信号将发送应设置为QStackedWidget的currentIndex的按下按钮的id信息。

import sys

from PyQt5 import QtCore, QtWidgets


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.title_label = QtWidgets.QLabel(
            "BANK OF BRAAVOS", alignment=QtCore.Qt.AlignCenter
        )

        self.balance_inquiry_button = QtWidgets.QToolButton(text="Balance Inquiry")
        self.transaction_button = QtWidgets.QToolButton(text="Transaction")
        self.balance_sheet_button = QtWidgets.QToolButton(text="Balance Sheet")
        self.support_button = QtWidgets.QToolButton(text="Support")

        self.stacked_widget = QtWidgets.QStackedWidget()

        self.stacked_widget.addWidget(
            QtWidgets.QLabel("Balance Inquiry", alignment=QtCore.Qt.AlignCenter)
        )
        self.stacked_widget.addWidget(
            QtWidgets.QLabel("Transaction", alignment=QtCore.Qt.AlignCenter)
        )
        self.stacked_widget.addWidget(
            QtWidgets.QLabel("Balance Sheet", alignment=QtCore.Qt.AlignCenter)
        )
        self.stacked_widget.addWidget(
            QtWidgets.QLabel("Support", alignment=QtCore.Qt.AlignCenter)
        )

        central_widget = QtWidgets.QWidget()
        self.setCentralWidget(central_widget)
        lay = QtWidgets.QVBoxLayout(central_widget)
        lay.addWidget(self.title_label)

        hlay = QtWidgets.QHBoxLayout()
        hlay.addWidget(self.balance_inquiry_button)
        hlay.addWidget(self.transaction_button)
        hlay.addWidget(self.balance_sheet_button)
        hlay.addWidget(self.support_button)
        lay.addLayout(hlay)
        lay.addWidget(self.stacked_widget)

        self.group_button = QtWidgets.QButtonGroup()
        for i, button in enumerate(
            (
                self.balance_inquiry_button,
                self.transaction_button,
                self.balance_sheet_button,
                self.support_button,
            )
        ):
            self.group_button.addButton(button, i)

        self.group_button.buttonClicked[int].connect(
            self.stacked_widget.setCurrentIndex
        )

        self.resize(640, 480)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec_())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当两者都在同一ID中时,如何仅选择不在链接中的图像?

来自分类Dev

当两者都在同一ID中时,如何仅选择不在链接中的图像?

来自分类Dev

如何让django在星期几输出?两者都在视图和模板中

来自分类Dev

如何让django在星期几输出?两者都在视图和模板中

来自分类Dev

尝试访问方法中的嵌套类(两者都在同一个类中)。

来自分类Dev

两者都在 URL 中返回“moreEdu”,如何以单一形式使用两个按钮?

来自分类Dev

从终端启动和使用popen之间的OpenOffice行为差异-两者都在chroot中

来自分类Dev

客户端连接到WCF服务时观察超时异常-两者都驻留在同一应用程序中

来自分类Dev

所以break语句只是打破了内部for循环或两者都在c中

来自分类Dev

px和rem中的字体大小:为什么将两者都添加到同一元素?

来自分类Dev

如何找到这两个代码之间的区别?两者都在执行时给出相同的答案,但是网站说一个代码是部分正确的

来自分类Dev

两台计算机无法相互ping通-两者都连接到同一交换机

来自分类Dev

如果两者都包含相同数量的指定字符,则与下一行连接

来自分类Dev

如何在一个类中调用2个api,以便两者都能工作?(反应)

来自分类Dev

使用&和Intptr的指针声明语法。两者都一样吗?

来自分类Dev

当两者都属于同一模块时,如何将nestjs服务注入另一个服务?

来自分类Dev

在Symfony中,将部分形式包含在另一种形式内,两者都基于同一实体

来自分类Dev

从Main呼叫私人班级。两者都在公共课上

来自分类Dev

考虑到两者都在同一个文件夹中,而无需指定文件路径,就可以将数据从一个关闭的工作簿传输到一个打开的工作簿中

来自分类Dev

如何在AssertJ中检查相等或两者都是空白?

来自分类Dev

两者都实现了类。将使用两者之一

来自分类Dev

_(“ str”)在Python中,两者都有

来自分类Dev

离子列表,在删除项和ui-sref上使用动画会导致两者都在删除时触发

来自分类Dev

我在一台服务器上却没有在本地机器上得到“模板丢失”的信息?两者都在`Master`上

来自分类Dev

类RunLoopModeTracker都在两者中实现-Qt

来自分类Dev

如果两者都被谴责

来自分类Dev

将PC连接到电视屏幕;两者都变黑

来自分类Dev

Gson转换问题使用键和值时,两者都是用户定义的对象

来自分类Dev

打印游标和异常值(两者都不起作用)

Related 相关文章

  1. 1

    当两者都在同一ID中时,如何仅选择不在链接中的图像?

  2. 2

    当两者都在同一ID中时,如何仅选择不在链接中的图像?

  3. 3

    如何让django在星期几输出?两者都在视图和模板中

  4. 4

    如何让django在星期几输出?两者都在视图和模板中

  5. 5

    尝试访问方法中的嵌套类(两者都在同一个类中)。

  6. 6

    两者都在 URL 中返回“moreEdu”,如何以单一形式使用两个按钮?

  7. 7

    从终端启动和使用popen之间的OpenOffice行为差异-两者都在chroot中

  8. 8

    客户端连接到WCF服务时观察超时异常-两者都驻留在同一应用程序中

  9. 9

    所以break语句只是打破了内部for循环或两者都在c中

  10. 10

    px和rem中的字体大小:为什么将两者都添加到同一元素?

  11. 11

    如何找到这两个代码之间的区别?两者都在执行时给出相同的答案,但是网站说一个代码是部分正确的

  12. 12

    两台计算机无法相互ping通-两者都连接到同一交换机

  13. 13

    如果两者都包含相同数量的指定字符,则与下一行连接

  14. 14

    如何在一个类中调用2个api,以便两者都能工作?(反应)

  15. 15

    使用&和Intptr的指针声明语法。两者都一样吗?

  16. 16

    当两者都属于同一模块时,如何将nestjs服务注入另一个服务?

  17. 17

    在Symfony中,将部分形式包含在另一种形式内,两者都基于同一实体

  18. 18

    从Main呼叫私人班级。两者都在公共课上

  19. 19

    考虑到两者都在同一个文件夹中,而无需指定文件路径,就可以将数据从一个关闭的工作簿传输到一个打开的工作簿中

  20. 20

    如何在AssertJ中检查相等或两者都是空白?

  21. 21

    两者都实现了类。将使用两者之一

  22. 22

    _(“ str”)在Python中,两者都有

  23. 23

    离子列表,在删除项和ui-sref上使用动画会导致两者都在删除时触发

  24. 24

    我在一台服务器上却没有在本地机器上得到“模板丢失”的信息?两者都在`Master`上

  25. 25

    类RunLoopModeTracker都在两者中实现-Qt

  26. 26

    如果两者都被谴责

  27. 27

    将PC连接到电视屏幕;两者都变黑

  28. 28

    Gson转换问题使用键和值时,两者都是用户定义的对象

  29. 29

    打印游标和异常值(两者都不起作用)

热门标签

归档