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相关推荐

  1. Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI

    现在NBA联赛也进行到半决赛了,我们怎么样才能以更快的方法获取NBA的数据呢?这里我们就自己来做一个数据播报的程序 文章目录 制作NBA数据爬虫 捋顺思路 编写代码 NBAReporter.py NB ...

  2. python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细)——登录,注册及找回密码篇

    python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细)--登录,注册及找回密码篇 前言 一.pyqt5是什么? 二.代码方面 1.引入库及效果展示 2.首先介绍一下登录,注册及密码 ...

  3. python【PyQt5】的环境搭建和使用(全网最全)其一

    目录 什么是pyQT 为什么要开发桌面应用 要讲些什么 搭建PyQt5开发环境 参见CSDN:pyQt5环境的搭建_Hi~晴天大圣的博客-CSDN博客_pyqt5环境搭建 1 Python 2 PyQ ...

  4. pythongui日历控件_“五一”快到了,用Python中PyQt5做一个日历,QCalendar控件详解...

    前面内容,我们详细了解了PyQt5中的一些常用控件 精彩内容回顾 Python用PyQt5设计界面,如何正确显示一幅图片,QPixmap控件详解 拥有漂亮的笔刷才能绘制多彩界面,PythonPyQt5 ...

  5. python基础语法(mooc+小甲鱼)

    文章目录 0.总介绍 编程语言分类:**人生苦短,我学python** 1.数据类型及操作 类型 **整数类型** **浮点数类型:有小数点的数字,即实数** 布尔类型 **复数类型** **字符串* ...

  6. 使用python和pyqt5轻松上手人脸识别系统(含代码)

    使用python和pyqt5轻松上手人脸识别系统(含代码) 一. 环境配置 1.1 python环境配置 1.1.1 安装 anaconda 1.1.2 安装pycharm 1.1.3 配置pip源 ...

  7. Python +Echarts +PyQt5设计股票期货自动交易系统 二、软件界面响应(一)

    Python +Echarts +PyQt5设计股票期货自动交易系统 二.软件界面响应 效果图: 上一章< Python +Echarts +PyQt5设计股票期货自动交易系统 一.软件界面设计 ...

  8. f是一个python内部变量类型,Python基础变量类型——List浅析

    Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...

  9. python 等号报错_Python学习----Python基础

    Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...

最新文章

  1. python类装饰器应用_python之描述符应用与类的装饰器
  2. SQLserver 中时间减,并把结果转换成varchar类型,拼接上字符串
  3. 夏意秋尽-08年1月
  4. 《编写高质量代码:改善C#程序的157个建议》勘误表
  5. 轻松玩转jquery。
  6. AQO.NET实现数据操作封装
  7. hapi mysql项目实战路由初始化_用hapi.js mysql和nuxt.js(vue ssr)开发仿简书的博客项目...
  8. binlog以及Canel
  9. Silverlight Dispatcher 类
  10. Python+OpenGL使用鼠标选择模型不同组成部分
  11. linux svn pacman,【图片】manjaro Linux 中的etc pacman.conf设置错误了,谁发个默认的我看看,谢谢大佬们了_manjaro吧_百度贴吧...
  12. 用Feed43为随意站点定制RSS feed教程~
  13. SQL不同服务器数据库之间的数据操作整理(完整版)
  14. 《SysML精粹》学习记录--第十一章
  15. mavell 7040使用方法
  16. 如何按照规格型号表挑选合适的快速接头
  17. AE插件:能量激光描边光效特效Saber
  18. 计算机经典书籍电子书合集
  19. 云网络运维必备神器:全链路故障诊断与分析
  20. MySQL树形结构设计

热门文章

  1. WayOS路由器企业应用方案
  2. ios 避免两个button同一时候被点击
  3. MongoDB管理与监控
  4. echarts3.0版本断点连线的处理
  5. vue2.0+echarts可视化图形开发中遇到的问题总结
  6. ACM题目————中位数
  7. 免费HTTP数据抓包Fiddler2[4.6.1.2]以及显示中文包内容的方法
  8. Unity 制作RPG小地图
  9. ECSHOP集成百度ueditor编辑器上传图片到服务器或又拍云(七牛云)
  10. 64位Windows 7平台安装32位Timesten,配置ODBC数据源