python GUI跳转窗口
时间: 2023-07-06 07:41:16 浏览: 110
在 Python GUI 中,实现窗口跳转可以使用以下方法:
1. Tkinter:使用 `Toplevel` 组件来创建新窗口,在需要跳转的地方调用 `Toplevel` 的 `grab_set()` 方法来使新窗口获取焦点。示例代码如下:
```
import tkinter as tk
root = tk.Tk()
def open_new_window():
new_window = tk.Toplevel(root)
new_window.grab_set()
button = tk.Button(root, text="打开新窗口", command=open_new_window)
button.pack()
root.mainloop()
```
2. PyQt:使用 `QStackedWidget` 组件来实现窗口跳转,在需要跳转的地方调用 `setCurrentIndex()` 方法来切换窗口。示例代码如下:
```
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLabel, QStackedWidget
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
stacked_widget = QStackedWidget()
layout.addWidget(stacked_widget)
# 第一个窗口
first_window = QWidget()
first_layout = QVBoxLayout()
first_label = QLabel("第一个窗口")
first_layout.addWidget(first_label)
first_button = QPushButton("跳转到第二个窗口")
first_button.clicked.connect(lambda: stacked_widget.setCurrentIndex(1))
first_layout.addWidget(first_button)
first_window.setLayout(first_layout)
stacked_widget.addWidget(first_window)
# 第二个窗口
second_window = QWidget()
second_layout = QVBoxLayout()
second_label = QLabel("第二个窗口")
second_layout.addWidget(second_label)
second_button = QPushButton("跳转到第一个窗口")
second_button.clicked.connect(lambda: stacked_widget.setCurrentIndex(0))
second_layout.addWidget(second_button)
second_window.setLayout(second_layout)
stacked_widget.addWidget(second_window)
window.setLayout(layout)
window.show()
app.exec_()
```
以上两种方法都可以实现窗口跳转,根据使用的 GUI 库不同,具体实现方法会有所不同。
阅读全文