PyQt4を使用して、ウィンドウを非表示にしてから表示すると、別の位置に表示されます。例コード:PyQt4:hide()とshow()の後に別の位置にウィンドウが表示されます。
#!/usr/bin/python3
from PyQt4.QtGui import *
app = QApplication([])
widget = QWidget()
widget.setLayout(QVBoxLayout())
label = QLabel()
widget.layout().addWidget(label)
def hideShow():
widget.hide()
widget.show()
widget.layout().addWidget(QPushButton('Hide/Show', clicked = hideShow))
widget.show()
app.exec_()
ウィンドウが消えて表示されますが、元の位置の右下に表示されます。私はそれが実際のウィジェットの周りのウィンドウマネージャーの枠のサイズによって置き去られていると思います。
私はどのようにウィンドウを正確な位置に配置できますか?そして、なぜそれはまったく動きますか?それはどこにあるべきですか?
さて、最初のshow()の前にジオメトリを設定すると隠れて、その位置からウィンドウが表示され、ウィンドウが移動されていないときにのみ役立つので、この問題を解決できないと思います。 –
@TobiasLeupold。私にとっては、「非表示/表示」ボタンのクリック間でウィンドウを移動しても差はありません(つまり、位置は一定のままです)。 'setGeometry'行をコメントアウトすると、*最初のクリックでウィンドウが左上にジャンプしますが、それでも一定のままです。これは、OpenBoxウィンドウマネージャを使用しています。どのウィンドウマネージャを使用していますか? – ekhumoro
私はGentoo LinuxでKDE 4.8.5を使用しています。 –