Python 3.x 菜单栏被帧禁用
试着自学PyQt5,所以我猜我只是没有在其中添加一些东西。但我目前在窗口顶部有一个菜单栏,我想在下面添加一个框架,但这样做会使菜单栏无法访问。没有框架,菜单栏就可以正常工作。我该如何解决这个问题Python 3.x 菜单栏被帧禁用,python-3.x,pyqt5,Python 3.x,Pyqt5,试着自学PyQt5,所以我猜我只是没有在其中添加一些东西。但我目前在窗口顶部有一个菜单栏,我想在下面添加一个框架,但这样做会使菜单栏无法访问。没有框架,菜单栏就可以正常工作。我该如何解决这个问题 #!/usr/bin/python3.6 from PyQt5.QtWidgets import (QMainWindow, QApplication, QFrame, QAction, qApp, QStackedWidget, QWidget, QListWidget, QVBoxLayout)
#!/usr/bin/python3.6
from PyQt5.QtWidgets import (QMainWindow, QApplication, QFrame, QAction, qApp, QStackedWidget, QWidget, QListWidget, QVBoxLayout)
from PyQt5.QtGui import QIcon
import sys
class CharManMain(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
'''initiates application UI'''
exitAct = QAction('&Exit', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('Exit Application')
exitAct.triggered.connect(qApp.quit)
newAct = QAction('&New', self)
newAct.setShortcut('Ctrl+N')
newAct.setStatusTip('Create a New character')
openAct = QAction('&Open', self)
openAct.setShortcut('Ctrl+O')
openAct.setStatusTip('Open a saved character')
statusbar = self.statusBar()
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
characterMenu = menubar.addMenu('Characters')
fileMenu.addAction(newAct)
fileMenu.addAction(openAct)
fileMenu.addAction(exitAct)
baseFrame = QFrame(self)
vbox = QVBoxLayout()
vbox.addWidget(menubar)
vbox.addWidget(baseFrame)
vbox.addWidget(statusbar)
self.setLayout(vbox)
self.setWindowTitle('Character Manager v0.01')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
charMain = CharManMain()
sys.exit(app.exec_())
QMainWindow.setCentralWidget(小部件) 将给定小部件设置为主窗口的中心小部件
import sys
from PyQt5.QtWidgets import (QMainWindow, QApplication, QFrame, QAction, qApp,
QStackedWidget, QWidget, QListWidget, QVBoxLayout)
from PyQt5.QtGui import QIcon
class CharManMain(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
'''initiates application UI'''
exitAct = QAction('&Exit', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('Exit Application')
exitAct.triggered.connect(qApp.quit)
newAct = QAction('&New', self)
newAct.setShortcut('Ctrl+N')
newAct.setStatusTip('Create a New character')
openAct = QAction('&Open', self)
openAct.setShortcut('Ctrl+O')
openAct.setStatusTip('Open a saved character')
statusbar = self.statusBar()
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
characterMenu = menubar.addMenu('Characters')
fileMenu.addAction(newAct)
fileMenu.addAction(openAct)
fileMenu.addAction(exitAct)
baseFrame = QFrame() # --- (self)
self.setCentralWidget(baseFrame) # +++ <-----
### ---
#vbox = QVBoxLayout()
#vbox.addWidget(menubar)
#vbox.addWidget(baseFrame)
#vbox.addWidget(statusbar)
#self.setLayout(vbox)
self.setWindowTitle('Character Manager v0.01')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
charMain = CharManMain()
sys.exit(app.exec_())
导入系统
从PyQt5.QtWidgets导入(QMainWindow、QApplication、QFrame、QAction、qApp、,
QStackedWidget、QWidget、QListWidget、QVBoxLayout)
从PyQt5.QtGui导入QIcon
类CharManMain(QMainWindow):
定义初始化(自):
super()。\uuuu init\uuuuu()
self.initUI()
def initUI(self):
''启动应用程序UI''
exitAct=QAction('退出',自我)
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusIP('退出应用程序')
exitAct.triggered.connect(qApp.quit)
newAct=QAction('New',self)
newAct.setShortcut('Ctrl+N')
newAct.setStatusIP('创建新字符')
openAct=QAction(“&Open”,self)
openAct.setShortcut('Ctrl+O')
openAct.setStatusIP('打开保存的字符')
statusbar=self.statusbar()
menubar=self.menubar()
fileMenu=menubar.addMenu(“&File”)
characterMenu=menubar.addMenu('Characters')
fileMenu.addAction(newAct)
fileMenu.addAction(openAct)
fileMenu.addAction(exitAct)
baseFrame=QFrame()#--(self)
self.setCentralWidget(baseFrame)#+++我觉得这很简单。非常感谢。