【PyQt5 学习记录】005:QMainWindow 及状态栏、菜单栏和工具栏

  1 #!/usr/bin/env python
  2
  3 import sys
  4 from PyQt5.QtWidgets import (QApplication,
  5                              QMainWindow,
  6                              QWidget,
  7                              QAction,
  8                              QLabel,
  9                              QTextEdit,
 10                              QLineEdit,
 11                              QPushButton,
 12                              QGridLayout)
 13 from PyQt5.QtCore import Qt
 14 from PyQt5.QtGui import QIcon
 15
 16
 17 class MainWindow(QMainWindow):
 18     def __init__(self, parent=None):
 19         super(MainWindow, self).__init__(parent, Qt.Window)
 20
 21         # 创建一个菜单栏:
 22         bar_menu = self.menuBar()
 23         # 为菜单栏添加文件菜单
 24         menu_file = bar_menu.addMenu(‘文件(&F)‘)
 25         # 为菜单栏添加编辑菜单
 26         menu_edit = bar_menu.addMenu(‘编辑(&E)‘)
 27
 28         # 添加一个动作:
 29         action_file = QAction(‘打开‘, self)
 30         # 为动作添加快捷建:
 31         # 值得注意的是在 MAC os 中 Ctrl 指的是 command 。
 32         action_file.setShortcut(‘Ctrl+O‘)
 33         # 为动作添加图标:
 34         action_file.setIcon(QIcon(‘open.png‘))
 35         # 将点击动作的信号连接到 action_open 方法:
 36         action_file.triggered.connect(self.action_open)
 37         # 将打开动作添加到文件菜单中:
 38         menu_file.addAction(action_file)
 39
 40         action_copy = QAction(‘复制‘, self)
 41         action_copy.setIcon(QIcon(‘copy.png‘))
 42         # 在 MAC os 中 Meta 才是 Ctrl 按钮:
 43         action_copy.setShortcut(‘Meta+C‘)
 44         action_copy.triggered.connect(self.action_copy)
 45         menu_edit.addAction(action_copy)
 46
 47         # 创建一个工具栏:
 48         bar_tool = self.addToolBar(‘工具栏‘)
 49         # 为工具栏添加按钮:
 50         bar_tool.addAction(action_file)
 51         # 为添加分割线:
 52         bar_tool.addSeparator()
 53         bar_tool.addAction(action_copy)
 54
 55         label_1 = QLabel(‘居右‘)
 56         # 设置Label的文字为居右并垂直居中:
 57         label_1.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
 58         label_2 = QLabel(‘宽度因子为 1‘)
 59         label_3 = QLabel(‘居中‘)
 60         # 设置Label的文字为居中并垂直居中:
 61         label_3.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)
 62         self.label_4 = QLabel(‘Label_4‘)
 63
 64         # 创建一个状态栏:
 65         status = self.statusBar()
 66         # 在状态栏显示信息:
 67         # 注意:显示信息时,组件不会显示
 68         # status.showMessage("Ready!")
 69         # 为状态栏添加一个stretch(拉伸因子)为1的Label
 70         status.addWidget(label_1, 1)
 71         status.addWidget(label_2, 1)
 72         status.addWidget(label_3, 3)
 73         status.addWidget(self.label_4, 1)
 74
 75         """
 76         为 QMainWindow 添加其他组件的方法:
 77         1. 将组件添加到一个布局中;
 78         2. 创建一个 QWidget 设置为 1 中的布局;
 79         3. 将 2 中的 QWidget 设为central widget 。
 80         """
 81
 82         line_edit = QLineEdit()
 83         # 为 line_edit 设置灰色提示文字:
 84         line_edit.setPlaceholderText(‘请输入...‘)
 85
 86         push_button = QPushButton()
 87         push_button.setText(‘确认‘)
 88
 89         text_edit = QTextEdit()
 90         text_edit.setPlaceholderText("编辑结果...")
 91
 92         # 创建一个网格布局:
 93         layout_grid = QGridLayout()
 94         layout_grid.addWidget(line_edit, 0, 0)
 95         layout_grid.addWidget(push_button, 0, 1)
 96         layout_grid.addWidget(text_edit, 1, 0, 2, 2)
 97
 98         # 创建一个 QWidget ,并将其布局设置为 layout_grid :
 99         widget = QWidget()
100         widget.setLayout(layout_grid)
101         # 将 widget 设为主窗口的 central widget :
102         self.setCentralWidget(widget)
103
104         # 设置窗口大小:
105         self.resize(500, 500)
106         # 设置窗口标题:
107         self.setWindowTitle(u"QMainWindow")
108         # 显示窗口:
109         self.show()
110
111     def action_open(self):
112         self.label_4.setText("按下了打开按钮!")
113
114     def action_copy(self):
115         self.label_4.setText("按下了复制按钮!")
116
117
118 if __name__ == "__main__":
119     app = QApplication(sys.argv)
120     window = MainWindow()
121     sys.exit(app.exec_())

效果如下图:

原文地址:https://www.cnblogs.com/jmtm/p/9828414.html

时间: 2024-10-06 23:51:55

【PyQt5 学习记录】005:QMainWindow 及状态栏、菜单栏和工具栏的相关文章

【PyQt5 学习记录】010:QSplitter

1 import sys 2 from PyQt5.QtWidgets import (QApplication, 3 QWidget, 4 QSplitter, 5 QTextEdit, 6 QPushButton, 7 QLabel) 8 from PyQt5.QtCore import (Qt, QSettings) 9 10 11 class Window(QWidget): 12 def __init__(self, parent=None): 13 super(Window, sel

在QMainwindow在对菜单栏以及工具栏的操作

别忘记 添加 头文件  #include <QMenuBar>   #include <QToolBar> 1 MainWindow::MainWindow(QWidget *parent) 2 : QMainWindow(parent) 3 { 4 resize(600,400); 5 //菜单栏的创建 6 QMenuBar *bar = menuBar(); 7 //将菜单栏放入到窗口 8 setMenuBar(bar); 9 //创建菜单 10 QMenu * fileMen

三、PyQt5不同方法创建菜单栏、工具栏和状态栏

创建菜单栏.工具栏和状态栏可以直接通过代码实现,也可以通过Qt Designer中的属性编辑器等实现.通过两种方法的学习可以加深理解,更好的掌握PyQt5. 一.菜单栏与状态栏 状态栏的设置比较简单,在设置菜单栏的同时,就可以实现状态栏显示的设置. 1.1 下拉菜单与子菜单 菜单栏位于窗体标题栏的下方,通过QMenu类可添加菜单栏的小控件,创建上下文菜单和弹出菜单.每个Qmenu对象都可以包含QAction对象.单击QAction按钮时,QMenu对象就会发射triggered信号实现功能需求.

Qt 学习之路 :菜单栏、工具栏和状态栏

在之前的<添加动作>一文中,我们已经了解了,Qt 将用户与界面进行交互的元素抽象为一种“动作”,使用QAction类表示.QAction可以添加到菜单上.工具栏上.期间,我们还详细介绍了一些细节问题,比如资源文件的使用.对象模型以及布局管理器.这一节则是详细介绍关于菜单栏.工具栏以及状态栏的相关内容. 我们假设窗口还是建立在QMainWindow类之上,这会让我们的开发简单许多.当然,在实际开发过程中,QMainWindow通常只作为“主窗口”,对话框窗口则更多地使用QDialog类.我们会在

Qt学习三 - 菜单栏、工具栏、状态栏

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); /** QAction是Qt中用于添加动作的类, * 可以将它添加在菜单,作为一个菜单项,也可以添加到工具栏,作为一个工具栏按钮 * 其中参数一是设置该操作按钮的图标,":/images/icon"是资源文件的路径 * 参数二中"&"号代表设

struts2 学习记录 过滤器 国际化

struts2接触不是一天两天了,但是一直没有用它做什么项目,但老师确一直说它有很大的学习价值,所以还是把我学习到的东西给记录一下,记录的东西没有规律,只是给自己留个备份, struts2中最关键的是action,action可以用来传值,用起来很方便,它可以用el表达式在jsp页面上展示出来,也可以用ognl,el只能表达作用域里面的值,而struts2里面还有个放数据的地方叫做ActionContext,这个类里面可以放不在作用域里的键值对,但是el表达式还是可以获取到,但是效率很低,所以尽

QT学习笔记(5) 菜单栏、工具栏、窗口、对话框

本程序主要介绍了以下几种常用控件的使用方法: (1)菜单栏.工具栏 (2)核心控件.状态栏.浮动窗口 (3)模态窗口.非模态窗口 (4)标准对话框.文件对话框 代码如下: mainwindow.h文件 1 #ifndef MAINWINDOW_H 2 #define MAINWINDOW_H 3 4 #include <QMainWindow> 5 #include <QDialog> 6 7 class MainWindow : public QMainWindow 8 { 9

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]

Objc基础学习记录5

NSMutableString类继承的NSString类. NSMutableString是动态的字符串. 1.appendingString 方式: 向字符串尾部添加一个字符串. 2.appendingFormat:可以添加多个类型的字符串. int,chat float,double等 3.stringWithString 创建字符串, 4.rangeOfString 返回str1在另一个字符串中的位置. 5.NSMakeRange(0,3) 字符串0位到3位. 6.deleteCharac