Откройте QFrame в другом окне из QAction в PyQT5 - PullRequest
0 голосов
/ 11 апреля 2020

Я хочу открыть другое окно QFrame, когда мы нажимаем на действие QMenu. Вот окно QFrame, которое мы хотим открыть. Код работает хорошо, когда мы работаем независимо.

class FileMenu(object):

 def openMenu(self):
    self.openWidget  = QWidget()
    mainLayout   = QVBoxLayout(self.openWidget)
    frameTitle = QLabel("File Details")
    fileFrame  = QFrame()
    fileFrame.setFrameShape(QFrame.StyledPanel)
    fileFrame.setFrameShadow(QFrame.Raised)
    gridLayout = QGridLayout()

    fileNameLabel = QLabel("File Name",fileFrame)
    gridLayout.addWidget(fileNameLabel,0,0)
    self.fileNameEdit  = QLineEdit(" ",fileFrame)
    gridLayout.addWidget(self.fileNameEdit,0,1)
    brwButton = QPushButton("",fileFrame)
    brwButton.clicked.connect(self.browseFile)
    brwButton.setFixedWidth(25)

    gridLayout.addWidget(brwButton,0,2)

    mainLayout.addWidget(frameTitle)
    mainLayout.addWidget(fileFrame)
    self.openWidget.setGeometry(250,250,500,100)
    self.openWidget.setFixedWidth(500)
    self.openWidget.setFixedHeight(250)

    self.openWidget.setWindowFlags(Qt.WindowCloseButtonHint | Qt.WindowMinimizeButtonHint)
    self.openWidget.show()

def browseFile(self):    
    fileName, _ = QFileDialog.getOpenFileName(self.openWidget, "Open File",QDir.currentPath())
    if fileName:
        self.fileNameEdit.setText(fileName)


class MenuBarTest(QMainWindow):

def __init__(self):
    super().__init__()
    self.initUI()
def initUI(self):
    self.statusBar().showMessage("Hi Kamine")
    self.setGeometry(300,300,250,250)
    self.setWindowTitle("Status Bar Test")
    button = QPushButton("Click Me",self)
    button.move(150,150)
    button.clicked.connect(on_click)
    button.setToolTip("This is Button")
    button.resize(button.sizeHint())
    exitAct = QAction(QIcon('/home//png/album_artwork.png'), 'Exit', self)        
    exitAct.setShortcut('Ctrl+Q')
    exitAct.setStatusTip('Exit application')
    exitAct.triggered.connect(on_click)

    openAct = QAction(QIcon(''),'Open',self)
    openAct.setShortcut('Ctrl+0')
    filetemp = FileMenu()
    openAct.triggered.connect(filetemp.openMenu)

    impMenu = QMenu('Import',self);
    impAct  = QAction('Import',self)
    impAct.triggered.connect(on_save)
    impMenu.addAction(impAct)

    checkAct = QAction("Check Box",self,checkable=True)
    checkAct.setStatusTip("Check Action Tested")
    checkAct.setChecked(True)
    checkAct.triggered.connect(on_save)


    menuBar = self.menuBar()
    fileMenu = menuBar.addMenu("File")
    fileMenu.addAction(exitAct)
    fileMenu.addMenu(impMenu)
    fileMenu.addAction(saveAct)

    checkMenu = menuBar.addMenu("check")
    checkMenu.addAction(checkAct)
    toolbar = self.addToolBar('Exit')
    toolbar.addAction(exitAct)
    self. 

Я хочу вызвать openMenu в классе FileMenu из класса MenuBarTest, используя openAction в другом окне.

Пожалуйста, дайте мне знать, как вызвать открытое меню в другом окне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...