【发布时间】:2021-09-12 15:38:25
【问题描述】:
我有一些可切换的QPushButtons,我需要将它们添加到QTabWidget 的所有选项卡中。每个选项卡都应该跟踪每个可切换QPushButton 的当前状态,这就是我添加相同对象而不是创建新按钮的原因。小部件的位置并不重要,只要我在所有选项卡上都有相同的 tbutton 对象。 (即当tbutton 在 Tab 1 上启用时,它应该在 Tabs 2 和 3 上启用)。
下面是我正在使用的代码。请注意,在此示例中,我只展示了一个可切换的 QPushButton。
import sys
from PyQt5.QtWidgets import QTabWidget, QPushButton, QApplication, QWidget, QHBoxLayout
if __name__ == '__main__':
app = QApplication(sys.argv)
tabW = QTabWidget()
tbutton = QPushButton("foo")
tbutton.setCheckable(True)
w1 = QWidget()
layout1 = QHBoxLayout(w1)
layout1.addWidget(QPushButton("bar"))
layout1.addWidget(tbutton)
w2 = QWidget()
layout2 = QHBoxLayout(w2)
layout2.addWidget(QPushButton("baz"))
layout2.addWidget(tbutton)
tabW.addTab(w1, "Tab 1")
tabW.addTab(w2, "Tab 2")
tabW.addTab(tbutton, "Tab 3")
tabW.show()
sys.exit(app.exec_())
当应用程序运行时,只有 Tab 3 包含tbutton。虽然使用QTabWidget 的setCornerWidget 方法可以始终显示单个按钮,但当添加的角小部件更复杂(即更多可切换按钮)时,修改布局更加困难。
【问题讨论】:
-
您的帖子不清楚。 我需要添加到所有标签是什么意思?您能否更详细地解释一下,每个按钮应该在哪里?
-
可能,您每次使用按钮更改页面时都希望重新设置按钮。setParent
标签: python python-3.x pyqt5