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与excel表格-xlrd/xlwt - python与excel表格交互
  2. Linux文件默认权限和umask笔记
  3. MemDC,GDI绘制注意点
  4. 解决wordpress无法离线发布(远程发布)的故障
  5. cookie/storage
  6. FireBug调试工具笔记
  7. linux 混杂模式 收包,Linux下使用混杂模式抓包(2)
  8. 146.PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别
  9. opencv图像直方图的计算及绘制
  10. 智能优化算法:蜜獾算法-附代码
  11. 【优化算法】多目标蝙蝠优化算法(MOBA)【含Matlab源码 005期】
  12. python双人格斗游戏代码_百行 HTML5 代码实现四种双人对弈游戏
  13. 使用Jep在Java中执行Python代码
  14. 好玩的抖音、快手无水印视频下载工具
  15. hp服务器修复计算机,HP(惠普)服务器 修复 Intelligent Provisioning
  16. Android实现推送PushService通知Notification
  17. 百度搜索开户竞价推广如何写出优质创意?
  18. hapi.js入门系列(二)——路由
  19. 如何解决 cannot be cast to java.lang.Comparable问题?
  20. Java 判断对象是否所有属性为空

热门文章

  1. 突破XXX,冲上Google+
  2. spring项目部署到resin4中的无法注入问题
  3. 【mysql乱码】解决php中向mysql插入中文数据乱码的问题
  4. Silverlight中调用ClientBin下非xap内的xml的方法
  5. Zabbix---4 监控mysql服务并配置动作
  6. Linux多台主机互相免密登陆
  7. Linux环境下分析和排查系统故障
  8. double类型的精度问题【计算时有误差】。 (0.1 * 0.1 , 1.0 - 0.9)
  9. mayaa的一些代码
  10. vue弹窗调用另一个弹窗_电脑桌面“脏乱差”,插件弹窗广告一个不少,学会say no很重要...