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
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_()) |