当前位置: 首页 > wzjs >正文

一流的上海网站建设公武汉seo网站推广

一流的上海网站建设公,武汉seo网站推广,wordpress站群目录收录,专业的营销型网站目录 1、注册界面 2、自定义信号和槽 1、注册界面 注册用户需要填写基本信息,如用户名、密码、性别、爱好、个性签名,个人介绍等,要求用户按下按钮事件后打印所有用户填写的信息 from PyQt5.QtWidgets import * import sysclass ZCWindow(…

目录

1、注册界面

2、自定义信号和槽


1、注册界面

        注册用户需要填写基本信息,如用户名、密码、性别、爱好、个性签名,个人介绍等,要求用户按下按钮事件后打印所有用户填写的信息

from PyQt5.QtWidgets import *
import sysclass ZCWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('注册登录页面')wholeLayout = QVBoxLayout()self.setLayout(wholeLayout)self.resize(420,300)# 第一部分layout1 = QHBoxLayout()label1 = QLabel('用户名')self.edit1 = QLineEdit()self.edit1.setPlaceholderText('请输入用户名')self.edit1.setStyleSheet("QLineEdit { border: 1px solid black; }")layout4 = QHBoxLayout()label2 = QLabel('密码')self.edit2 = QLineEdit('')self.edit2.setPlaceholderText('请输入密码')self.edit2.setEchoMode(QLineEdit.Password)self.edit2.setStyleSheet("QLineEdit { border: 1px solid black; }")# 第二部分layout2 = QHBoxLayout()label3 = QLabel('性别')self.btn1 = QRadioButton('男')self.btn2 = QRadioButton('女')layout5 = QHBoxLayout()label4 = QLabel('选择关联账号')self.ck1 = QCheckBox('微信关联')self.ck2 = QCheckBox('QQ关联')self.ck3 = QCheckBox('支付宝关联')#第三部分layout3 = QHBoxLayout()label5 = QLabel('个性签名')self.edit3 = QTextEdit()self.edit3.setPlaceholderText('请输入个性签名')self.edit3.setStyleSheet("QTextEdit { border: 1px solid black; }")layout6 = QHBoxLayout()label6 = QLabel('个人简介')self.edit4 = QTextEdit()self.edit4.setPlaceholderText('请输入个人简介')self.edit4.setStyleSheet("QTextEdit { border: 1px solid black; }")btn = QPushButton('提交')btn.clicked.connect(self.click)# 绑定第一部分layout1.addWidget(label1)layout4.addWidget(label2)layout1.addWidget(self.edit1)layout4.addWidget(self.edit2)# 绑定第二部分layout2.addWidget(label3)layout2.addWidget(self.btn1)layout2.addWidget(self.btn2)layout5.addWidget(label4)layout5.addWidget(self.ck1)layout5.addWidget(self.ck2)layout5.addWidget(self.ck3)# 绑定第三部分layout3.addWidget(label5)layout3.addWidget(self.edit3)layout6.addWidget(label6)layout6.addWidget(self.edit4)#layout3.addWidget(btn)# 将所有布局添加到主布局wholeLayout.addLayout(layout1)wholeLayout.addLayout(layout4)wholeLayout.addLayout(layout2)wholeLayout.addLayout(layout5)wholeLayout.addLayout(layout3)wholeLayout.addLayout(layout6)wholeLayout.addWidget(btn)def click(self):# 获取用户输入的信息username = self.edit1.text()password = self.edit2.text()gender = "男" if self.btn1.isChecked() else "女" if self.btn2.isChecked() else "未选择"accounts = []if self.ck1.isChecked():accounts.append("微信")if self.ck2.isChecked():accounts.append("QQ")if self.ck3.isChecked():accounts.append("支付宝")signature = self.edit3.toPlainText()introduction = self.edit4.toPlainText()# 打印所有信息print(f"用户名: {username}")print(f"密码: {password}")print(f"性别: {gender}")print(f"关联账号: {', '.join(accounts)}")print(f"个性签名: {signature}")print(f"个人简介: {introduction}")if __name__ == '__main__':app = QApplication(sys.argv)zc = ZCWindow()zc.show()sys.exit(app.exec())

2、自定义信号和槽

①为什么要使用信号和槽?

将不同作用的代码分成不同的小块,提高代码的可读性和可维护性。

②在文件内部定义信号和槽

1、定义信号:在类中定义信号,可以通过pyqtSignal()创建一个信号对象。

2、定义槽:在类中定义槽函数,使用@pyqtSlot()装饰器注册槽函数

3、连接信号和槽:使用信号.connect(槽函数)将信号和槽连接起来

4、触发信号:在触发信号的地方,使用信号.emit()触发该信号,参数和槽函数一致

from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject
from PyQt5.QtWidgets import QApplication
import sys# 信号所在类:必须继承QObject,并且在初始化函数中调用super的初始化函数
class MyObject(QObject):# a. 定义一个自定义信号my_signal = pyqtSignal(str)# b. 定义一个槽函数@pyqtSlot(str)def my_slot(self, message):print("Received message: ", message)app = QApplication(sys.argv)
# 创建一个对象
obj = MyObject()
# c. 连接信号和槽 
obj.my_signal.connect(obj.my_slot)
# d. 触发信号
obj.my_signal.emit("Hello, World!")sys.exit(app.exec_())
③在不同文件中定义信号和槽

假设文件结构

project/
├── main.py
├── signal_module.py
└── slot_module.py

在signal_module.py

# signal_module.py
from PyQt5.QtCore import QObject, pyqtSignalclass SignalEmitter(QObject):# 定义一个自定义信号customSignal = pyqtSignal(str)def __init__(self):super().__init__()def emit_signal(self, message):# 发出信号self.customSignal.emit(message)

在slot_module.py

# slot_module.py
from PyQt5.QtCore import QObjectclass SlotReceiver(QObject):def __init__(self):super().__init__()def handle_signal(self, message):# 槽函数# f 格式化字符串非常简洁,不需要额外的格式化方法或占位符。print(f"收到信号: {message}")

在main.py

# main.py
from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
from signal_module import SignalEmitter
from slot_module import SlotReceiver
import sysclass MainWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('信号和槽示例')layout = QVBoxLayout()self.setLayout(layout)# 创建信号发射器self.emitter = SignalEmitter()# 创建槽接收器self.receiver = SlotReceiver()# 将信号连接到槽# 将 SignalEmitter 类中的 customSignal 信号连接到 SlotReceiver 类中的 handle_signal 槽函数self.emitter.customSignal.connect(self.receiver.handle_signal)# 创建一个按钮self.button = QPushButton('触发信号')self.button.clicked.connect(self.trigger_signal)layout.addWidget(self.button)def trigger_signal(self):# 触发 SignalEmitter 类中的 customSignal 信号,并传递一个字符串参数 "Hello, Signal!"self.emitter.emit_signal("Hello, Signal!")if __name__ == '__main__':app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec())

http://www.dtcms.com/wzjs/320806.html

相关文章:

  • 昌黎县城乡建设局网站网站设计需要什么
  • 个人网站备案所需材料手机优化游戏性能的软件
  • 从客户—管理者为某一公司做一份电子商务网站管理与维护的方案seo1域名查询
  • 电子商务网站建设指导思想360搜索优化
  • 网站服务器做缓存漯河网站推广公司
  • 网站优化待遇网站数据分析
  • 珠海斗门建设局官方网站上百度首页
  • 长春长春网站建设公司短链接购买
  • 锦州做网站公司百度如何优化排名靠前
  • 营销型网站备案网络推广课程培训
  • 怎样建设网站后台百度网页版主页网址
  • 十堰做网站排名百度seo关键词优化
  • 网站自建设需要买什么手续域名注册需要什么条件
  • 衡水安徽学校网站建设北京网络优化推广公司
  • 网站建设验收程序广州seo服务外包
  • 自己怎么建购物网站seo怎么收费seo
  • 密云区免费网站建设微信引流被加软件
  • 蛋糕网站建设方案深圳整站全网推广
  • 广州seo网站推广公司全网整合营销
  • 个人网站后期怎么做企业公司管理培训课程大全
  • h5开发需要掌握什么厦门seo测试
  • 网站seo新手关键词优化搜索引擎
  • c#购物网站开发流程首页关键词排名
  • 做网站图标按钮素材百度广告代理商
  • 做网站的语言网上推广企业
  • 留言墙 wordpress曲靖seo
  • 烟台装修公司网站建设网站统计
  • 吴江区城乡建设局网站网站网络排名优化方法
  • 广告业网站开发崇左seo
  • wordpress制造商单页seo运营学校