PyQt 5はステータスバーの表示と非表示機能を実現
3820 ワード
まず、解決する2つの問題と問題を解決するコードについて説明します.
1、メニューバーにマウスを置くとステータスバーが永久に消えてしまう問題(この問題は注意深く観察してから気づく必要がある)
2、ステータスバーの表示と非表示を制御する問題
最近pyqt 5教程を勉强して、他の人が翻訳したので、総じて间违いが多くて、直接原版を见るべきで、十分に英语が重要であることを表明します......
すべてのコードを貼り付けます.
1、メニューバーにマウスを置くとステータスバーが永久に消えてしまう問題(この問題は注意深く観察してから気づく必要がある)
# : ; ;
def event(self, QEvent):
if QEvent.type() == QEvent.StatusTip:
if QEvent.tip() == "":
QEvent = QStatusTipEvent("ready!") #
return super().event(QEvent)
2、ステータスバーの表示と非表示を制御する問題
def toggleMenu(self, state): #
print(state)
# if state:
# self.statusBar().showMessage("ready!")
# else:
# self.statusBar().showMessage("")
# if state: # ,
# self.statusbar().show() #
# else:
# self.statusbar().hide()
if state: # statusBar() statusbar
self.statusBar().show()
else:
self.statusBar().hide()
最近pyqt 5教程を勉强して、他の人が翻訳したので、総じて间违いが多くて、直接原版を见るべきで、十分に英语が重要であることを表明します......
すべてのコードを貼り付けます.
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction, qApp, QMenu
from PyQt5.QtGui import QIcon, QStatusTipEvent
class main_window(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# , ;
exitAct = QAction(QIcon("/Users/zuozhe/PycharmProjects/Soft-Video/images/m4.png"), "& ", self)
exitAct.setShortcut("Ctrl+Q") #
exitAct.setToolTip("Exit Application") #
exitAct.triggered.connect(qApp.exit) #
status = self.statusBar() #
status.showMessage("ready!") #
#
#
menubar = self.menuBar()
menubar.setNativeMenuBar(False) # MAC OS
fileMenu = menubar.addMenu("&File") # File
impMenu = QMenu("Import", self) #
impAct = QAction("Import Email", self) # Import Import Email
impMenu.addAction(impAct)
newAct = QAction("New", self)
# Action( )
fileMenu.addAction(newAct) # File
fileMenu.addMenu(impMenu)
fileMenu.addAction(exitAct) # File
#
editMenu = menubar.addMenu("&Edit")
#
viewMenu = menubar.addMenu("&View")
#
viewstatAct = QAction(" ", self, checkable=True)
viewstatAct.setToolTip("View statusbar")
viewstatAct.setChecked(True)
viewstatAct.triggered.connect(self.toggleMenu) # ; toggleMenu
viewMenu.addAction(viewstatAct)
#
self.setGeometry(300, 300, 500, 600)
self.setWindowTitle(" ")
self.show()
# : ; ;
def event(self, QEvent):
if QEvent.type() == QEvent.StatusTip:
if QEvent.tip() == "":
QEvent = QStatusTipEvent("ready!") #
return super().event(QEvent)
def toggleMenu(self, state): #
print(state)
# if state:
# self.statusBar().showMessage("ready!")
# else:
# self.statusBar().showMessage("")
# if state: # ,
# self.statusbar().show()
# else:
# self.statusbar().hide()
if state: # statusBar() statusbar
self.statusBar().show()
else:
self.statusBar().hide()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = main_window()
sys.exit(app.exec_())