QLabel标签

功能:在界面上显示文字、图片、链接等

接口:

方法 描述
setText() 设置显示的内容
setAlignment() 设置文字对齐方式
setToolTip() 设置提示信息
setPixmap() 设置显示内容为图片
setOpenExternalLinks() 允许访问链接,打开浏览器,默认非使能

信号:

信号 描述
linkActivated 点击标签中的超链接,且setOpenExternalLinks为true时触发
linkHovered 当鼠标滑过标签中的超链接时触发

QLineEdit

功能:单行文本输入框

接口:

方法 描述
setAlignment() 设置内容对齐方式
clear() 清空
setPlaceholderText() 显示默认内容
setMaxLength() 设置运行输入的最大长度
setReadOnly() 设置内容只读
setText() 设置文本框内容
Text() 返回文本框内容
selectAll() 全选
setFocus() 获取焦点
setEchoMode()

设置显示的内容格式:

QLineEdit.Normal:正常显示所有字符,默认选项

QLineEdit.NoEcho:不显示任何字符

QLineEdit.Password:显示与平台相关的掩码字符,不显示实际输入内容

QLineEdit.PasswordEchoOnEdit:在编辑时显示字符

setInputMask() 设置掩码
setValidator()

设置允许输入的内容:

QIntValidator:限制输入整型

QDoubleValidator:限制输入浮点数

QRegexpValidator:限制输入符合正则表达式

信号:

信号 描述
selectionChanged 选中的内容改变时触发
textChanged 修改文本内容时触发
editingFinished 文本编辑结束时触发

QTextEdit

功能:显示多行文本、html文档

接口:

方法 描述
setPlainText() 设置多行文本框内容
toPlainText() 返回多行文本框内容
setHtml() 设置内容为html文档
toHtml() 返回多行文本框内容
clear() 清空

信号:与单行文本框类似

QAbstractButton

功能:按钮的公共基础类,不能直接实例化,主要提供按钮的通用功能

状态:按钮具有几种状态,可以相互切换

状态 含义
isDown() 按钮是否被按下
isChecked() 按钮是否被标记
isEnable() 按钮是否可以被用户点击
isCheckAble() 按钮是否可被标记
setAutoRepeat() 按钮在用户长按时,是否可以自动重复执行

信号:

信号 描述
Pressed 按钮被按下时触发
Released 按钮被弹起时触发
Clicked 按钮被按下且弹起时触发
Toggled 按钮标记状态改变时触发

QPushButton

功能:单击按钮

接口:

方法 描述
setCheckable() 设置按钮是否被选中。true或false。
toggle() 在按钮状态之间切换
setIcon() 设置按钮图标
setEnable() 设置按钮是否可用。true或false。
isChecked() 返回按钮的选中状态
setText() 设置按钮显示文本
text() 获取显示文本

QRadioButton

功能:单选按钮,提供多选一的功能

说明:继承之同一个父类的单选按钮,默认多个单选按钮属于同一组;如果要实现多组,需要使用QGroupBox或QButtonGroup

接口:

方法 描述
setCheckAble() 设置按钮是否被选中
isChecked() 返回按钮的状态
setText() 设置显示文本
text() 返回显示文本

QCheckBox

功能:复选框,提供多选多的功能

接口:

方法 描述
setChecked 设置复选框状态
setText 设置显示文本
text 返回显示文本
isChecked 检查复选框是否被选中

QComboBox

功能:下拉框

接口:

方法 描述
addItem() 添加一个下拉选项
addItems() 从列表中添加下拉选项
clear() 清空
count() 返回下拉选项的数目
currentText() 返回选中选项的文本
itemText(i) 获取索引为i的选项文本
currentIndex() 返回选中的索引
setItemText(index, text) 设置索引i的内容为text

QSpinBox/QDoubleSpinBox

功能:计数器,允许用户选中一个值(整型或浮点型)

接口:

方法 描述
setMinimum() 设置计数器的最小值
setMaximum() 设置计数器的最大值
setRange() 设置计数器的最大值、最小值以及步长
setValue() 设置计数器的当前值
Value() 获取计数器的当前值
setSingleStep() 设置计数器步长

信号:

信号 描述
valueChanged 计数器值改变时触发

QProgressBar

功能:进度条

接口:

方法 描述
setRange() 设置范围
setMinimum() 设置下限
setMaximum() 设置上限
setValue() 设置进度条的值
reset() 进度条复位

QSlider

功能:滑动条,通过滑动的方式选择值,比计数器更加方便自然

接口:

方法 描述
 setMinimum()  设置滑动条最小值
 setMaximum() 设置滑动条最大值 
 singleStep() 设置步长 
 setValue() 设置滑动条当前值 
Value() 获取当前值
setTickInterval() 设置刻度间隔
setTickPosition()

设置刻度的样式

QSlider.NoTicks:不绘制刻度

QSlider.TicksBothSides:在滑块的两侧绘制刻度

QSlider.TicksAbove:在滑块上方绘制刻度线

QSlider.TicksBelow:在滑块下方绘制刻度线

QSlider.TicksLeft:在滑块左侧绘制刻度线

QSlider.TicksRight:在滑块右侧绘制刻度线

信号:

信号 描述
valueChanged 当滑块的值发生变化时触发
sliderPressed 当滑块被按下时触发
sliderMoved 当滑块被拖动时触发
sliderReleased 当滑块弹起时时触发

QCalendar

功能:日历控件

接口:

方法 描述
setDateRange()  设置可供选择的日期范围
setFirstDayofWeek() 设置星期的第一天,默认是星期天 
setMinimumDate() 设置最大日期 
setMaxmumDate() 设置最小日期 
setSelectDate() 设置一个QData对象,作为当前日期空间所选定的日期 
maximumDate() 获取最大日期 
minimumDate() 获取最小日期
selectedData() 获取当前选定的日期
setGridvisible() 设置容器空间是否显示网格

信号:

信号 描述
clicked(QtCore.QDate) 选定一个日期时触发

QDateTimeEdit

功能:允许用户编辑日期时间的控件,可以使用键盘和上下箭头来增加和减少日期的时间值

接口:

方法 描述
setDisplayFormat()

设置日期时间格式:

yyyy:年

MM:月

dd:日

HH:小时

mm:分钟

ss:秒

setMinimumDate() 设置最小日期
setMaxmumDate() 设置最大日期
time() 返回编辑的时间
date() 返回编辑的日期

信号:

信号 描述
dateChanged 日期改变时触发
dateTimeChanged 日期或时间改变时都会触发(优先)
timeChanged 时间改变时触发

例子

1.将QLineEdit输入的内容显示到QLabel上

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPalette
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__()
# 初始化label
self.label = QLabel(self)
self.label.resize(100, 20)
self.label.move(10, 10)
self.label.setAutoFillBackground(True)
self.palette = QPalette()
self.palette.setColor(QPalette.Window, Qt.green)
self.label.setPalette(self.palette)
# 初始化lineEdit
self.lineEdit = QLineEdit(self)
self.lineEdit.setPlaceholderText('please enter')
self.lineEdit.resize(100, 20)
self.lineEdit.move(10, 40)
# 绑定textChanged到方法
self.lineEdit.textChanged.connect(self.syncToLabel) # 将lineEdit输入的内容显示到标签上
def syncToLabel(self, msg):
self.label.setText(msg) if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.resize(500, 300)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())

2.多种按钮

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QCheckBox, QRadioButton, QGroupBox, QVBoxLayout, \
QHBoxLayout class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__()
# button
self.button = QPushButton(self)
self.button.move(10, 10)
self.button.setText('按钮')
self.button.clicked.connect(self.onButtonClicked) # radio
self.radio1 = QRadioButton("Radio button 1")
self.radio2 = QRadioButton("Radio button 2")
self.radio3 = QRadioButton("Radio button 3") vbox = QVBoxLayout()
vbox.addWidget(self.radio1)
vbox.addWidget(self.radio2)
vbox.addWidget(self.radio3)
vbox.addStretch(1) radioGroup = QGroupBox(self)
radioGroup.setLayout(vbox)
radioGroup.move(10, 50) self.radio1.clicked.connect(self.onRadioClicked)
self.radio2.clicked.connect(self.onRadioClicked)
self.radio3.clicked.connect(self.onRadioClicked) # checkBox
self.checkBox1 = QCheckBox("check box 1")
self.checkBox2 = QCheckBox("check box 2")
self.checkBox3 = QCheckBox("check box 3") hbox = QHBoxLayout()
hbox.addWidget(self.checkBox1)
hbox.addWidget(self.checkBox2)
hbox.addWidget(self.checkBox3)
hbox.addStretch(1) checkGroup = QGroupBox(self)
checkGroup.setLayout(hbox)
checkGroup.move(10, 150) self.checkBox1.stateChanged.connect(lambda: self.onCheckClicked(self.checkBox1))
self.checkBox2.stateChanged.connect(lambda: self.onCheckClicked(self.checkBox2))
self.checkBox3.stateChanged.connect(lambda: self.onCheckClicked(self.checkBox3)) def onButtonClicked(self):
print('button clicked') def onRadioClicked(self):
print('radio clicked')
if self.radio1.isChecked():
print('radio1 checked')
elif self.radio2.isChecked():
print('radio2 checked')
elif self.radio3.isChecked():
print('radio3 checked') def onCheckClicked(self, checkBox):
print('check clicked')
print(checkBox.text()) if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.resize(500, 300)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())

3.通过点击设置值

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QSpinBox, QSlider class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__()
# comboBox
self.com = QComboBox(self)
self.com.move(10, 10)
self.com.addItem('one')
self.com.addItem('two')
self.com.addItem('three')
self.com.currentIndexChanged.connect(self.onChange) # spinBox
self.spin = QSpinBox(self)
self.spin.resize(100, 30)
self.spin.move(10, 50)
self.spin.setRange(10, 50)
self.spin.setSingleStep(2)
self.spin.setValue(25)
self.spin.valueChanged.connect(self.onSpinChange) # slider
self.slider = QSlider(Qt.Horizontal)
self.slider.setParent(self)
self.slider.resize(300, 20)
self.slider.move(10, 100)
self.slider.setRange(50, 150)
self.slider.setTickInterval(5)
self.slider.setValue(50)
self.slider.setTickPosition(QSlider.TicksBelow)
self.slider.setFont(QFont('Arial', 18))
self.slider.valueChanged.connect(self.onSliderChange) def onChange(self, index):
print(self.com.itemText(index)) def onSpinChange(self, value):
print(value) def onSliderChange(self, value):
print(value) if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.resize(500, 300)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())

4.日期时间选择

import sys
from PyQt5 import QtCore
from PyQt5.QtCore import QDate, Qt
from PyQt5.QtWidgets import QApplication, QWidget, QCalendarWidget, QDateTimeEdit class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__() # 日历
self.calendar = QCalendarWidget(self)
self.calendar.setMinimumDate(QDate(1980, 1, 1))
self.calendar.setMaximumDate(QDate(3000, 1, 1))
self.calendar.setGridVisible(True)
self.calendar.setFirstDayOfWeek(Qt.Monday)
self.calendar.move(10, 10)
self.calendar.clicked[QtCore.QDate].connect(self.showData) # dateTimeEdit
self.dte = QDateTimeEdit(self)
self.dte.setMaximumDate(QDate.currentDate().addDays(365))
self.dte.setMinimumDate(QDate.currentDate().addDays(-365))
self.dte.setDisplayFormat('yyyy-MM-dd HH:mm:ss')
self.dte.move(10, 250)
self.dte.dateChanged.connect(self.onDateChange)
self.dte.timeChanged.connect(self.onTimeChange)
self.dte.dateTimeChanged.connect(self.onDateTimeChange) def showData(self, date):
print(date.toString("yyyy-MM-dd dddd")) def onDateChange(self, data):
print("onDateChange: ")
print(data) def onTimeChange(self, time):
print("onTimeChange: ")
print(time) def onDateTimeChange(self, dateTime):
print("onDateTimeChange: ")
print(dateTime) if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.resize(500, 300)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
setRange

PyQt5基础控件的更多相关文章

  1. React Native环境搭建以及几个基础控件的使用

    之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...

  2. Cocos2d-JS项目之二:studio基础控件的使用

    在studio里把几个基础控件往场景文件一拖,然后导出json格式的资源文件 逻辑代码如下: var HelloWorldLayer = cc.Layer.extend({ sprite:null, ...

  3. [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

    A.概述      在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能      1.按钮点击后,显示为“已下载”,并且不 ...

  4. Delphi一共封装(超类化)了8种Windows基础控件和17种复杂控件

    超类化源码: procedure TWinControl.CreateSubClass(var Params: TCreateParams; ControlClassName: PChar); con ...

  5. PyQt5——基本控件

    PyQt5基本控件使用方法详见:https://blog.csdn.net/jia666666/article/list/5?t=1& PyQt5基本控件汇总: 1.QMainWindow 2 ...

  6. Cocos2d-JS studio基础控件的使用

    在studio里把几个基础控件往场景文件一拖,然后导出json格式的资源文件 逻辑代码如下: 1 var HelloWorldLayer = cc.Layer.extend({ 2 sprite:nu ...

  7. Python Tkinter基础控件入门实例

    分享一个Python Tkinter基础控件用法的入门例子,包括窗口的显示.显示内置图片.弹出窗口.菜单等. 例子,Python Tkinter基础控件的用法 # -*- coding: utf-8 ...

  8. iOS界面设计之基础控件的学习 --- UITextField

    学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...

  9. WPF基础控件

    1.所有基础控件结束(英文) http://www.dotnetperls.com/tooltip-wpf 2.wpf- DataGrid 常用属性和事件 3.

随机推荐

  1. WeChair项目Beta冲刺(6/10)

    团队项目进行情况 1.昨日进展    Beta冲刺第六天 昨日进展: 前后端并行开发,项目按照计划有条不絮进行 2.今日安排 前端:扫码占座功能和预约功能并行开发 后端:扫码占座后端逻辑开发,编码预约 ...

  2. 关于安装Django包的问题

    在Windows的环境下,有些包确实不好安装的,比如reportlab-3.2.0-cp27-none-win32.whl,根据xadmin安装的经验,从这个.whl里把文件夹reportlab解压出 ...

  3. 乌班图设置C++11

    zsh: echo "alias g++='g++ -std=c++11'" >> ~/.zshrc  source ~/.zshrc bash: echo " ...

  4. Java并发编程:Callable、Future和FutureTask 实现龟兔赛跑

    1.不清楚的看博客http://www.cnblogs.com/dolphin0520/p/3949310.html 我们使用上面的代码来实现一个龟兔赛跑 package com.weiyuan.te ...

  5. Spring系列.SpEL表达式

    Spring表达式语言 SpEL语言是一种强大的表达式语言,支持在运行时查询和操作对象.SpEL表达式不一定要创建IOC容器后才能使用.用户完全可以单独调用SpEL的API来独立的使用时SpEL表达式 ...

  6. 动态自动配置Bean

    概览 接口Condition 用于基于条件的自动配置,和注解@Conditional配合使用,可实现JavaBean的动态自动配置 自定义实现动态配置Bean 定义一个接口和两个实现类 定义两个Con ...

  7. 使用IDEA 发布项目搭配远程仓库 Gitee

    本次讲解的是idea 发布到gitee上 一样的操作流程 没有基础的请先去学习 附上我的 gitee 地址 有资源会发布到gitee 俗话说关注走一走 活到999 https://gitee.com/ ...

  8. Linux虚拟机下安装Oracle 11G教程图文解说

    1.安装环境 操作系统:Red hat 6.5 内存:内存最低要求256M (使用:grep MemTotal /proc/meminfo 命令查看) 交换空间:SWAP交换空间大小根据内存大小决定( ...

  9. 每日一题 - 剑指 Offer 46. 把数字翻译成字符串

    题目信息 时间: 2019-07-02 题目链接:Leetcode tag: 动态规划 难易程度:中等 题目描述: 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ...

  10. Mariadb之复制过滤器

    mariadb的主从复制集群,默认情况下是把主库上的所有库进行复制,只要在主库上产生写操作,从库基于主库的二进制日志做重放,从而实现把主库的上的库表复制到从库:复制过滤器指的是我们仅复制一个或几个数据 ...