【发布时间】:2021-12-09 09:47:51
【问题描述】:
在我的主窗口初始化函数中创建子小部件时,我可以强制它保持在顶部吗?
只有在应用范围内创建小部件时它才对我有用(如此处PyQt4 How keep a QWidget always on top?)。
(在树莓派操作系统上测试)
from PyQt5 import QtCore
from PyQt5.QtWidgets import (
QApplication, QMainWindow, QWidget
)
class Ui_MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setWindowTitle("MainWindow")
self.resize(400, 300)
Widget = Ui_Widget(self)
Widget.show()
class Ui_Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setWindowFlags(self.windowFlags() | QtCore.Qt.Dialog)
self.setWindowTitle("Widget")
self.resize(400, 300)
self.move(200, 150)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
MainWindow = Ui_MainWindow()
MainWindow.show()
# Widget = Ui_Widget(MainWindow)
# Widget.show()
sys.exit(app.exec_())
【问题讨论】:
-
你的意思是用上面的代码
Ui_Widget显示在主窗口下面吗?您使用的是什么操作系统? -
@musicamante 是的,在 Raspberry Pi OS 的主窗口下。刚刚在运行良好的 Windows 10 上进行了测试。
-
可能是窗口管理器的问题。如果您单击子窗口并尝试再次单击主窗口,它会再次回到顶部吗?尝试在创建
Ui_Widget实例之前添加self.show()。 -
@musicamante 你的把戏搞定了!谢谢!
标签: python raspberry-pi pyqt pyqt5