Sử dụng PyQt4, khi tôi ẩn một cửa sổ và hiển thị nó sau đó, nó xuất hiện ở vị trí khác (ít nhất là ở đây trên Linux). Mã ví dụ:PyQt4: Cửa sổ hiển thị ở vị trí khác sau khi ẩn() và hiển thị()
#!/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_()
Cửa sổ biến mất và xuất hiện, nhưng hơi bên dưới và bên phải của vị trí ban đầu. Tôi nghĩ rằng nó bị thay đổi bởi kích thước của khung của trình quản lý cửa sổ xung quanh tiện ích thực tế.
Làm cách nào để đặt cửa sổ ở vị trí chính xác? Và tại sao nó lại di chuyển? Không nên nó ở đâu?
Vâng, sau đó tôi nghĩ rằng người ta không thể giải quyết vấn đề này, như thiết lập hình học trước khi chương trình ban đầu() sẽ chỉ giúp khi ẩn và hiển thị cửa sổ được thực hiện từ vị trí đó và cửa sổ đã không được di chuyển. –
@TobiasLeupold. Đối với tôi, việc di chuyển cửa sổ giữa các lần nhấp vào nút "Ẩn/Hiển thị" sẽ không tạo ra bất kỳ sự khác biệt nào (tức là vị trí vẫn không đổi). Nếu tôi nhận xét dòng 'setGeometry', cửa sổ nhảy lên và sang trái trên nhấp chuột * đầu tiên *, nhưng sau đó vẫn không đổi. Điều này đang sử dụng trình quản lý cửa sổ OpenBox. Bạn đang sử dụng trình quản lý cửa sổ nào? – ekhumoro
Tôi sử dụng KDE 4.8.5 trên Gentoo Linux. –