PyQt5设置按钮菜单和信号与槽函数的连接

news2024/11/27 12:37:09

目录

一、Qt Designer 在窗口中添加菜单和工具栏

二、源代码

1、界面代码

2、逻辑代码

3、演示

三、相关功能


一、Qt Designer 在窗口中添加菜单和工具栏

右键可以选择创建菜单栏。创建后双击【在这里输入】,然后输入菜单名,敲下回车确认,如图所示

二、源代码

1、界面代码

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(630, 369)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(50, 90, 511, 121))
        font = QtGui.QFont()
        font.setPointSize(50)
        self.label.setFont(font)
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 630, 22))
        self.menuBar.setObjectName("menuBar")
        self.A = QtWidgets.QMenu(self.menuBar)
        self.A.setObjectName("A")
        self.C = QtWidgets.QMenu(self.A)
        self.C.setObjectName("C")
        MainWindow.setMenuBar(self.menuBar)
        self.B = QtWidgets.QAction(MainWindow)
        self.B.setObjectName("B")
        self.D = QtWidgets.QAction(MainWindow)
        self.D.setObjectName("D")
        self.C.addAction(self.D)
        self.A.addAction(self.B)
        self.A.addAction(self.C.menuAction())
        self.menuBar.addAction(self.A.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "没有结果"))
        self.A.setTitle(_translate("MainWindow", "A"))
        self.C.setTitle(_translate("MainWindow", "C"))
        self.B.setText(_translate("MainWindow", "B"))
        self.D.setText(_translate("MainWindow", "D"))

2、逻辑代码

# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from untitled import Ui_MainWindow


class MyMainForm(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MyMainForm, self).__init__(parent)
        self.setupUi(self)

        self.B.triggered.connect(self.select_change2)
        self.D.triggered.connect(self.select_change4)

    def select_change2(self,):
        self.label.setText("2")

    def select_change4(self,):
        self.label.setText("4")


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

3、演示

我们选中,则会触发相应操作

三、相关功能

我们可以通过在界面文件的retranslateUi函数中,添加以下代码增加快捷键

self.B.setShortcut('Alt+Insert')

连接槽函数,我们的动作信号为triggered

self.B.triggered.connect(self.select_change2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV图像处理——图像平滑

目录 图像噪声椒盐噪声高斯噪声图像平滑简介均值滤波高斯滤波中值滤波 图像噪声 椒盐噪声 随机出现的黑白噪声 高斯噪声 噪声的灰度值符合高斯分布 图像平滑简介 均值滤波 cv.blur(src,ksize,anchor,borderType)import numpy as np import cv2 as cv import matplotlib.…

matlab使用教程(15)—图论基础

1.有向图和无向图 1.1什么是图? 图是表示各种关系的节点和边的集合: • 节点 是与对象对应的顶点。 • 边 是对象之间的连接。 • 图的边有时会有权重 ,表示节点之间的每个连接的强度(或一些其他属性)。 这些定…

【Vue-Router】使用 prams 路由传参失效

报错信息: [Vue Router warn]: Discarded invalid param(s) “name”, “price”, “id” when navigating. list.json {"data": [{"name": "面","price":300,"id": 1},{"name": "水",&quo…

【力扣每日一题】617. 合并二叉树 dfs bfs 8.14打卡

文章目录 题目思路代码 题目 617. 合并二叉树 难度: 简单 描述: 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会&#xff0…

AIGC热潮涌动 HashData如何降低大模型应用门槛?

当前,以ChatGPT为代表的大语言模型(LLM)正在掀起新一轮的AI 浪潮,数字产业生态也迎来前所未有的变局。随着大模型应用的兴起,如何低成本地实现大模型的构建和应用,成为企业关注的重点。 数据仓库是企业数据…

网络安全--筛选给定范围内的日志

目录 pass:在观看此篇前先看上篇的awk介绍 一、文件 二、第一方法 1.步骤 ​编辑三、第二方法: awk内容: 结果: 四、第二要求 统计独立ip 操作步骤: 1.先创建文件写入一下测试内容: 2.书写awk代码…

Redis缓存穿透、击穿和雪崩

1、Redis缓存穿透 缓存穿透是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。用户拿不到数据时,就会一直发请求,查询数据库,这样…

如何在电力行业运用IPD?

电力行业是国民经济众多垄断行业中较早实施改革的行业之一。近几年我国电力行业保持着较快的发展速度,也取得了很大的成绩,发电机容量和发电量居世界首位。2015-2020年,全国发电量不断攀升。 电力是以电能作为动力的能源。电力的发现和应用掀…

MR300C工业无线WiFi图传模块 内窥镜机器人图像传输有线无线的两种方式

MR300C无线WiFi图传模使用方法工业机器人图像高清传输 ⚫ MR300C图传模块基于MIPS处理器实现,电脑/手机连接模块的WIFI热点或网口即可查看视频流 ⚫ 模块的USB 2.0 Host接口,可接入USB uvc摄像头/内窥镜默认输出的视频格式必须是MJPG ⚫ 模块支持接入摄…

Linux 主函数参数介绍

主函数如下: int main( int argc, char* argv[], char* envp[]) 参数分析如下: (1) argc 参数个数 (2) argv 参数内容,是char*类型,说明传给主函数的内容是一个一个的字符串。 (3) envp 环境变量,传给主函数的也…

蓝牙入耳式耳机老是滑出来,耳朵小适合戴什么样的骨传导耳机

最近体验了几款骨传导耳机,分享下我的使用感受。首先说一下为什么要选择骨传导耳机,我之前是使用入耳式耳机,戴久了耳朵会疼,而且晚上睡觉不能戴。于是就考虑骨传导耳机,因为骨传导耳机在传声的过程中不需要经过耳膜&a…

【Elasticsearch】学好Elasticsearch系列-脚本查询

本文已收录至 Github,推荐阅读 👉 Java 随想录 先看后赞,养成习惯。 点赞收藏,人生辉煌。 文章目录 概念支持的语言Painless特点简单例子 Scripting的CRUDinsert(新增)update(更新)d…

智能工厂:适应不断变化的制造世界

制造业已经从过去传统的装配线工艺流程中走了很长一段路。随着技术的进步和工业 4.0 的兴起,制造业正在迅速发展,以满足现代世界不断变化的需求。近年来出现的一个关键概念就是“智能工厂”。在这篇文章中,我们将探讨什么是智能工厂、它是如何…

为什么要学PMP项目管理?

为什么要学习PMP呢,主要有以下五点: 01提升个人能力 PMP是一个系统学习的过程,充分理解各个项目管理的过程以及项目管理的各个过程组、知识领域等,可以从理论上掌握项目经理应具有的理论素质。能够知道如何对执行的项目进行系统…

【Docker】个人镜像文件Dockerfile制作详解

前言 洁洁的个人主页 我就问你有没有发挥! 知行合一,志存高远。 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是…

jupyter打开ipynb后,还没有运行cell,反复报错

今天遇到了一个比较奇怪的问题: 这个原因是当前目录下有一个code.py的文件,一旦打开ipynb,就是先执行code.py,而且遇到报错,还会反复执行,导致内核崩溃。

Windows 11 家庭中文版找不到组策略文件gpedit.msc

最近因为调整日期问题需要用到组策略文件gpedit.msc,但是发现找不到文件 在按键盘 winR 打开运行界面输入 gpedit.msc 回车 Windows找不到文件’gpedit.msc’。请确定文件名是否正确后,再试-次。 检查电脑Windows系统版本 是 Windows 11 家庭中文版 果断早网上搜…

生信豆芽菜-单基因预后

网址:http://www.sxdyc.com/panCancerPrognosis 该工具主要用于查看单基因在泛癌的预后情况,这里默认用火山图展示 提交后等待运行成功即可,还可以关注公众号:豆芽数据分析

617-合并二叉树

题目: 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果…

How to install GrayLog5.1.2 with one-click script

先决条件: CentOS7.9 OpenSearch2.7 环境下安装 GrayLog5.1 基础环境及组件版本说明 1、CentOS7.9 2、GrayLog5.1.2 3、MongoDB6.0 4、OpenSearch2.8 1. 准备一台 Centos 7.9 主机 最低配置要求 CPU*8 内存16GB HDD500 正式环境根据需要来 2. 一键安装属于…