从主菜单按钮添加标签时出现错误[重复]

问题描述 投票:0回答:1

如何从主菜单按钮添加标签?我可以打电话给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
python pyqt pyqt5
1个回答
0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.