メインの「表示」ウィジェットといくつかのマイナーウィジェットを備えた QMainWindow があります。マウスがウィンドウに出入りするときに、マイナー ウィジェットのオン/オフを切り替える機能が欲しいです。
必須ではないウィジェットの表示/非表示を実装enterEvent
し、呼び出しを行うことで、この基本的な機能を実現できます。leaveEvent
ただし、Qt4 のデフォルトの動作は、QMainWindow ジオメトリを固定したままにし、重要なウィジェットのサイズを変更することです。このウィジェットのジオメトリを維持し、必要に応じて QMainWindow を移動/サイズ変更したいと思います。これは可能ですか?
PyQt4 の簡単な例を次に示します。
from PyQt4.QtGui import *
from PyQt4.QtCore import *
app = QApplication([''])
class MyWidget(QWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
layout = QVBoxLayout()
self.setLayout(layout)
self.main = QPushButton("major")
self.main.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.minor = QPushButton("minor")
layout.addWidget(self.main)
layout.addWidget(self.minor)
def enterEvent(self, event):
self.minor.show()
def leaveEvent(self, event):
self.minor.hide()
mw = QMainWindow()
mw.setCentralWidget(MyWidget())
mw.show()
app.exec_()
「主要な」ボタンが拡大/縮小する代わりに、このボタンを囲むように MyWidget の境界を変更したいと思います。