【发布时间】:2017-12-16 09:38:43
【问题描述】:
我有一个桌面应用程序主窗口有 3 个选项卡,在其中一个选项卡中我显示一些按钮(在 for 循环中生成),然后当用户单击按钮时,选项卡窗口显示另一个小部件,例如在布局中的小部件。
class Tabs(QtWidgets.QTabWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.tab1 = QtWidgets.QWidget()
self.tab2 = QtWidgets.QWidget()
self.tab3 = QtWidgets.QWidget()
self.addTab(self.tab1 , 'TAB1 TITLE')
self.addTab(self.tab2 , 'TAB2 TITLE')
self.addTab(self.tab3 , 'TAB3 TITLE')
self.TAB1Go()
self.TAB2Go()
self.show()
def TAB1Go(self):
# Rest of codes
def TAB2Go(self):
h_box = QtWidgets.QHBoxLayout()
v_box = QtWidgets.QVBoxLayout()
self.WelcomeLabel = QtWidgets.QLabel('Welcome to tab2')
v_box.addWidget(self.WelcomeLabel)
self.btn = QtWidgets.QPushButton('push me')
v_box.addWidget(self.btn)
self.btn.clicked.connect(self.ShowAnotherWidget)
v_box.addStretch()
v_box.addLayout(h_box)
self.tab2.setLayout(v_box)
def ShowAnotherWidget(self):
this_button = self.sender()
print (this_button.text())
self.tab2.deleteLayer() #some thing like this
# self.tab2.setParent(self) < this one delete whole tab2 >
class Window(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.tabs = Tabs()
self.tabs.doReadCats()
self.setCentralWidget(self.tabs)
self.setWindowTitle('ToDo List')
self.resize(330,500)
self.show()
app = QtWidgets.QApplication(sys.argv)
w = Window()
sys.exit(app.exec_())
当客户单击按钮时,我想将 tab2 布局更改为另一个框或类似的东西
【问题讨论】:
标签: python user-interface layout pyqt