Python学习线路图

第三天补充内容:PyQt综合案例

需求:
实现一个用户注册界面,并将用户注册信息打印出来。
具体内容包括:
用户名、密码、性别、爱好、个性签名、择偶要求、确认注册按钮

实现效果图如下:
在这里插入图片描述

分析:

效果图整体呈现竖直布局;
局部可分三部分:1表单布局(用户名,密码,性别,爱好,个性签名);
2水平布局(择偶要求 多行输入文本框);
3注册按钮。

代码

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys

#槽函数 获取注册用户信息
def func():
    name=nameEdit.text()
    pwd=pwdEdit.text()
    #获取性别信息
    sex=None
    if rb1.isChecked():  #isChecked用来判断
        sex='男'
    elif rb2.isChecked():
        sex='女'
    else:
        sex='妖'
    #爱好信息
    hobis=[]  #可能不止一个爱好 用列表
    if ck1.isChecked():
        hobis.append(ck1.text())
    if ck2.isChecked():
        hobis.append(ck1.text())
    if ck3.isChecked():
        hobis.append(ck1.text())
    #个性签名
    sig=sigEdit.text()
    #择偶要求
    label=LabelEdit.toPlainText()   #注意这多行文本与单行文本不一样 用toPlainText获取

    #输出 格式化输出 列表没有具体的格式
    print('用户名:{},密码:{},性别:{},爱好:{},个性签名:{},择偶要求:{}'.format(name,pwd,sex,hobis,sig,label))
#1创建应用程序
app=QApplication(sys.argv)

#2创建窗口
w=QWidget()
w.setWindowTitle('注册界面')
icon=QIcon('China.ico')
w.setWindowIcon(icon)

#整体垂直布局
wholelayout=QVBoxLayout()
w.setLayout(wholelayout)

# 第一部分 表单布局
formlayout=QFormLayout()
#输入框
nameEdit=QLineEdit()
nameEdit.setPlaceholderText('请输入用户名')
pwdEdit=QLineEdit()
pwdEdit.setPlaceholderText('请输入密码')
#性别 单选框
sexLayout=QHBoxLayout()
rb1=QRadioButton('男')
rb2=QRadioButton('女')
rb3=QRadioButton('妖')
sexLayout.addWidget(rb1)
sexLayout.addWidget(rb2)
sexLayout.addWidget(rb3)
#默认选中rb1
rb1.setChecked(True)
#爱好 复选框
hobLayout=QHBoxLayout()
ck1=QCheckBox('读书')
ck2=QCheckBox('跑步')
ck3=QCheckBox('听歌')
hobLayout.addWidget(ck1)
hobLayout.addWidget(ck2)
hobLayout.addWidget(ck3)
#签名
sigEdit=QLineEdit()

formlayout.addRow('用户名:',nameEdit)
formlayout.addRow('密  码:',pwdEdit)
formlayout.addRow('性  别:',sexLayout)
formlayout.addRow('爱  好:',hobLayout)
formlayout.addRow('个性签名:',sigEdit)

#第二部分 择偶要求 水平布局
hLayout=QHBoxLayout()
label=QLabel('择偶要求:')
LabelEdit=QTextEdit()
hLayout.addWidget(label)
hLayout.addWidget(LabelEdit)

#第三部分 注册按钮  可直接放到整体布局
btn=QPushButton()
btn.setText('注册按钮')
btn.setFixedSize(100,30)  #尺寸大小
# 绑定按钮点击的信号和处理的槽函数
btn.clicked.connect(func)

#表单布局添加到整体布局中
wholelayout.addLayout(formlayout)
wholelayout.addLayout(hLayout)
wholelayout.addWidget(btn,alignment=Qt.AlignHCenter)  #参数水平居中

#3显示窗口
w.show()

#4等待窗口停止
sys.exit(app.exec())

程序运行效果:
在这里插入图片描述打印信息:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值