微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想在触发 QAction 时显示另一个窗口,但它不起作用

如何解决我想在触发 QAction 时显示另一个窗口,但它不起作用

标题所说的。我正在研究 PyQt6,当用户单击菜单菜单之一中的项目时,我想显示类似“关于”屏幕的内容菜单显示正常,但触发事件没有发生。我做错了什么吗?

import sys,os
from PyQt6.QtCore import *
from PyQt6.QtWidgets import *
from PyQt6.QtGui import *


class AnotherWindow(QWidget):
    """
    This "window" is a QWidget. If it has no parent,it
    will appear as a free-floating window as we want.
    """
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()
        self.label = QLabel("Another Window")
        layout.addWidget(self.label)
        self.setLayout(layout)


class MainWindow(QMainWindow):

    def __init__(self):
        super().__init__()

        self.setFixedSize(300,300)
        self.setwindowTitle('Try')

class Menu:

    def __init__(self,MainWindow):

        super().__init__()

        self.view = MainWindow

        self.menuBar = QMenuBar()
        self.menuBar.setGeometry(QRect(0,277,22))
        self.view.setMenuBar(self.menuBar)
        self.open = QMenu(self.menuBar)
        self.open.setTitle('Open')
        self.menuBar.addAction(self.open.menuAction())
        self.this = QAction(self.menuBar)
        self.this.setText('This')
        self.open.addAction(self.this)
        
        self.this.triggered.connect(self.show_new_window)

    def show_new_window(self,checked):
        self.w = AnotherWindow()
        self.w.show()

app = QApplication(sys.argv)
w = MainWindow()
Menu(w)
w.show()
app.exec()

此外,我想为菜单栏创建一个不同的类以获得更清晰的代码。我实际上需要为我的 GUI 项目执行此操作。如果这会以某种方式破坏代码,请告诉我。非常感谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。