19 1. 导入必要的模块

19 1. 导入必要的模块

创建菜单栏

在使用 PyQt5 开发应用程序时,创建一个菜单栏是构建用户界面的重要部分。菜单栏可以包含多个菜单,而每个菜单又可以包含多个操作(例如,打开、保存、退出等)。以下是创建菜单栏的详细步骤和示例代码。

首先,确保导入了 PyQt5 的必要模块。以下是一个基本的模块导入示例:

1
2
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction

2. 创建主窗口

你需要创建一个主窗口类,通常是从 QMainWindow 继承。以下是创建主窗口的基本结构:

1
2
3
4
5
6
7
8
9
10
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("菜单栏示例")
self.setGeometry(100, 100, 600, 400)
self.create_menu_bar()

def create_menu_bar(self):
# 菜单栏的创建将在这里进行
pass

3. 创建菜单栏

create_menu_bar 方法中,添加菜单和操作。以下是一个示例,包括“文件”菜单和常见操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def create_menu_bar(self):
menu_bar = self.menuBar()

# 创建"文件"菜单
file_menu = menu_bar.addMenu("文件")

# 创建"打开"操作
open_action = QAction("打开", self)
open_action.triggered.connect(self.open_file) # 连接到文件打开的函数
file_menu.addAction(open_action)

# 创建"保存"操作
save_action = QAction("保存", self)
save_action.triggered.connect(self.save_file) # 连接到文件保存的函数
file_menu.addAction(save_action)

# 创建"退出"操作
exit_action = QAction("退出", self)
exit_action.triggered.connect(self.close) # 退出应用
file_menu.addAction(exit_action)

4. 实现操作的方法

在上述代码中,我们有三个操作:打开、保存和退出。你需要定义这些方法,以便在用户执行这些操作时能够响应。

1
2
3
4
5
def open_file(self):
print("打开文件的逻辑在这里执行")

def save_file(self):
print("保存文件的逻辑在这里执行")

5. 运行应用程序

最后,确保运行 PyQt5 应用程序的事件循环。以下是完整代码的示例:

1
2
3
4
5
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())

完整代码示例

以下是完整的代码示例,可以直接运行以查看菜单栏的效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction

class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("菜单栏示例")
self.setGeometry(100, 100, 600, 400)
self.create_menu_bar()

def create_menu_bar(self):
menu_bar = self.menuBar()

# 创建"文件"菜单
file_menu = menu_bar.addMenu("文件")

# 创建"打开"操作
open_action = QAction("打开", self)
open_action.triggered.connect(self.open_file)
file_menu.addAction(open_action)

# 创建"保存"操作
save_action = QAction("保存", self)
save_action.triggered.connect(self.save_file)
file_menu.addAction(save_action)

# 创建"退出"操作
exit_action = QAction("退出", self)
exit_action.triggered.connect(self.close)
file_menu.addAction(exit_action)

def open_file(self):
print("打开文件的逻辑在这里执行")

def save_file(self):
print("保存文件的逻辑在这里执行")

if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())

通过以上步骤,你就可以在 PyQt5 应用程序中创建一个功能丰富的菜单栏。你可以根据需求添加更多的菜单和操作,以增强用户体验。

20 添加菜单项

20 添加菜单项

在使用 PyQt5 创建图形用户界面时,菜单项是一个重要的交互元素。它能够帮助用户更方便地访问应用程序的各种功能。下面将通过一个简单的案例来介绍如何在 PyQt5 中添加菜单项。

创建基本窗口

首先,我们需要搭建一个基本的窗口。这里我们使用 QMainWindow 作为主窗口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow

class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("菜单示例")
self.setGeometry(100, 100, 600, 400)

if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())

上面的代码创建了一个标题为 “菜单示例” 的窗口。

添加菜单栏

下一步, мы 将在这个窗口中添加一个菜单栏。可以通过 menuBar() 方法获得一个 QMenuBar 实例,然后使用 addMenu() 方法添加一个菜单。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from PyQt5.QtWidgets import QAction, QMessageBox

class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("菜单示例")
self.setGeometry(100, 100, 600, 400)

# 添加菜单栏
self.init_menu()

def init_menu(self):
menubar = self.menuBar() # 获取菜单栏

file_menu = menubar.addMenu("文件") # 添加“文件”菜单

# 添加菜单项
open_action = QAction("打开", self) # 创建“打开”菜单项
open_action.triggered.connect(self.open_file) # 连接信号与槽
file_menu.addAction(open_action)

exit_action = QAction("退出", self) # 创建“退出”菜单项
exit_action.triggered.connect(self.close) # 连接信号与槽
file_menu.addAction(exit_action)

def open_file(self):
QMessageBox.information(self, "信息", "打开文件功能尚未实现")

if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())

代码说明

  1. init_menu() 方法: 负责初始化菜单栏。
  2. menubar.addMenu("文件"): 创建一个新的菜单,并将其添加到菜单栏中。
  3. QAction: 用于创建菜单项。
  4. triggered.connect(...): 当菜单项被点击时,触发相应的方法。
  5. QMessageBox: 显示一个信息框,用于篮腾选择“打开”菜单项时的反馈。

运行程序

运行上述代码后,会看到一个带有 “文件” 菜单的窗口。当你点击“打开”时,会弹出一个信息窗口。点击“退出”则会关闭应用程序。

小结

本文介绍了如何使用 PyQt5 在应用程序中添加菜单项。我们通过一个简单的案例,展示了如何创建菜单栏、添加菜单及响应菜单项的事件。随着对 PyQt5 的深入,你可以为菜单项添加更多功能,如加载文件、保存文件等,使你的应用程序更加丰富多彩。

21 创建工具栏

21 创建工具栏

在使用 PyQt5 开发界面时,工具栏 是一个非常常见的组件,它通常用于提供快速访问常用功能和命令。在本节中,我们将学习如何在 PyQt5 应用程序中创建和使用一个基本的工具栏。

创建工具栏的步骤

  1. 导入必要的模块
  2. 创建主窗口
  3. 添加工具栏
  4. 添加工具按钮
  5. 显示应用程序

代码示例

下面是一个简单的 PyQt5 应用程序示例,演示如何创建一个工具栏并添加按钮。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction

class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()

self.setWindowTitle('工具栏示例')
self.setGeometry(100, 100, 600, 400)

# 创建工具栏
self.toolbar = self.addToolBar('Main Toolbar')

# 创建一个动作 (Action)
self.action1 = QAction('功能1', self)
self.action1.triggered.connect(self.function1)

# 将动作添加到工具栏
self.toolbar.addAction(self.action1)

# 再添加一个动作
self.action2 = QAction('功能2', self)
self.action2.triggered.connect(self.function2)
self.toolbar.addAction(self.action2)

def function1(self):
print("功能1被触发")

def function2(self):
print("功能2被触发")

if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())

代码解析

  1. 导入模块:首先,我们导入了 sysPyQt5.QtWidgets 中所需的类。

  2. 创建主窗口类MyMainWindow 继承自 QMainWindow,在其构造函数中初始化窗口。

  3. 设置窗口标题和大小:使用 self.setWindowTitleself.setGeometry 方法来设置窗口的标题和初始尺寸。

  4. 创建工具栏:使用 self.addToolBar('Main Toolbar') 创建一个工具栏,并将其保存在 self.toolbar 中。

  5. 添加动作:使用 QAction 创建动作,这些动作在工具栏上显示为按钮。我们为每个按钮指定了名称和响应的槽函数(这里是 self.function1self.function2)。

  6. 响应槽函数:实现 function1function2 方法,分别在控制台打印消息,以响应按钮点击。

运行程序

将上述代码保存为 toolbar_example.py,在命令行中运行:

1
python toolbar_example.py

你将看到一个窗口,包含一个工具栏和两个按钮。当点击这些按钮时,相应的功能将被触发,并在控制台输出消息。

总结

通过以上步骤,我们成功创建了一个简单的工具栏,并添加了多个功能按钮。工具栏不仅美观,而且增强了用户体验,使用户能够快速访问常用功能。希望这个示例能够帮助你理解如何在 PyQt5 中使用工具栏。