用python编写一个程序,要求如下: 1、用pyqt5建立一个主窗口包含1个按钮 2、点击按钮弹出pyqt5子窗口加载H5网页 3、关闭子窗口不影响主窗口
时间: 2024-09-28 13:03:39 浏览: 33
为了满足您的需求,首先确保已经安装了PyQt5库,如果没有可以使用`pip install PyQt5`进行安装。下面是一个简单的Python程序示例,使用PyQt5创建了一个主窗口,包含一个按钮,点击后会弹出一个新的子窗口显示H5网页:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWebEngineView, QVBoxLayout, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
# 创建主窗口布局
layout = QVBoxLayout()
# 创建一个按钮
load_button = QPushButton('打开子窗口')
load_button.clicked.connect(self.show_sub_window)
layout.addWidget(load_button)
# 设置主窗口内容
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
def show_sub_window(self):
# 创建子窗口
sub_window = SubWindow()
sub_window.show()
# 使用center()方法让子窗口居中
self.center_on_screen(sub_window)
def center_on_screen(self, widget):
screen = widget.screen()
size = widget.size()
x = (screen.width() - size.width()) // 2
y = (screen.height() - size.height()) // 2
widget.move(x, y)
class SubWindow(QMainWindow):
def __init__(self):
super(SubWindow, self).__init__()
self.web_view = QWebEngineView()
self.web_view.load(QUrl('http://example.com')) # 替换为您想加载的H5地址
layout = QVBoxLayout()
layout.addWidget(self.web_view)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
在这个例子中,当用户点击"打开子窗口"按钮时,会创建并显示一个新的SubWindow,其中包含一个QWebEngineView控件用于加载H5网页。关闭子窗口后,主窗口不受影响,仍然可见。
阅读全文