Python基础-pyqt5
PyQt
PyQt框架简介
PyQt是一套Python的GUI开发框架
GUI
GUI是Graphical User Interface的英文简称,即图形用户界面. 是指采用图形方式显示的计算机操作用户界面.
在Python中经常使用的GUI控件集有PyQt、Tkinter、wxPython、Kivy、PyGUI和Libavg,其中PyQt是Qt(c++语言实现的)为Python专门提供的GUI扩展
Qt
Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面开发框架。
2008年,Qt Company被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。
2012年,Qt被Digia收购。 2
014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布
PyQt
PyQt是一个用于创建GUI应用程序的跨平台的工具包,它将Python编程语言和Qt库成功融合在一起.
可以运行在所有主流的操作系统上.包括windows、unix以及macos PyQt拥有620多个类,将近6000个函数
PyQt版本的区别
PyQt有PyQt3、PyQt4以及PyQt5版本. 现在一般用的就是、PyQt4和、PyQt5 Qt4 Qt5(最常用)
PyQt5相比PyQt4的区别:(python:不向下兼容)
1. 不支持python2.6之前的版本
2. PyQt5 不支持任何在PyQt4版本中标记为不推荐或舍弃的Qt API
PyQt的特性
基础高性能的Qt的GUI控件集
能够跨平台运行在windows、linux和macos等系统上
使用信号/槽(signal/slot)机制进行通信(其它语言采用回调方式)
对Qt库的完全封装
可以使用Qt成熟的IDE(Qt Designer)进行图形界面设计,并自动生成可执行的Python代码
提供了一整套种类繁多的窗口控件
PyQt环境搭建
PyQt官网
Riverbank Computing | Introduction
PyQt的安装方式
1. 到官网下载PyQt5的最新源码进行编译安装
2. 使用pip install进行在线安装
pip
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。
Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具
通过pip install安装PyQt5
第一步:配置国内镜像 直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini.内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
timeout = 150
通过pip install安装PyQt5
第二步:使用下面命令安装PyQt5
第三步:安装常用的Qt工具
第四步:把PyQt-tools的安装目录添加到系统环境变量中
测试PyQt环境
1.进入cmd命令
2. 进入python交互式命令行
3. 在交互式命令下执行下面代码
4. 如果执行成功就说明环境搭建完成
查看PyQt版本:
1.第一个pyqt窗口
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
窗口处理:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('黑马窗口')icon = QIcon('qq.png')
# 修改图标
w.setWindowIcon(icon)"""------------------ 移动窗口到中心位置 ------------------"""
# 屏幕的宽度和高度
geometry = QDesktopWidget().screenGeometry()
screenWidth = geometry.width()
screenHeight = geometry.height()
# 窗口的宽度和高度
geometry = w.geometry()
windowWidth = geometry.width()
windowHeight = geometry.height()# x = (屏幕宽度-窗口宽度)/2
x = (screenWidth-windowWidth)/2
# y = (屏幕高度-窗口高度)/2
y = (screenHeight-windowHeight)/2# 移动窗口到x和y坐标
w.move(x+600,y)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
气泡提示:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('气泡提示窗口')"""------------------ 气泡提示 ------------------"""
w.setToolTip('这个一个气泡提示的窗口')# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
文本展示:
from PyQt5.QtWidgets import QWidget,QApplication,QLabel
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('文本展示')"""------------------ 展示文本 ------------------"""
label = QLabel()
label.setText('第一个文本')
# 将文本控件添加到窗口中
label.setParent(w)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
图片展示:
from PyQt5.QtWidgets import QWidget,QApplication,QLabel
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon,QPixmap
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('图片展示')"""------------------ 展示图片 ------------------"""
label = QLabel()
pixmap = QPixmap('i.jpg')
label.setPixmap(pixmap)
# 显示到窗口中
label.setParent(w)# 改变窗口大小
w.resize(pixmap.width(),pixmap.height())# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
动画展示:
from PyQt5.QtWidgets import QWidget,QApplication,QLabel
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon,QMovie
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('图片展示')"""------------------ 展示图片 ------------------"""
label = QLabel()
movie = QMovie('b.gif')
label.setMovie(movie)
# 展示到窗口中
label.setParent(w)
# 动画开启播放
movie.start()
# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
单行输入QLineEdit:
from PyQt5.QtWidgets import QApplication,QWidget,QLineEdit
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('单行输入框')
"""------------------ 展示单行输入框 ------------------"""
edit = QLineEdit()
# setEchoMde
# 默认模式
# edit.setEchoMode(QLineEdit.Normal)
# edit.setEchoMode(QLineEdit.NoEcho)
# edit.setEchoMode(QLineEdit.Password)
# edit.setEchoMode(QLineEdit.PasswordEchoOnEdit)# 设置输入框提示
# edit.setPlaceholderText('请输入用户名')# 设置文本
edit.setText('张三')# 设置输入框最大字符数
edit.setMaxLength(10)
# 显示输入框
edit.setParent(w)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
多行输入框QTextEdit:
from PyQt5.QtWidgets import QApplication,QWidget,QTextEdit
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('多行输入框')
"""------------------ 多行输入框 ------------------"""
edit = QTextEdit()# 设置提示内容
# edit.setPlaceholderText('请输入发表的内容')
# 设置文本内容
edit.setPlainText('武汉疫情')
# 获取输入的内容
# print(edit.toPlainText())
edit.clear()# 显示多行输入框
edit.setParent(w)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
按钮QPushButton:
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef func():pass# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('普通按钮')
"""------------------ 显示普通按钮 ------------------"""
btn = QPushButton()
# 添加按钮提示
# btn.setText('登录')
icon = QIcon('qq.png')
btn.setIcon(icon)
# 提示气泡
btn.setToolTip('登录按钮')
# 展示按钮
btn.setParent(w)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
信号和槽的绑定:
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef click():print('hello')# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('信号和槽的绑定')
"""------------------ 添加按钮 ------------------"""
btn = QPushButton()
btn.setText('点我')
btn.setParent(w)# 绑定按钮点击的信号和处理的槽函数
# clicked 信号
# click定义的槽函数
# btn.clicked.connect(click)
"""------------------ 槽函数使用lambda表达式 ------------------"""
# 信号和槽函数参数必须要保持一致
# 如果信号中参数有= 槽函数可以不用添加
btn.clicked.connect(lambda :print('hello'))# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
获取信号的发送者:
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# def click():
# # 同一个槽函数可以绑定不同的信号
# # 如何知道当前信号的发送者
# sendBtn = w.sender()
# # 修改发送者按钮 对应的文字
# sendBtn.setText('邮件')def func(sender):sender.setText('邮件')# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('信号和槽的绑定')
"""------------------ 添加按钮 ------------------"""
btn = QPushButton()
btn.setText('点我')
btn.setParent(w)# 绑定按钮点击的信号和处理的槽函数
# clicked 信号
# click定义的槽函数
# btn.clicked.connect(click)# 信号clicked
# 槽函数:lambda
btn.clicked.connect(lambda :func(btn))# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
使用系统的槽函数:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef func():# 关闭窗口QApplication.quit()# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('使用系统的槽函数')
"""------------------ 创建按钮 ------------------"""
btn = QPushButton()
btn.setText('关闭窗口')
# 显示按钮
btn.setParent(w)"""------------------ 信号和槽绑定 ------------------"""
# btn.clicked.connect(func)
btn.clicked.connect(QApplication.quit)# 使用QApplication的quit方法# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
绝对布局:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('绝对布局')
"""------------------ 展示两个按钮 ------------------"""
btn1 = QPushButton()
btn2 = QPushButton()
btn1.setText('按钮1')
btn2.setText('按钮2')# 显示
btn1.setParent(w)
btn2.setParent(w)# 设置btn2坐标
btn2.move(200,200)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
水平布局:
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QHBoxLayout
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()
# 修改窗口大小
w.setFixedSize(1000,600)# 修改窗口标题
w.setWindowTitle('水平布局')
"""------------------ 创建按钮 ------------------"""
btn1 = QPushButton('1')
btn2 = QPushButton('2')
btn3 = QPushButton('3')
btn4 = QPushButton('4')
btn5 = QPushButton('5')
# 创建布局
layout = QHBoxLayout()
# 添加布局到窗口中
w.setLayout(layout)
# 按钮控件添加到布局中
layout.addWidget(btn1)
layout.addWidget(btn2,alignment=Qt.AlignTop)
layout.addWidget(btn3)
layout.addWidget(btn4,alignment=Qt.AlignBottom)
layout.addWidget(btn5)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
竖直布局:
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QVBoxLayout
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()
w.setFixedSize(1000,600)# 修改窗口标题
w.setWindowTitle('竖直布局')
"""------------------ 创建5个按钮 ------------------"""
btn1 = QPushButton('1')
btn2 = QPushButton('2')
btn3 = QPushButton('3')
btn4 = QPushButton('4')
btn5 = QPushButton('5')btn1.setFixedSize(100,50)
btn2.setFixedSize(100,50)
btn3.setFixedSize(100,50)
btn4.setFixedSize(100,50)
btn5.setFixedSize(100,50)# 创建布局
layout = QVBoxLayout()
# 布局添加到窗口中
w.setLayout(layout)# 控件添加到布局中
layout.addWidget(btn1)
layout.addWidget(btn2,alignment=Qt.AlignRight)
layout.addWidget(btn3)
layout.addWidget(btn4,alignment=Qt.AlignHCenter)
layout.addWidget(btn5)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
设置伸缩量:
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QHBoxLayout
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()
# 修改窗口大小
w.setFixedSize(1000,600)# 修改窗口标题
w.setWindowTitle('水平布局')
"""------------------ 创建按钮 ------------------"""
btn1 = QPushButton('1')
btn2 = QPushButton('2')
btn3 = QPushButton('3')
btn4 = QPushButton('4')
btn5 = QPushButton('5')
# 创建布局
layout = QHBoxLayout()
# 添加布局到窗口中
w.setLayout(layout)
# 按钮控件添加到布局中
layout.addStretch(1)
layout.addWidget(btn1)
layout.addStretch(1)
layout.addWidget(btn2)
layout.addStretch(3)
layout.addWidget(btn3)
layout.addStretch(1)
layout.addWidget(btn4)
layout.addStretch(2)
layout.addWidget(btn5)
layout.addStretch(1)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
表单布局:
from PyQt5.QtWidgets import QApplication,QWidget,QLineEdit,QFormLayout,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef func():name = nameEdit.text()age = int(ageEdit.text())phone = phoneEdit.text()print('姓名:%s,年纪:%d,电话:%s'%(name,age,phone))# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('表单布局')
"""------------------ 创建布局 ------------------"""
layout = QFormLayout()
# 添加到窗口中
w.setLayout(layout)# 输入框
nameEdit = QLineEdit()
ageEdit = QLineEdit()
phoneEdit = QLineEdit()
btn = QPushButton('发送')# 添加到布局中
layout.addRow('姓名',nameEdit)
layout.addRow('年纪',ageEdit)
layout.addRow('电话',phoneEdit)
layout.addRow('',btn)# 信号和槽绑定
btn.clicked.connect(func)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
嵌套布局:
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QHBoxLayout,QVBoxLayout,QFormLayout
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('嵌套布局')"""------------------ 实现布局 ------------------"""
# 整体水平布局
wholeLayout = QHBoxLayout()
# 添加整体布局
w.setLayout(wholeLayout)# 每一部分布局
layout1 = QHBoxLayout()
layout2 = QVBoxLayout()
layout3 = QVBoxLayout()
layout4 = QVBoxLayout()
layout5 = QVBoxLayout()# 添加到整体的布局中
wholeLayout.addLayout(layout1)
wholeLayout.addLayout(layout2)
wholeLayout.addLayout(layout3)
wholeLayout.addLayout(layout4)
wholeLayout.addLayout(layout5)# 控件
btn1 = QPushButton('1')
btn2 = QPushButton('2')
btn3 = QPushButton('3')
btn4 = QPushButton('4')
btn5 = QPushButton('5')
btn6 = QPushButton('6')
btn7 = QPushButton('7')
btn8 = QPushButton('8')
btn9 = QPushButton('9')
btn10 = QPushButton('10')
btn11 = QPushButton('11')
btn12 = QPushButton('12')# 添加第一部分控件
layout1.addWidget(btn1)
layout1.addWidget(btn2)
# 添加第二部分控件
layout2.addWidget(btn3)
layout2.addWidget(btn4)
# 添加第三部分控件
layout3.addWidget(btn5)
layout3.addWidget(btn7)
# 添加第四部分控件
layout4.addWidget(btn6)
layout4.addWidget(btn8)
# 添加第五部分控件
layout5.addWidget(btn9)
layout5.addWidget(btn10)
layout5.addWidget(btn11)
layout5.addWidget(btn12)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
提示框QMessageBox:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef deleteUser():# 弹出对话框,让用户确认result = QMessageBox.question(w, '提示', '确认要删除好基友吗?', QMessageBox.Ok | QMessageBox.Cancel, QMessageBox.Cancel)# result = QMessageBox.information(w, '提示', '确认要删除好基友吗?', QMessageBox.Ok | QMessageBox.Cancel, QMessageBox.Cancel)if result == QMessageBox.Ok:print('确认删除')elif result == QMessageBox.Cancel:print('取消删除')# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('对话框')
"""------------------ 创建按钮 ------------------"""
btn = QPushButton('删除用户')
# 显示控件
btn.setParent(w)# 信号和槽绑定
btn.clicked.connect(deleteUser)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
提示框QIputDialog:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef func():str,success = QInputDialog.getText(w,'提示','请输入角色名称')if success:edit.setText(str)# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('输入提示框')
"""------------------ 创建界面 ------------------"""
layout = QHBoxLayout()
# 添加布局
w.setLayout(layout)# 控件
btn = QPushButton('创建角色')
edit = QLineEdit()
# 控件添加到布局中
layout.addWidget(btn)
layout.addWidget(edit)# 信号和槽函数绑定
btn.clicked.connect(func)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
单选框:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef func(checked):'''状态变化的槽函数:param checked: 是否被选中:return:'''print('状态变化',checked)# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('单选框')
"""------------------ 创建布局 ------------------"""
layout = QHBoxLayout()
# 添加布局到窗口中
w.setLayout(layout)
# 创建两个单选框
rb1 = QRadioButton('男')
rb2 = QRadioButton('女')
rb1.setChecked(True)
# 添加到布局中
layout.addWidget(rb1)
layout.addWidget(rb2)# 绑定信号和槽
rb1.toggled.connect(func)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
多选框
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sysdef func(state):if state == 2:print('选中')elif state == 0:print('取消选中')# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('复选框')
"""------------------ 窗口布局 ------------------"""
layout = QHBoxLayout()
# 添加到窗口中
w.setLayout(layout)# 控件
label = QLabel()
label.setText('爱好:')
ck1 = QCheckBox('抽烟')
ck2 = QCheckBox('喝酒')
ck3 = QCheckBox('烫头')# 第一个默认选中
# ck1.setChecked(True)# 添加控件到布局中
layout.addWidget(label)
layout.addWidget(ck1)
layout.addWidget(ck2)
layout.addWidget(ck3)# 绑定信号和槽
ck1.stateChanged.connect(func)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
注册登录练习:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import syssex = ''
hobiList = []
def regist():global sex# 获取用户名name = nameEdit.text()pwd = pwdEdit.text()# 获取点击的性别if rb1.isChecked():sex = rb1.text()elif rb2.isChecked():sex = rb2.text()elif rb3.isChecked():sex = rb3.text()# 爱好if ck1.isChecked():hobiList.append(ck1.text())elif ck2.isChecked():hobiList.append(ck2.text())elif ck3.isChecked():hobiList.append(ck3.text())# 签名sig = sigEdit.text()# 择偶要求textEditMsg = textEdit.toPlainText()# 打印msg = '用户名:{},密码:{},性别:{},爱好:{},个性签名:{},择偶要求:{}'.format(name,pwd,sex,hobiList,sig,textEditMsg)print(msg)# 1.创建应用程序
app = QApplication(sys.argv)# 2.创建窗口
w = QWidget()# 修改窗口标题
w.setWindowTitle('注册登录')"""------------------ 创建界面 ------------------"""
# 整体布局
wholeLayout = QVBoxLayout()
# 第一部分
firstLayout = QFormLayout()
# 第二部分
secondLayout = QHBoxLayout()
# 第三部分
regBtn = QPushButton('确认注册')
# 设置按钮的大小
regBtn.setFixedSize(100,30)# 将整体的布局添加到窗口中
w.setLayout(wholeLayout)# 添加三部分到整体布局中
wholeLayout.addLayout(firstLayout)
wholeLayout.addLayout(secondLayout)
wholeLayout.addWidget(regBtn,alignment=Qt.AlignHCenter)# 第一部分控件
nameEdit= QLineEdit()
pwdEdit= QLineEdit()
sexLayout = QHBoxLayout()
rb1 = QRadioButton('男')
rb2 = QRadioButton('女')
rb3 = QRadioButton('妖')
rb1.setChecked(True)
sexLayout.addWidget(rb1)
sexLayout.addWidget(rb2)
sexLayout.addWidget(rb3)hobiLayout = QHBoxLayout()
ck1 = QCheckBox('抽烟')
ck2 = QCheckBox('喝酒')
ck3 = QCheckBox('烫头')
hobiLayout.addWidget(ck1)
hobiLayout.addWidget(ck2)
hobiLayout.addWidget(ck3)sigEdit = QLineEdit()firstLayout.addRow('用户名',nameEdit)
firstLayout.addRow('密 码',pwdEdit)
firstLayout.addRow('性 别',sexLayout)
firstLayout.addRow('爱 好',hobiLayout)
firstLayout.addRow('个性签名',sigEdit)# 第二部分
label = QLabel('择偶要求')
textEdit = QTextEdit()secondLayout.addWidget(label)
secondLayout.addWidget(textEdit)"""------------------ 注册事件 ------------------"""
regBtn.clicked.connect(regist)# 3.显示窗口
w.show()# 4.等待窗口停止
sys.exit(app.exec())
Python基础-pyqt5相关推荐
- Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI
现在NBA联赛也进行到半决赛了,我们怎么样才能以更快的方法获取NBA的数据呢?这里我们就自己来做一个数据播报的程序 文章目录 制作NBA数据爬虫 捋顺思路 编写代码 NBAReporter.py NB ...
- python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细)——登录,注册及找回密码篇
python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细)--登录,注册及找回密码篇 前言 一.pyqt5是什么? 二.代码方面 1.引入库及效果展示 2.首先介绍一下登录,注册及密码 ...
- python【PyQt5】的环境搭建和使用(全网最全)其一
目录 什么是pyQT 为什么要开发桌面应用 要讲些什么 搭建PyQt5开发环境 参见CSDN:pyQt5环境的搭建_Hi~晴天大圣的博客-CSDN博客_pyqt5环境搭建 1 Python 2 PyQ ...
- pythongui日历控件_“五一”快到了,用Python中PyQt5做一个日历,QCalendar控件详解...
前面内容,我们详细了解了PyQt5中的一些常用控件 精彩内容回顾 Python用PyQt5设计界面,如何正确显示一幅图片,QPixmap控件详解 拥有漂亮的笔刷才能绘制多彩界面,PythonPyQt5 ...
- python基础语法(mooc+小甲鱼)
文章目录 0.总介绍 编程语言分类:**人生苦短,我学python** 1.数据类型及操作 类型 **整数类型** **浮点数类型:有小数点的数字,即实数** 布尔类型 **复数类型** **字符串* ...
- 使用python和pyqt5轻松上手人脸识别系统(含代码)
使用python和pyqt5轻松上手人脸识别系统(含代码) 一. 环境配置 1.1 python环境配置 1.1.1 安装 anaconda 1.1.2 安装pycharm 1.1.3 配置pip源 ...
- Python +Echarts +PyQt5设计股票期货自动交易系统 二、软件界面响应(一)
Python +Echarts +PyQt5设计股票期货自动交易系统 二.软件界面响应 效果图: 上一章< Python +Echarts +PyQt5设计股票期货自动交易系统 一.软件界面设计 ...
- f是一个python内部变量类型,Python基础变量类型——List浅析
Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...
- python 等号报错_Python学习----Python基础
Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...
最新文章
- python与excel表格-xlrd/xlwt - python与excel表格交互
- Linux文件默认权限和umask笔记
- MemDC,GDI绘制注意点
- 解决wordpress无法离线发布(远程发布)的故障
- cookie/storage
- FireBug调试工具笔记
- linux 混杂模式 收包,Linux下使用混杂模式抓包(2)
- 146.PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别
- opencv图像直方图的计算及绘制
- 智能优化算法:蜜獾算法-附代码
- 【优化算法】多目标蝙蝠优化算法(MOBA)【含Matlab源码 005期】
- python双人格斗游戏代码_百行 HTML5 代码实现四种双人对弈游戏
- 使用Jep在Java中执行Python代码
- 好玩的抖音、快手无水印视频下载工具
- hp服务器修复计算机,HP(惠普)服务器 修复 Intelligent Provisioning
- Android实现推送PushService通知Notification
- 百度搜索开户竞价推广如何写出优质创意?
- hapi.js入门系列(二)——路由
- 如何解决 cannot be cast to java.lang.Comparable问题?
- Java 判断对象是否所有属性为空
热门文章
- 突破XXX,冲上Google+
- spring项目部署到resin4中的无法注入问题
- 【mysql乱码】解决php中向mysql插入中文数据乱码的问题
- Silverlight中调用ClientBin下非xap内的xml的方法
- Zabbix---4 监控mysql服务并配置动作
- Linux多台主机互相免密登陆
- Linux环境下分析和排查系统故障
- double类型的精度问题【计算时有误差】。 (0.1 * 0.1 , 1.0 - 0.9)
- mayaa的一些代码
- vue弹窗调用另一个弹窗_电脑桌面“脏乱差”,插件弹窗广告一个不少,学会say no很重要...