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上

  1. import sys
  2.  
  3. from PyQt5.QtCore import Qt
  4. from PyQt5.QtGui import QPalette
  5. from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit
  6.  
  7. class MyWidget(QWidget):
  8. def __init__(self):
  9. super(MyWidget, self).__init__()
  10. # 初始化label
  11. self.label = QLabel(self)
  12. self.label.resize(100, 20)
  13. self.label.move(10, 10)
  14. self.label.setAutoFillBackground(True)
  15. self.palette = QPalette()
  16. self.palette.setColor(QPalette.Window, Qt.green)
  17. self.label.setPalette(self.palette)
  18. # 初始化lineEdit
  19. self.lineEdit = QLineEdit(self)
  20. self.lineEdit.setPlaceholderText('please enter')
  21. self.lineEdit.resize(100, 20)
  22. self.lineEdit.move(10, 40)
  23. # 绑定textChanged到方法
  24. self.lineEdit.textChanged.connect(self.syncToLabel)
  25.  
  26. # 将lineEdit输入的内容显示到标签上
  27. def syncToLabel(self, msg):
  28. self.label.setText(msg)
  29.  
  30. if __name__ == '__main__':
  31. app = QApplication(sys.argv)
  32. w = MyWidget()
  33. w.resize(500, 300)
  34. w.move(300, 300)
  35. w.setWindowTitle('Simple')
  36. w.show()
  37. sys.exit(app.exec_())

2.多种按钮

  1. import sys
  2.  
  3. from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QCheckBox, QRadioButton, QGroupBox, QVBoxLayout, \
  4. QHBoxLayout
  5.  
  6. class MyWidget(QWidget):
  7. def __init__(self):
  8. super(MyWidget, self).__init__()
  9. # button
  10. self.button = QPushButton(self)
  11. self.button.move(10, 10)
  12. self.button.setText('按钮')
  13. self.button.clicked.connect(self.onButtonClicked)
  14.  
  15. # radio
  16. self.radio1 = QRadioButton("Radio button 1")
  17. self.radio2 = QRadioButton("Radio button 2")
  18. self.radio3 = QRadioButton("Radio button 3")
  19.  
  20. vbox = QVBoxLayout()
  21. vbox.addWidget(self.radio1)
  22. vbox.addWidget(self.radio2)
  23. vbox.addWidget(self.radio3)
  24. vbox.addStretch(1)
  25.  
  26. radioGroup = QGroupBox(self)
  27. radioGroup.setLayout(vbox)
  28. radioGroup.move(10, 50)
  29.  
  30. self.radio1.clicked.connect(self.onRadioClicked)
  31. self.radio2.clicked.connect(self.onRadioClicked)
  32. self.radio3.clicked.connect(self.onRadioClicked)
  33.  
  34. # checkBox
  35. self.checkBox1 = QCheckBox("check box 1")
  36. self.checkBox2 = QCheckBox("check box 2")
  37. self.checkBox3 = QCheckBox("check box 3")
  38.  
  39. hbox = QHBoxLayout()
  40. hbox.addWidget(self.checkBox1)
  41. hbox.addWidget(self.checkBox2)
  42. hbox.addWidget(self.checkBox3)
  43. hbox.addStretch(1)
  44.  
  45. checkGroup = QGroupBox(self)
  46. checkGroup.setLayout(hbox)
  47. checkGroup.move(10, 150)
  48.  
  49. self.checkBox1.stateChanged.connect(lambda: self.onCheckClicked(self.checkBox1))
  50. self.checkBox2.stateChanged.connect(lambda: self.onCheckClicked(self.checkBox2))
  51. self.checkBox3.stateChanged.connect(lambda: self.onCheckClicked(self.checkBox3))
  52.  
  53. def onButtonClicked(self):
  54. print('button clicked')
  55.  
  56. def onRadioClicked(self):
  57. print('radio clicked')
  58. if self.radio1.isChecked():
  59. print('radio1 checked')
  60. elif self.radio2.isChecked():
  61. print('radio2 checked')
  62. elif self.radio3.isChecked():
  63. print('radio3 checked')
  64.  
  65. def onCheckClicked(self, checkBox):
  66. print('check clicked')
  67. print(checkBox.text())
  68.  
  69. if __name__ == '__main__':
  70. app = QApplication(sys.argv)
  71. w = MyWidget()
  72. w.resize(500, 300)
  73. w.move(300, 300)
  74. w.setWindowTitle('Simple')
  75. w.show()
  76. sys.exit(app.exec_())

3.通过点击设置值

  1. import sys
  2.  
  3. from PyQt5.QtCore import Qt
  4. from PyQt5.QtGui import QFont
  5. from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QSpinBox, QSlider
  6.  
  7. class MyWidget(QWidget):
  8. def __init__(self):
  9. super(MyWidget, self).__init__()
  10. # comboBox
  11. self.com = QComboBox(self)
  12. self.com.move(10, 10)
  13. self.com.addItem('one')
  14. self.com.addItem('two')
  15. self.com.addItem('three')
  16. self.com.currentIndexChanged.connect(self.onChange)
  17.  
  18. # spinBox
  19. self.spin = QSpinBox(self)
  20. self.spin.resize(100, 30)
  21. self.spin.move(10, 50)
  22. self.spin.setRange(10, 50)
  23. self.spin.setSingleStep(2)
  24. self.spin.setValue(25)
  25. self.spin.valueChanged.connect(self.onSpinChange)
  26.  
  27. # slider
  28. self.slider = QSlider(Qt.Horizontal)
  29. self.slider.setParent(self)
  30. self.slider.resize(300, 20)
  31. self.slider.move(10, 100)
  32. self.slider.setRange(50, 150)
  33. self.slider.setTickInterval(5)
  34. self.slider.setValue(50)
  35. self.slider.setTickPosition(QSlider.TicksBelow)
  36. self.slider.setFont(QFont('Arial', 18))
  37. self.slider.valueChanged.connect(self.onSliderChange)
  38.  
  39. def onChange(self, index):
  40. print(self.com.itemText(index))
  41.  
  42. def onSpinChange(self, value):
  43. print(value)
  44.  
  45. def onSliderChange(self, value):
  46. print(value)
  47.  
  48. if __name__ == '__main__':
  49. app = QApplication(sys.argv)
  50. w = MyWidget()
  51. w.resize(500, 300)
  52. w.move(300, 300)
  53. w.setWindowTitle('Simple')
  54. w.show()
  55. sys.exit(app.exec_())

4.日期时间选择

  1. import sys
  2. from PyQt5 import QtCore
  3. from PyQt5.QtCore import QDate, Qt
  4. from PyQt5.QtWidgets import QApplication, QWidget, QCalendarWidget, QDateTimeEdit
  5.  
  6. class MyWidget(QWidget):
  7. def __init__(self):
  8. super(MyWidget, self).__init__()
  9.  
  10. # 日历
  11. self.calendar = QCalendarWidget(self)
  12. self.calendar.setMinimumDate(QDate(1980, 1, 1))
  13. self.calendar.setMaximumDate(QDate(3000, 1, 1))
  14. self.calendar.setGridVisible(True)
  15. self.calendar.setFirstDayOfWeek(Qt.Monday)
  16. self.calendar.move(10, 10)
  17. self.calendar.clicked[QtCore.QDate].connect(self.showData)
  18.  
  19. # dateTimeEdit
  20. self.dte = QDateTimeEdit(self)
  21. self.dte.setMaximumDate(QDate.currentDate().addDays(365))
  22. self.dte.setMinimumDate(QDate.currentDate().addDays(-365))
  23. self.dte.setDisplayFormat('yyyy-MM-dd HH:mm:ss')
  24. self.dte.move(10, 250)
  25. self.dte.dateChanged.connect(self.onDateChange)
  26. self.dte.timeChanged.connect(self.onTimeChange)
  27. self.dte.dateTimeChanged.connect(self.onDateTimeChange)
  28.  
  29. def showData(self, date):
  30. print(date.toString("yyyy-MM-dd dddd"))
  31.  
  32. def onDateChange(self, data):
  33. print("onDateChange: ")
  34. print(data)
  35.  
  36. def onTimeChange(self, time):
  37. print("onTimeChange: ")
  38. print(time)
  39.  
  40. def onDateTimeChange(self, dateTime):
  41. print("onDateTimeChange: ")
  42. print(dateTime)
  43.  
  44. if __name__ == '__main__':
  45. app = QApplication(sys.argv)
  46. w = MyWidget()
  47. w.resize(500, 300)
  48. w.move(300, 300)
  49. w.setWindowTitle('Simple')
  50. w.show()
  51. sys.exit(app.exec_())
  1. 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. twaver html5 如何设置节点不可拖动

    解决思路: 1.创建一个不可移动的图层  :  layer 2.设置不可拖动的节点node 的图层为 layer 见代码: var box = new twaver.ElementBox(); var ...

  2. Redis设置并查看最大连接数

    在 Redis2.4 中,最大连接数是被直接硬编码在代码里面的,而在2.6版本中这个值变成可配置的. maxclients 的默认值是 10000,你也可以在 redis.conf 中对这个值进行修改 ...

  3. Hystrix入门教程

    Hystrix入门教程 一·什么是Hystrix?Hystrix有什么作用?使用Hystrix有哪些适用场景 Hystrix是springCloud的组件之一,Hystrix 可以让我们在分布式系统中 ...

  4. 重学 Java 设计模式:实战备忘录模式「模拟互联网系统上线过程中,配置文件回滚场景」

    作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 实现不了是研发的借口? 实现不了,有时候是功能复杂度较高难以实 ...

  5. 洛谷 P1194 【买礼物】

    这道题其实就是转化一个模型就可以了. 买了一个另外一个又优惠,其实就相当于在优惠的时候连一条边,因为不可能多买,所以就是建一棵最小生成树.最后因为肯定买了一件物品,要加上最初的单价. 代码: #inc ...

  6. apache frpClien操作报错解决

    #打开配置文件vim /etc/vsftpd/vsftpd.conf #修改配置100行chroot_local_user=NO

  7. 模型评测之IoU,mAP,ROC,AUC

    IOU 在目标检测算法中,交并比Intersection-over-Union,IoU是一个流行的评测方式,是指产生的候选框candidate bound与原标记框ground truth bound ...

  8. QT Creator配置环境和安装

    原文链接:https://blog.csdn.net/qq_33154343/java/article/details/78587699 补充下其中缺少的步骤:安装后缺少QT GUI Applicat ...

  9. Vmware - 安装并启动 Centos 8

    下载 Linux 安装包 https://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/ 不同版本的 Centos https://mirrors.al ...

  10. Codeforces 1292C Xenon's Attack on the Gangs 题解

    题目 On another floor of the A.R.C. Markland-N, the young man Simon "Xenon" Jackson, takes a ...