qmainwindow怎么管理弹出来的子窗口
时间: 2023-05-13 11:05:05 浏览: 53
QMainWindow 可以通过 QMdiArea 来管理弹出来的子窗口。可以使用 addSubWindow() 方法将子窗口添加到 QMdiArea 中,然后使用 show() 方法显示子窗口。同时,可以使用 setActiveSubWindow() 方法来设置活动子窗口。
相关问题
在qmainwindow中捕获活跃子窗口
您可以使用QMainWindow的activeWindow()函数来获取当前活跃的子窗口,然后使用QObject::connect()函数连接QMainWindow的activeWindowChanged()信号来捕获活跃子窗口的变化。以下是示例代码:
```cpp
QMainWindow* mainWindow = new QMainWindow();
// ...
QObject::connect(mainWindow, &QMainWindow::activeWindowChanged, [mainWindow]() {
QWidget* activeWidget = mainWindow->activeWindow();
if (activeWidget) {
// 处理活跃子窗口
}
});
```
希望这可以帮助您解决问题!
pyqt 弹出子窗口
要在PyQt中实现弹出子窗口的功能,可以按照以下步骤进行操作:
步骤一:创建主窗口
首先,创建一个主窗口,并设置一个按钮用于弹出子窗口。可以使用QMainWindow类来创建主窗口,并在构造函数中设置窗口标题和按钮。代码如下所示:
```python
from PyQt5.QtWidgets import *
import sys
# 主窗口
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
fbutton = QPushButton("弹出子窗口", self)
fbutton.clicked.connect(self.show_child)
def show_child(self):
print("子窗口")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Main()
window.show()
sys.exit(app.exec_())
```
步骤二:创建子窗口
接下来,创建一个子窗口,并设置其大小和标题。可以使用QMainWindow类来创建子窗口,并在构造函数中设置窗口大小和标题。代码如下所示:
```python
from PyQt5.QtWidgets import *
import sys
# 子窗口
class Child(QMainWindow):
def __init__(self):
super().__init__()
self.resize(360,240)
self.setWindowTitle("我是子窗口啊")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Child()
window.show()
sys.exit(app.exec_())
```
步骤三:连接主窗口按钮和子窗口
最后,将主窗口的按钮点击事件与弹出子窗口的操作连接起来。在主窗口的show_child方法中,创建子窗口的实例,并调用show方法显示子窗口。代码如下所示:
```python
from PyQt5.QtWidgets import *
import sys
# 主窗口
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
fbutton = QPushButton("弹出子窗口", self)
fbutton.clicked.connect(self.show_child)
def show_child(self):
child_window = Child()
child_window.show()
# 子窗口
class Child(QMainWindow):
def __init__(self):
super().__init__()
self.resize(360, 240)
self.setWindowTitle("我是子窗口啊")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Main()
window.show()
sys.exit(app.exec_())
```
通过以上步骤,可以在PyQt中实现弹出子窗口的功能。当用户点击主窗口的按钮时,子窗口将会弹出显示。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [pyqt5主窗口按键弹出子窗口](https://blog.csdn.net/qq_30893653/article/details/128888529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]