PyQt5基础控件
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基础控件的更多相关文章
- React Native环境搭建以及几个基础控件的使用
之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...
- Cocos2d-JS项目之二:studio基础控件的使用
在studio里把几个基础控件往场景文件一拖,然后导出json格式的资源文件 逻辑代码如下: var HelloWorldLayer = cc.Layer.extend({ sprite:null, ...
- [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)
A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不 ...
- Delphi一共封装(超类化)了8种Windows基础控件和17种复杂控件
超类化源码: procedure TWinControl.CreateSubClass(var Params: TCreateParams; ControlClassName: PChar); con ...
- PyQt5——基本控件
PyQt5基本控件使用方法详见:https://blog.csdn.net/jia666666/article/list/5?t=1& PyQt5基本控件汇总: 1.QMainWindow 2 ...
- Cocos2d-JS studio基础控件的使用
在studio里把几个基础控件往场景文件一拖,然后导出json格式的资源文件 逻辑代码如下: 1 var HelloWorldLayer = cc.Layer.extend({ 2 sprite:nu ...
- Python Tkinter基础控件入门实例
分享一个Python Tkinter基础控件用法的入门例子,包括窗口的显示.显示内置图片.弹出窗口.菜单等. 例子,Python Tkinter基础控件的用法 # -*- coding: utf-8 ...
- iOS界面设计之基础控件的学习 --- UITextField
学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...
- WPF基础控件
1.所有基础控件结束(英文) http://www.dotnetperls.com/tooltip-wpf 2.wpf- DataGrid 常用属性和事件 3.
随机推荐
- Zookeeper客户端Apache Curator
本文不对Zookeeper进行介绍,主要介绍Curator怎么操作Zookeeper. Apache Curator是Apache ZooKeeper的Java / JVM客户端库,Apache Zo ...
- 入门大数据---Flume的搭建
一.下载并解压到指定目录 崇尚授人以渔的思想,我说给大家怎么下载就行了,就不直接放连接了,大家可以直接输入官网地址 http://flume.apache.org ,一般在官网的上方或者左边都会有Do ...
- vue的生命函数周期以及钩子函数的详解
首先我们先附上官网的图 图中展现出的是vue整个生命周期以及钩子函数 1- beforeCreate(创建前) 2- created(创建完成) 3- beforeMount(挂载前) 4- mo ...
- vue基础入门(2.3)
2.3.样式绑定 2.3.1.绑定class样式 1.绑定单个class <!DOCTYPE html> <html lang="en"> <head ...
- 不同编程语言实现HelloWorld程序
目录 C C# C++ HTML Java Python C #include <stdio.h> int main() { printf("Hello World!" ...
- 看球的巴士——线性dp
[题目描述] 两个球队的支持者要一起坐车去看球,他们已经排成了一列.我们要让他们分乘若干辆巴士,同一辆巴士上的人必须在队伍中是连续的.为了在车上不起冲突,希望两队的支持者人数尽量相等,差至多是D.有一 ...
- opencv3.4.9 + armv7 + arm-linux-gnueabihf交叉编译
使用CMake指定交叉编译链会有很多报错,原因可能是其找交叉编译的库或这头文件会自动链接到本地的库或者头文件. 可以使用Qt设置好交叉编译环境后,将CMakeLists.txt文件放入,直接编译通过即 ...
- Jenkins Pipeline 部署 SpringBoot 应用
一. 安装依赖包 yum install -y wget yum install -y gcc-c++ yum install -y zlib-devel perl-ExtUtils-MakeMake ...
- MySQL入门(引擎、数据类型、约束)
MySQL入门(二) 表的引擎:驱动数据的方式 - 数据库优化 # 概要:引擎是建表规定的,提供给表使用,不是数据库的 # 展示所有引擎 show engines; # innodb(默认): 支持事 ...
- shell专题(五):运算符
1.基本语法 (1)“$((运算式))”或“$[运算式]” (2)expr + , - , \*, /, % 加,减,乘,除,取余 注意:expr运算符间要有空格 2.案例实操: (1)计 ...