PythonQt练习

下面是一个简单登录界面的搭建

import sys# 从PySide6中导入必要的模块,用于创建GUI界面
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit
from QtCore import Qt# 导入Qt Designer生成的UI文件
from TAJ import Ui_Form
from second import Ui_Form2# 主窗口类,表示第一个登录页面
class MyWidget(Ui_Form, QWidget):def __init__(self):# 初始化QWidget并设置UI界面super().__init__()self.setupUi(self)# 通过对象名称查找子控件(按钮和文本框)self.btn1 = self.findChild(QPushButton, "log_on")  # 登录按钮self.btn2 = self.findChild(QPushButton, "cancel")  # 取消按钮self.userid = self.findChild(QLineEdit, "userid")  # 用户名输入框self.pwd = self.findChild(QLineEdit, "password")  # 密码输入框# 连接按钮点击事件到相应的函数self.btn1.clicked.connect(self.logon)  # 连接登录按钮点击事件到logon函数self.btn2.clicked.connect(self.exit)  # 连接取消按钮点击事件到exit函数def logon(self):# 处理登录操作的函数if self.userid.text() == "admin" and self.pwd.text() == "123456":  # 验证用户名和密码是否正确print("登录成功")  # 打印“登录成功”self.close()  # 关闭当前窗口self.second = Second()  # 创建第二个窗口的实例self.second.show()  # 显示第二个窗口else:print("登录失败")  # 打印“登录失败”self.userid.setText("")  # 清空用户名输入框self.pwd.setText("")  # 清空密码输入框def exit(self):# 处理取消按钮点击事件的函数print("取消登录")  # 打印“取消登录”self.close()  # 关闭当前窗口# 第二个页面类(登录成功后显示)
class Second(Ui_Form2, QWidget):def __init__(self):# 初始化QWidget并设置UI界面super().__init__()self.setupUi(self)# 程序主入口
if __name__ == "__main__":app = QApplication(sys.argv)  # 创建QApplication对象,程序必须有一个QApplication对象my_widget = MyWidget()  # 创建MyWidget类的实例my_widget.setWindowFlag(Qt.WindowType.FramelessWindowHint)  # 设置窗口为无边框my_widget.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)  # 设置窗口背景为透明my_widget.show()  # 显示主窗口sys.exit(app.exec())  # 启动事件循环,直到程序关闭

调用的主页面搭建如下

# -*- coding: utf-8 -*-################################################################################
## Form generated from reading UI file 'TomANDJerry.ui'
##
## Created by: Qt User Interface Compiler version 6.8.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,QMetaObject, QObject, QPoint, QRect,QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,QFont, QFontDatabase, QGradient, QIcon,QImage, QKeySequence, QLinearGradient, QPainter,QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QGroupBox, QLabel,QLineEdit, QPushButton, QRadioButton, QSizePolicy,QWidget)
import res_rcclass Ui_Form(object):def setupUi(self, Form):if not Form.objectName():Form.setObjectName(u"Form")Form.resize(634, 558)Form.setStyleSheet(u"*{\n"
"background-color: rgb(255, 255, 255);\n"
"}\n"
"QFrame#frame{\n"
"	border-image: url(:/\u732b\u9f20/\u732b\u548c\u8001\u9f20.jpg);\n"
"    border-radius: 30px;\n"
"}\n"
"#frame_2 {\n"
"	background-color: rgba(85, 170, 255, 80);\n"
"border-radius: 30px;\n"
"}\n"
"QLabel#backgr{\n"
"    border-radius:30px;\n"
"    background-color: rgba(83, 83, 83, 120);\n"
"}\n"
"#Title{\n"
"    background:transparent; /*\u5b8c\u5168\u900f\u660e*/\n"
"    \n"
"    font: 15pt \"\u7b49\u7ebf\";\n"
"    \n"
"    color: rgba(255, 255, 255, 130);\n"
"}\n"
"#Tom {\n"
"	border-image: url(:/\u732b\u9f20/\u732b.jpg);\n"
"}\n"
"#Jerry{\n"
"	border-image: url(:/\u732b\u9f20/\u9f20.jpg);\n"
"}\n"
"#user{\n"
"	background:transparent; /*\u5b8c\u5168\u900f\u660e*/\n"
"	border-image: url(:/\u732b\u9f20/\u7528\u6237.png);\n"
"}\n"
"#passwd{\n"
"	border-image: url(:/\u732b\u9f20/\u5bc6\u7801.jpg);\n"
"}\n"
"QLineEdit{\n"
"    background:transparent; /*\u5b8c\u5168\u900f\u660e*/\n"
"    border:none;\n"
"    border-bottom:1px solid rgba(255"", 255, 255, 130);\n"
"    color: rgba(0, 0, 0, 130);\n"
"    \n"
"    font: 18pt \"\u7b49\u7ebf\";\n"
"\n"
"}\n"
"QRadioButton{\n"
"	background:transparent; /*\u5b8c\u5168\u900f\u660e*/\n"
"}\n"
"QGroupBox{\n"
"	background:transparent; /*\u5b8c\u5168\u900f\u660e*/\n"
"	border:none;\n"
"}\n"
"QPushButton{\n"
"    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(35, 66, 202, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    border-radius:5px;\n"
"    font: 13pt \"\u7b49\u7ebf\";\n"
"    \n"
"    color: rgba(255, 255, 255, 130);\n"
"}\n"
"\n"
"QPushButton:hover{ /*\u9f20\u6807\u79fb\u52a8*/\n"
"    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(75, 66, 202, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    border-radius:5px;\n"
"    font: 13pt \"\u7b49\u7ebf\";\n"
"    \n"
"    color: rgba(255, 255, 255, 130);\n"
"}\n"
"\n"
"QPushButton:pressed{ /*\u9f20\u6807\u6309\u4e0b*/\n"
"    \n"
"    background-color: qlineargradient(spread:p""ad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(35, 66, 202, 255), stop:1 rgba(255, 0, 0, 255));\n"
"    border-radius:5px;\n"
"    font: 13pt \"\u7b49\u7ebf\";\n"
"    \n"
"    color: rgba(255, 255, 255, 130);\n"
"\n"
"    padding-top:5px;\n"
"    padding-left:5px;\n"
"}\n"
"")self.frame = QFrame(Form)self.frame.setObjectName(u"frame")self.frame.setGeometry(QRect(110, 50, 441, 421))self.frame.setFrameShape(QFrame.Shape.StyledPanel)self.frame.setFrameShadow(QFrame.Shadow.Raised)self.frame_2 = QFrame(self.frame)self.frame_2.setObjectName(u"frame_2")self.frame_2.setGeometry(QRect(0, 0, 441, 421))self.frame_2.setFrameShape(QFrame.Shape.StyledPanel)self.frame_2.setFrameShadow(QFrame.Shadow.Raised)self.backgr = QLabel(self.frame_2)self.backgr.setObjectName(u"backgr")self.backgr.setGeometry(QRect(50, 30, 351, 351))font = QFont()font.setPointSize(15)self.backgr.setFont(font)self.backgr.setAlignment(Qt.AlignmentFlag.AlignCenter)self.Title = QLabel(self.frame_2)self.Title.setObjectName(u"Title")self.Title.setGeometry(QRect(200, 80, 71, 31))font1 = QFont()font1.setFamilies([u"\u7b49\u7ebf"])font1.setPointSize(15)font1.setBold(False)font1.setItalic(False)self.Title.setFont(font1)self.Title.setAlignment(Qt.AlignmentFlag.AlignCenter)self.userid = QLineEdit(self.frame_2)self.userid.setObjectName(u"userid")self.userid.setGeometry(QRect(190, 180, 113, 20))self.password = QLineEdit(self.frame_2)self.password.setObjectName(u"password")self.password.setGeometry(QRect(190, 230, 113, 20))self.password.setEchoMode(QLineEdit.EchoMode.Password)self.log_on = QPushButton(self.frame_2)self.log_on.setObjectName(u"log_on")self.log_on.setGeometry(QRect(140, 310, 81, 31))self.user = QLabel(self.frame_2)self.user.setObjectName(u"user")self.user.setGeometry(QRect(150, 170, 41, 31))self.passwd = QLabel(self.frame_2)self.passwd.setObjectName(u"passwd")self.passwd.setGeometry(QRect(160, 220, 31, 31))self.groupBox = QGroupBox(self.frame_2)self.groupBox.setObjectName(u"groupBox")self.groupBox.setEnabled(True)self.groupBox.setGeometry(QRect(120, 250, 241, 51))font2 = QFont()font2.setKerning(True)self.groupBox.setFont(font2)self.rbtn2 = QRadioButton(self.groupBox)self.rbtn2.setObjectName(u"rbtn2")self.rbtn2.setGeometry(QRect(170, 30, 16, 20))self.rbtn2.setChecked(False)self.rbtn2.setAutoRepeat(True)self.rbtn1 = QRadioButton(self.groupBox)self.rbtn1.setObjectName(u"rbtn1")self.rbtn1.setGeometry(QRect(30, 30, 16, 20))self.rbtn1.setChecked(True)self.rbtn1.setAutoRepeat(False)self.Tom = QLabel(self.groupBox)self.Tom.setObjectName(u"Tom")self.Tom.setGeometry(QRect(50, 20, 41, 31))self.Jerry = QLabel(self.groupBox)self.Jerry.setObjectName(u"Jerry")self.Jerry.setGeometry(QRect(190, 20, 41, 31))self.cancel = QPushButton(self.frame_2)self.cancel.setObjectName(u"cancel")self.cancel.setGeometry(QRect(290, 310, 81, 31))self.retranslateUi(Form)QMetaObject.connectSlotsByName(Form)# setupUidef retranslateUi(self, Form):Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))self.backgr.setText("")self.Title.setText(QCoreApplication.translate("Form", u"log in ", None))self.userid.setPlaceholderText(QCoreApplication.translate("Form", u"Username", None))self.password.setPlaceholderText(QCoreApplication.translate("Form", u"Password", None))self.log_on.setText(QCoreApplication.translate("Form", u"\u767b\u5f55", None))self.user.setText("")self.passwd.setText("")self.groupBox.setTitle("")self.rbtn2.setText("")self.rbtn1.setText("")self.Tom.setText("")self.Jerry.setText("")self.cancel.setText(QCoreApplication.translate("Form", u"\u53d6\u6d88", None))# retranslateUi

登录成功的页面目前留白,没有搭建任何内容

# -*- coding: utf-8 -*-################################################################################
## Form generated from reading UI file 'second.ui'
##
## Created by: Qt User Interface Compiler version 6.8.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,QMetaObject, QObject, QPoint, QRect,QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,QFont, QFontDatabase, QGradient, QIcon,QImage, QKeySequence, QLinearGradient, QPainter,QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QSizePolicy, QWidget)class Ui_Form2(object):def setupUi(self, Form):if not Form.objectName():Form.setObjectName(u"Form")Form.resize(400, 300)self.retranslateUi(Form)QMetaObject.connectSlotsByName(Form)# setupUidef retranslateUi(self, Form):Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))# retranslateUi

结果展示:

 

登录成功跳转的页面

 

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

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

相关文章

【Windows系统下打造高效智能聊天平台LobeChat解锁远程协作新体验】

文章目录 前言1. LobeChat功能介绍2. 本地安装LobeChat3. 如何使用LobeChat工具4. 安装Cpolar内网穿透5. 实现公网访问LobeChat6. 固定LobeChat公网地址 前言 在这个数字化飞速发展的时代,人工智能已经深深地融入了我们的生活。从智能家居到自动驾驶,再…

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写)

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写) 1. 实验要求2. 功能分析3. 模块设计4. 波形图4.1 按键消抖模块4.2 按键控制蜂鸣器模块 5.代码编写5.1 rtl代码5.2 测试代码 6. 代码仿真7. 添加约束文件并分析综合 在上期的内容中&…

Linux 文本处理三剑客基本用法

Linux文本处理三剑客 - grep sed awk 1. 基本用法 grep 是一种强大的文本搜索工具,用于在文件中搜索指定的模式(通常是字符串或正则表达式),并输出匹配的行。以下是 grep 的一些基本用法: 基本语法 grep [选项] 模式…

美畅物联丨智能监控,高效运维:视频汇聚平台在储能领域的实践探索

在当今全球能源格局不断变化的大背景下,对清洁能源的需求正以惊人的速度增长。储能项目作为平衡能源供需、提升能源利用效率的关键环节,其规模和复杂度也在不断攀升。在储能项目的运营管理过程中,安全监控、设备运维以及数据管理等方面面临着…

记一次跑前端老项目的问题

记一次跑前端老项目的问题 一、前言二、过程1、下载依赖2、启动项目3、打包 一、前言 在一次跑前端老项目的时候,遇到了一些坑,这里记录一下。 二、过程 1、下载依赖 使用 npm install下载很久,然后给我报了个错 core-js2.6.12: core-js…

【AI系统】推理引擎架构

推理引擎架构 在深入探讨推理引擎的架构之前,让我们先来概述一下推理引擎的基本概念。推理引擎作为 AI 系统中的关键组件,负责将训练好的模型部署到实际应用中,执行推理任务,从而实现智能决策和自动化处理。随着 AI 技术的快速发…

opencvocr识别手机摄像头拍摄的指定区域文字,文字符合规则就语音报警

安装python,pycharm,自行安装。 Python下安装OpenCv 2.1 打开cmd,先安装opencv-python pip install opencv-python --user -i https://pypi.tuna.tsinghua.edu.cn/simple2.2 再安装opencv-contrib-python pip install opencv-contrib-python --user …

微信小程序购物车全选反选功能以及合计

微信小程序基于Vant Weapp的购物车功能实现 1、单选 使用微信小程序原生表单组件checkbox和checkbox-group 注意&#xff1a;checkbox原生不支持bind:change事件&#xff0c;checkbox-group支持 <checkbox-group bindchange"handleCheck"><checkbox val…

Linux输入设备应用编程

本章学习输入设备的应用编程&#xff0c;首先要知道什么是输入设备&#xff1f;输入设备其实就是能够产生输入事件的设备就称为输入设备&#xff0c;常见的输入设备包括鼠标、键盘、触摸屏、按钮等等&#xff0c;它们都能够产生输入事件&#xff0c;产生输入数据给计算机系统。…

Unity 利用Button 组件辅助Scroll View 滚动

实现 创建枚举类ScrollDir 以区分滚动方向。每组两个按钮负责同方向上左右/上下滚动。 Update 中实时获取Scroll View 滚动条当前位置。 if (dir.Equals(ScrollDir.vertical)) {posCurrent scroll.verticalNormalizedPosition; } else if (dir.Equals(ScrollDir.horizontal)…

Mac快速安装 chromedriver驱动

全篇大概1200字&#xff08;含代码&#xff09;&#xff0c;建议阅读时间5分钟。 什么是chromedriver&#xff1f; ChromeDriver 充当了 Selenium WebDriver 和 Chrome 浏览器之间的桥梁&#xff0c;允许开发者通过编程控制浏览器进行自动化测试或操作。 一、下载chromedriver…

【网络安全】网站常见安全漏洞 - 网站基本组成及漏洞定义

文章目录 引言1. 一个网站的基本构成2. 一些我们经常听到的安全事件3. 网站攻击者及其意图3.1 网站攻击者的类型3.2 攻击者的意图 4. 漏洞的分类4.1 按来源分类4.2 按危害分类4.3 常见漏洞与OWASP Top 10 引言 在当今的数字化时代&#xff0c;安全问题已成为技术领域不可忽视的…

快速上手 RabbitMQ:使用 Docker 轻松搭建消息队列系统

在现代的分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件、提高系统可扩展性和可靠性的重要工具。RabbitMQ 是一个广泛使用的开源消息代理软件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;&#xf…

字符串函数和内存函数

字符串函数 1、strlcpy 【字符串拷贝】 &#xff08;将原字符串中的字符拷贝到目标字符数组中&#xff0c;包括终止符号\0&#xff0c;并在这里停止&#xff1b;为了避免越界&#xff0c;目标字符串数组应该足够大去接收&#xff09;&#x1f446; &#xff08;返回值是 dest…

【机器学习】窥数据之序,悟算法之道:机器学习的初心与远方

文章目录 机器学习入门&#xff1a;从零开始学习基础与应用前言第一部分&#xff1a;什么是机器学习&#xff1f;1.1 机器学习的定义1.1.1 举个例子&#xff1a;垃圾邮件分类器 1.2 机器学习的核心思想1.2.1 数据驱动的模式提取1.2.2 为什么机器学习比传统方法更灵活&#xff1…

Dataset用load_dataset读图片和对应的caption的一个坑

代码&#xff1a; data_files {} if args.train_data_dir is not None:data_files["train"] os.path.join(args.train_data_dir, "**")dataset load_dataset("imagefolder",data_filesdata_files,cache_dirargs.cache_dir,) 数据&#xff1…

SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)

SpringBoot连接多数据源MySQL、SqlServer等&#xff08;MyBatisPlus测试&#xff09; 在实际的项目开发中&#xff0c;我们往往需要同时连接多个数据源对数据进行处理。本文将详细介绍在SpringBoot下配合MybatisPlus如何连接多数据源&#xff0c;实例将会使用连接MySQL、SqlSe…

GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

认识自定义协议

经过前面的介绍&#xff0c;我们知道TCP/IP协议有一组五层模型&#xff0c;从上往下为应用层、传输层、网络层、数据链路层和物理层&#xff0c;且在网络中传输的数据都必须经过这几层模型的封装和分用&#xff0c;作为程序员&#xff0c;我们最经常打交道的就是应用层。程序员…

【论文复现】隐式神经网络实现低光照图像增强

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 隐式神经网络实现低光照图像增强 引言那么目前低光照图像增强还面临哪些挑战呢&#xff1f; 挑战1. 不可预测的亮度降低和噪声挑战2.度量友好…