def add_generation_inputs(self) -> None: right_widget = QWidget(self) self.layout().addWidget(right_widget) # noinspection PyTypeChecker self.layout().setAlignment( right_widget, Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignBottom) right_widget.setLayout(QHBoxLayout()) generate_button = QPushButton("Generate Header", right_widget) right_widget.layout().addWidget(generate_button) generate_button.clicked.connect(lambda: self.generate())
class MyTabWidget(QTabWidget): def __init__(self, parent): super(QTabWidget, self).__init__(parent) # Enable the ability to move tabs and reorganize them, as well # as close them. Setting tabs as closable displays a close button # on each tab. # self.setTabsClosable(True) self.setMovable(True) # Create tabs in tab container # self.tab1 = QWidget() self.tab2 = QWidget() self.tab3 = QWidget() self.tab4 = QWidget() self.tab5 = QWidget() # Add tabs # self.addTab(self.tab1, "Tab 1") self.addTab(self.tab2, "Tab 2") self.addTab(self.tab3, "Long Tab 3") self.addTab(self.tab4, "Longer Tab 4") self.addTab(self.tab5, "Longest Tab 5") self.currentChanged.connect(self.tabSelected) self.tabCloseRequested.connect(self.closeRequest) # Add test content to a few tabs # self.tab1.setLayout(QVBoxLayout(self)) self.tab2.setLayout(QVBoxLayout(self)) self.pushButton1 = QPushButton("PyQt6 Button 1") self.tab1.layout().addWidget(self.pushButton1) self.pushButton2 = QPushButton("PyQt6 Button 2") self.tab2.layout().addWidget(self.pushButton2) def tabSelected(self): print("Selected tab {0}".format(self.currentIndex() + 1)) def closeRequest(self): print("Tab close request on tab {0}".format(self.currentIndex() + 1)) if self.count() > 1: self.removeTab(self.currentIndex())