如何从主菜单按钮添加标签?我可以打电话给def add_flash_tab(self):
,但我不断收到Process finished with exit code -1073740791 (0xC0000409)
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtWidgets import QAction
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget, QMainWindow
# Subclass QMainWindow to customise application's main window
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setWindowIcon(QIcon(r"images\title_icons.png"))
self.setWindowTitle("320 Team")
self.resize(1500, 900) # Width, height
self.main_window_menu() # top window main menu."
self.table_widget = TabsWidgets(self) # tabs Container
self.setCentralWidget(self.table_widget)
# window main menu
def main_window_menu(self):
main_menu = self.menuBar()
# customer menu button
add_flash_tab = main_menu.addMenu("Add Flash Tab") # button
flash_button = QAction(QIcon("flash.png"), "Flash", self) # sub button
flash_button.setShortcut("Ctrl+F")
flash_button.setStatusTip("Open Flash - Main")
flash_button.triggered.connect(TabsWidgets.add_flash_tab)
add_flash_tab.addAction(flash_button)
class TabsWidgets(QWidget):
def __init__(self, parent):
super(TabsWidgets, self).__init__(parent)
self.tab_mainFlash = QWidget() # flash tab
self.layout = QVBoxLayout()
# Initialize tab screen
self.tabs = QTabWidget()
self.tabs.setTabsClosable(True)
self.tabs.setMovable(True)
self.tabs.setElideMode(Qt.ElideRight)
self.tabs.setUsesScrollButtons(True)
self.tabs.tabCloseRequested.connect(self.close_tab) # call close_tab function
self.layout.addWidget(self.tabs)
self.setLayout(self.layout)
# # Create tab_mainFlash - 1
# self.tabs.addTab(self.tab_mainFlash, " Flash - Main ")
# self.tab_mainFlash.layout = QVBoxLayout(self)
# self.tab_mainFlash.setLayout(self.tab_mainFlash.layout)
# flash tab
def add_flash_tab(self):
print("add flash tab")
# Create tab_mainFlash - 1
self.tabs.addTab(self.tab_mainFlash, " Flash - Main ")
self.tab_mainFlash.layout = QVBoxLayout(self)
self.tab_mainFlash.setLayout(self.tab_mainFlash.layout)
# close tabs
def close_tab(self, index):
tab = self.tabs.widget(index)
tab.deleteLater()
self.tabs.removeTab(index)
if __name__ == "__main__":
application = QApplication(sys.argv) # create Application
application.setStyle("Fusion")
appGui = MainWindow() # create instance of class
appGui.show() # show the constructed window | "graphical user interface."
sys.exit(application.exec_()) # execute the application
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtWidgets import QAction
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget, QMainWindow
# Subclass QMainWindow to customise application's main window
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setWindowIcon(QIcon(r"images\title_icons.png"))
self.setWindowTitle("320 Team")
self.resize(1500, 900) # Width, height
# change order
self.table_widget = TabsWidgets(self) # tabs Container
self.main_window_menu() # top window main menu."
self.setCentralWidget(self.table_widget)
# window main menu
def main_window_menu(self):
main_menu = self.menuBar()
# customer menu button
add_flash_tab = main_menu.addMenu("Add Flash Tab") # button
flash_button = QAction(QIcon("flash.png"), "Flash", self) # sub button
flash_button.setShortcut("Ctrl+F")
flash_button.setStatusTip("Open Flash - Main")
# changed this
flash_button.triggered.connect(self.table_widget.add_flash_tab)
add_flash_tab.addAction(flash_button)