You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.6 KiB

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget ,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
class App(QMainWindow):
def __init__(self):
''' Everything is used with `self.` so it can be easily accessed in any function.
'''
super().__init__()
self.title = 'PyQt5 tabs - pythonspot.com'
self.left = 0
self.top = 0
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, 400, 400)
self.table_widget = MyTableWidget(self)
self.setCentralWidget(self.table_widget)
self.modeMenu = self.menuBar().addMenu('Mode')
self.zebraMenuEntry = QAction('Zebra')
self.zebraMenuEntry.triggered.connect(self.close)
self.modeMenu.addAction(self.zebraMenuEntry)
self.oneDMenuEntry = QAction('1D Mode')
self.oneDMenuEntry.triggered.connect(self.close)
self.modeMenu.addAction(self.oneDMenuEntry)
self.twoDMenuEntry = QAction('2D Mode')
self.twoDMenuEntry.triggered.connect(self.close)
self.modeMenu.addAction(self.twoDMenuEntry)
self.show() # once everything is set up, show the window.
class MyTableWidget(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
self.layout = QVBoxLayout(self)
# Initialize tab screen
self.tabs = QTabWidget()
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
self.tabs.resize(300 ,200)
# Add tabs
self.tabs.addTab(self.tab1 ,"Prep Experiment Zebra")
self.tabs.addTab(self.tab2 ,"1D Mode")
self.tabs.addTab(self.tab3, "2D Mode")
# Create first tab
self.tab1.layout = QVBoxLayout(self)
self.pushButton1 = QPushButton("PyQt5 button")
self.tab1.layout.addWidget(self.pushButton1)
self.tab1.setLayout(self.tab1.layout)
# Create second tab
self.tab2.layout = QVBoxLayout(self)
self.tabs2 = QTabWidget()
self.tab21 = QWidget()
self.tabs2.addTab(self.tab21, "hello")
self.tab2.layout.addWidget(self.tabs2)
# Add tabs to widget
self.layout.addWidget(self.tabs)
self.setLayout(self.layout)
@pyqtSlot()
def on_click(self):
print("\n")
for currentQTableWidgetItem in self.tableWidget.selectedItems():
print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())