SetParent后子窗口看不见了
时间: 2023-07-20 15:18:14 浏览: 30
在使用SetParent函数将一个窗口设置为另一个窗口的子窗口后,可能会遇到子窗口看不见的问题。这可能是因为子窗口的位置或大小与父窗口不匹配所导致的。你可以尝试在调用SetParent函数之前设置子窗口的位置和大小,使其与父窗口相匹配,或者在调用SetParent函数之后调用MoveWindow函数重新设置子窗口的位置和大小。此外,还应该确保子窗口的可见性属性被正确地设置为可见。
相关问题
qt子窗口不显示任务栏
您好!对于Qt子窗口不显示任务栏的问题,您可以尝试以下几种方法:
1. 设置窗口的窗口标志(Window Flags):
在子窗口的构造函数中,可以使用`setWindowFlags()`函数设置窗口的标志,例如:
```cpp
setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
```
这样可以确保子窗口拥有独立的任务栏按钮。
2. 设置窗口类型:
使用`setWindowModality()`函数设置子窗口的窗口模态类型,例如:
```cpp
setWindowModality(Qt::ApplicationModal);
```
这样可以使子窗口成为模态对话框,不会显示任务栏。
3. 设置窗口父子关系:
如果子窗口是通过`setParent()`函数设置父窗口的,可以尝试将父窗口的`Qt::Tool`属性设置为真,例如:
```cpp
parentWidget()->setAttribute(Qt::WA_TranslucentBackground);
parentWidget()->setWindowFlags(parentWidget()->windowFlags() | Qt::Tool);
```
这样可以确保子窗口不显示任务栏。
希望以上方法能够帮助您解决问题!如果还有其他疑问,请随时提问。
pyqt5点击主窗口,子窗口不躲到主窗口后面,子窗口是mainwindow
的子类,如何实现这个功能?
您可以使用 setParent() 函数将子窗口的父窗口设置为主窗口,这样子窗口就会一直显示在主窗口的前面,无论主窗口是否被点击。以下是示例代码:
```
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.child_window = ChildWindow()
self.child_window.setParent(self)
class ChildWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
```
在这个示例中,MainWindow 是主窗口的类,ChildWindow 是子窗口的类。在 MainWindow 的构造函数中,我们创建了一个 ChildWindow 实例,并将其父窗口设置为 MainWindow。这样,当用户点击 MainWindow 时,ChildWindow 仍然会显示在前面。
相关推荐













