有qt的方案?
时间: 2023-07-13 20:11:41 浏览: 46
是的,Qt也提供了一种实现多个窗口独立在任务栏显示的方案。具体的做法是:
1. 在每个窗口的构造函数中设置窗口属性,将窗口设置为 Qt::Tool 窗口。
```cpp
setWindowFlags(Qt::Tool);
```
2. 在每个窗口的 show() 函数中设置窗口属性,将窗口设置为 Qt::WindowStaysOnTopHint 属性。
```cpp
void MainWindow::show()
{
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
QMainWindow::show();
}
```
这样做后,每个窗口将会以独立的按钮显示在任务栏中,而不会和其他窗口合并在一起。需要注意的是,这种做法可能会影响窗口的层叠顺序,需要根据实际情况进行调整。
相关问题
qt方案不置顶
如果不想使用置顶方案,Qt 提供了一种实现多个窗口独立在任务栏显示的方案。具体的做法是:
1. 在每个窗口的构造函数中设置窗口属性,将窗口设置为 Qt::Tool 窗口。
```cpp
setWindowFlags(Qt::Tool);
```
2. 在每个窗口的 show() 函数中设置窗口属性,将窗口设置为 Qt::WindowType_Mask 属性。
```cpp
void MainWindow::show()
{
setWindowFlags(Qt::Window | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::WindowFullscreenButtonHint | Qt::MSWindowsFixedSizeDialogHint | Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowType_Mask);
QMainWindow::show();
}
```
这样做后,每个窗口将会以独立的按钮显示在任务栏中,而不会和其他窗口合并在一起,并且不会设置为置顶窗口。需要注意的是,这种做法可能会影响窗口的层叠顺序,需要根据实际情况进行调整。
不使用置顶方案,还有其他方案?
除了使用置顶方案,还有一种方式可以实现多个窗口独立在任务栏显示。具体的做法是:
1. 在每个窗口的构造函数中设置窗口样式,将窗口设置为 WS_EX_TOOLWINDOW 样式。
```cpp
setWindowFlags(Qt::Window | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint | Qt::WindowFullscreenButtonHint | Qt::MSWindowsFixedSizeDialogHint | Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowType_Mask);
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint | WS_EX_TOOLWINDOW);
```
2. 设置窗口的属性,将窗口设置为非顶层窗口。
```cpp
setWindowFlags(Qt::SubWindow);
```
这样做后,每个窗口将会以独立的按钮显示在任务栏中,而不会和其他窗口合并在一起。需要注意的是,这种做法可能会影响窗口的层叠顺序,需要根据实际情况进行调整。