PyQt5常用控件
一、控件概述
二、文本类控件
1.Label:标签控件
标签文本:
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30,30,81,41))
self.label.setText("用户名:")
对齐方式:
AlignLeft:左对齐
AlignHCenter:水平居中对齐
AlignRight:右对齐
AlignJustify:两端对齐
AlignTop:顶部对齐
AlignVCenter:垂直居中对齐
AlignBottom:底部对齐
文本换行
self.label.setWordWrap(True)
超链接:
self.label.setText("<a href='https://www.baidu.com'>百度</a>")
self.label.setOpenExternalLinks(True) #设置允许访问超链接
为标签设置图片
from PyQt5.QtGui import QPixmap #导入QPixmap类
self.label.setPixmp(QPixmap('test.png')) #为Label设置图片
获取标签文本
print(self.label.text())
2.LineEdit:单行文本框
setText():设置文本框内容
text():获取文本框内容
实例:登录窗口
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(517, 378)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(50, 60, 61, 31))
self.label.setObjectName("label")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(110, 60, 211, 31))
self.lineEdit.setObjectName("lineEdit")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(50, 100, 71, 31))
self.label_2.setObjectName("label_2")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(110, 100, 211, 31))
self.lineEdit_2.setObjectName("lineEdit_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 517, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.lineEdit_2.textChanged.connect(self.aadd) #文本改变,输出5
self.lineEdit_2.editingFinished.connect(self.aadd) #enter键后发生改变
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "用户名:"))
self.label_2.setText(_translate("MainWindow", "密码:"))
self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit) # 设置文本框为密码 #Password
self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999)) # 只能输入8位
def aadd(self):
print(5)
3.TextEdit:多行文本框
实例:设置多行文本和HTML文本的对比显示
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(754, 577)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(40, 120, 161, 121))
self.textEdit.setObjectName("textEdit")
self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_2.setGeometry(QtCore.QRect(340, 120, 161, 121))
self.textEdit_2.setObjectName("textEdit_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 754, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
# 设置纯文本显示
self.textEdit.setPlainText("纯文本:普通话(PuTongHua)是联合国六种工作语言之一"
"通话的“普通”两字,是“普遍”和“共通”的意思。")
# 设置HTML文本显示
self.textEdit_2.setHtml("HTML:普通话(PuTongHua)是联合国六种工作语言之一"
"通话的“普通”两字,<font color='red' size=12>是“普遍”和“共通”的意思。</font>推广全国通用的普通话,是提高全国人民科学文化水平的一项基本语言国策")
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
4.SpinBox:整数数字选择控件
setValue():设置控件当前值
setMaximum():设置最大值
setMinimum():设置最小值
setRange():设置取值范围
setSingleStep():单击上下箭头时的步长值
value():获取控件中的值
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(636, 417)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.spinBox = QtWidgets.QSpinBox(self.centralwidget)
self.spinBox.setGeometry(QtCore.QRect(70, 90, 141, 81))
self.spinBox.setObjectName("spinBox")
#self.spinBox.setRange(0.100) #设置最大最小值
self.spinBox.setMinimum(0) #设置最小值
self.spinBox.setMaximum(100) # 设置最大值
self.spinBox.setSingleStep(2) # 设置步长值
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(90, 220, 221, 31))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(260, 230, 72, 15))
self.label_2.setObjectName("label_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 636, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.spinBox.valueChanged.connect(self.getvalue)
def getvalue(self):
self.label_2.setText(str(self.spinBox.value()))
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "当前控件显示的数值为:"))
self.label_2.setText(_translate("MainWindow", "TextLabel"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
5.DoubleSpinBox:小数数字选择控件
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(548, 392)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget)
self.doubleSpinBox.setGeometry(QtCore.QRect(90, 90, 91, 41))
self.doubleSpinBox.setObjectName("doubleSpinBox")
self.doubleSpinBox.setMinimum(0) # 设置最小值
self.doubleSpinBox.setMaximum(99.999) # 设置最大值
self.doubleSpinBox.setSingleStep(0.001) # 设置步长值
self.doubleSpinBox.setDecimals(3) # 设置保留三位小数
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(80, 180, 181, 21))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(250, 180, 91, 21))
self.label_2.setObjectName("label_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 548, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.doubleSpinBox.valueChanged.connect(self.getvalue)
def getvalue(self):
self.label_2.setText(str(self.doubleSpinBox.value()))
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "当前控件所显示的数值:"))
self.label_2.setText(_translate("MainWindow", "0"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
6.LCDNumber:液晶数字显示控件
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(523, 433)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber.setGeometry(QtCore.QRect(200, 170, 121, 81))
self.lcdNumber.setDigitCount(7) # 设置最大显示7位数字
self.lcdNumber.setMode(QtWidgets.QLCDNumber.Dec) # 设置默认以十进制显示数字
self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat) # 设置数字显示屏的显示样式
self.lcdNumber.setObjectName("lcdNumber")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(130, 80, 101, 61))
self.label.setObjectName("label")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(220, 100, 113, 21))
self.lineEdit.setObjectName("lineEdit")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 523, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.lineEdit.editingFinished.connect(self.setvalue)
def setvalue(self):
self.lcdNumber.setProperty("value", self.lineEdit.text())
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "请输入数字:"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
三、按钮类控件
1.PushButtom:按钮
setText():设置按钮所显示的文本 text():获取按钮所显示的文本
setIcon():设置按钮上的图标,可以将参数设置为QtGui.QIcon(‘图标路径’)
setIconSize():设置按钮上的图标大小,参数可以设置为QtCore.QSize(int width,int height)
setEnabled():设置按钮是否可用,参数设置为False时,按钮为不可用状态
setShortcut():设置按钮的快捷键,参数可以设置为键盘中的按键或组合键例如<Alt+0>
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QPixmap,QIcon
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(300,300)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(40,83,61,23))
self.pushButton.setObjectName("pushButton")
self.pushButton.setIcon(QIcon(QPixmap("login.ico"))) #为登录设置图标
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(26,22,54,12))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(26,52,54,12))
self.label_2.setObjectName("label_2")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(79,18,113,20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(78,50,113,20))
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_2.EchoMode(QtWidgets.QLineEdit.Password) #设置文本框为密码
self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000,99999999)) #8位
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(120,83,61,23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_2.setIcon(QIcon(QPixmap("exit.ico"))) #为“退出”按钮设置图标
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
self.pushButton.clicked.connect(self.login) #为登录按钮clicked信号绑定自定义槽函数
self.pushButton_2.clicked.connect(MainWindow.close)#为退出按钮clicked信号绑定MainWindow自带的close()槽函数
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def login(self):
from PyQt5.QtWidgets import QMessageBox
#使用information()方法弹出信息提示框
QMessageBox.information(MainWindow,"登录信息","用户名:"+self.lineEdit.text()+"密码:"+self.lineEdit_2.text(),QMessageBox.Ok)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "系统登录"))
self.pushButton.setText(_translate("MainWindow", "登录"))
self.pushButton_2.setText(_translate("MainWindow", "退出"))
self.label.setText(_translate("MainWindow", "用户名:"))
self.label_2.setText(_translate("MainWindow", "密码:"))
self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit) # 设置文本框为密码 #Password
self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999)) # 只能输入8位
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
2.ToolButtom:工具按钮
显示样式:
Qt.ToolButtomIconQnly:只显示图标
Qt.ToolButtomTextQnly:只显示文本
Qt.ToolButtomTextBesideIcon:文本显示在图标的旁边
Qt.ToolButtomTextUnderIcon:文本显示在图标的下面
Qt.ToolButtomFollowStyle:跟随系统样式
箭头类型:
Qt.NoArrow:没有箭头
Qt.UpArrow:向上的箭头
Qt.DownArrow:向下的箭头
Qt.LeftArrow:向左的箭头
Qt.RightArrow:向右的箭头
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(240, 320)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.toolButton = QtWidgets.QToolButton(self.centralwidget)
self.toolButton.setGeometry(QtCore.QRect(40, 60, 47, 21))
self.toolButton.setObjectName("toolButton")
self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # 设置显示样式
self.toolButton.setArrowType(QtCore.Qt.UpArrow) # 设置箭头类型
#self.toolButton.setIconSize(QtCore.QSize(29,29)) #设置图标大小
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 240, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.toolButton.setText(_translate("MainWindow", "..."))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
3.CommandLinkButtom:命令链接按钮
创建MainWindow窗口,添加CommandLinkButtom控件,设置文本
4.RadioBotton:单选按钮
setText():设置单选按钮显示的文本
text():获取单选按钮显示的文本
setChecked() 或者 setCheckable():设置单选按钮是否为选中状态,True为选中状态;False为未选中状态
isChecked():返回单选按钮的状态,True为选中状态;False为未选中状态
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(556, 473)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton.setGeometry(QtCore.QRect(100, 260, 115, 19))
self.radioButton.setObjectName("radioButton")
self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_2.setGeometry(QtCore.QRect(260, 260, 115, 19))
self.radioButton.setChecked(True) #设置管理员单选按钮默认选中
self.radioButton_2.setObjectName("radioButton_2")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(230, 90, 151, 31))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(230, 140, 151, 31))
self.lineEdit_2.setObjectName("lineEdit_2")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(110, 320, 93, 28))
self.lineEdit_2.EchoMode(QtWidgets.QLineEdit.Password) # 设置文本框为密码
self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999)) # 8位
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(250, 320, 93, 28))
self.pushButton_2.setObjectName("pushButton_2")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(110, 90, 91, 31))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(110, 140, 91, 31))
self.label_2.setObjectName("label_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 556, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.pushButton.clicked.connect(self.login) #登录
self.pushButton_2.clicked.connect(MainWindow.close)#退出
self.radioButton.toggled.connect(self.select)#单选按钮信号绑定toggled自定义槽函数 #可变clicked
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def login(self):
from PyQt5.QtWidgets import QMessageBox
#使用information()方法弹出信息提示框
QMessageBox.information(MainWindow,"登录信息","用户名:"+self.lineEdit.text()+"密码:"+self.lineEdit_2.text(),QMessageBox.Ok)
def select(self):
if self.radioButton.isChecked(): #判断是否为管理员登录
QMessageBox.information(MainWindow,"提示","您选择的是 管理员 登录",QMessageBox.Ok)
elif self.radioButton_2.isChecked(): #判断是否为管理员登录
QMessageBox.information(MainWindow,"提示","您选择的是 普通用户 登录",QMessageBox.Ok)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "系统登陆"))
self.radioButton.setText(_translate("MainWindow", "管理员"))
self.radioButton_2.setText(_translate("MainWindow", "普通用户"))
self.pushButton.setText(_translate("MainWindow", "重置"))
self.pushButton_2.setText(_translate("MainWindow", "登录"))
self.label.setText(_translate("MainWindow", "用户名:"))
self.label_2.setText(_translate("MainWindow", "密码:"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
5.CheckBox:复选框
QT.Checked():选中
QT.PartiallyChecked():半选中
QT.UnChecked():未选中
CheckBox控件最常用的信号是stasteChanged,用来在复选框的状态发生改变时发射
设置用户权限
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(479, 415)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(50, 30, 151, 19))
self.checkBox.setObjectName("checkBox")
self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_2.setGeometry(QtCore.QRect(50, 70, 191, 19))
self.checkBox_2.setObjectName("checkBox_2")
self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_3.setGeometry(QtCore.QRect(50, 110, 191, 19))
self.checkBox_3.setObjectName("checkBox_3")
self.checkBox_4 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_4.setGeometry(QtCore.QRect(50, 150, 191, 19))
self.checkBox_4.setObjectName("checkBox_4")
self.checkBox_5 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_5.setGeometry(QtCore.QRect(50, 190, 191, 19))
self.checkBox_5.setObjectName("checkBox_5")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(270, 270, 93, 28))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 479, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton.clicked.connect(self.getvalue)
def getvalue(self):
oper = ""
if self.checkBox.isChecked():
oper+=self.checkBox.text()
if self.checkBox_2.isChecked():
oper+='\n'+self.checkBox_2.text()
if self.checkBox_3.isChecked():
oper+='\n'+self.checkBox_3.text()
if self.checkBox_4.isChecked():
oper+='\n'+self.checkBox_4.text()
if self.checkBox_5.isChecked():
oper+='\n'+self.checkBox_5.text()
from PyQt5.QtWidgets import QMessageBox
QMessageBox.information(MainWindow,"提示","您选择的权限如下:\n"+oper,QMessageBox.Ok)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.checkBox.setText(_translate("MainWindow", "基本信息管理"))
self.checkBox_2.setText(_translate("MainWindow", "销售管理"))
self.checkBox_3.setText(_translate("MainWindow", "系统管理"))
self.checkBox_4.setText(_translate("MainWindow", "进货管理"))
self.checkBox_5.setText(_translate("MainWindow", "库存管理"))
self.pushButton.setText(_translate("MainWindow", "设置"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
四、选择列表类控件
1.ComboBox:下拉组合框
addItem():添加一个下拉列表项
addItems():从列表中添加下拉选项
currentText():获取选中项的文本
currentIndex():获取选中项的索引
itemText(index):获取索引为index项的文本
setItemText(index,text):设置索引为index项的文本
count():获取所有选项的数量
clear():删除所有选项
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(552, 428)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(120, 110, 72, 15))
self.label.setObjectName("label")
self.comboBox = QtWidgets.QComboBox(self.centralwidget)
self.comboBox.setGeometry(QtCore.QRect(180, 100, 131, 31))
self.comboBox.setObjectName("comboBox")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(130, 180, 211, 41))
self.label_2.setObjectName("label_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 552, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
list = ["总经理","副总经理","人事部经理","财务部经理","部门经理","普通员工"]
self.comboBox.addItems(list) #将职位列表添加到ComboBox下拉列表中
self.comboBox.currentIndexChanged.connect(self.showinfo) #将ComboBox控件的选项更改信号与自定义槽函数关联
def showinfo(self):
self.label_2.setText("您选择的职位是:"+self.comboBox.currentText()) #显示选择的职位
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "职位:"))
self.label_2.setText(_translate("MainWindow", "您选择的职位是:"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
2.FontComboBox:字体组合框
QFontComboBox.AllFonts:所有字体
QFontComboBox.ScalabelFonts:可以自动伸缩的字体
QFontComboBox.NonScalableFonts:不自动伸缩的字体
QFontComboBox.MonospaceFonts:等宽字体
QFontComboBox.ProportionalFonts:比例字体
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(472, 397)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.fontComboBox = QtWidgets.QFontComboBox(self.centralwidget)
self.fontComboBox.setGeometry(QtCore.QRect(80, 60, 279, 22))
self.fontComboBox.setObjectName("fontComboBox")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(90, 160, 281, 31))
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 472, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.fontComboBox.setFontFilters(QtWidgets.QFontComboBox.AllFonts) #设置字体组合框中显示的所有字体
self.fontComboBox.currentIndexChanged.connect(self.setfont) #当选择字体改变时,发射currentIndexChanged信号,调用setfont()槽函数
def setfont(self):
print(self.fontComboBox.currentText()) #控制台中输出选择的字体
#为label设置字体
self.label.setFont(QtGui.QFont(self.fontComboBox.currentText()))
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "每天编程1小时,从菜鸟到大牛"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
3.ListWidget:列表
ListWidget控件最常用的信号
currentItemChanged:列表项中的选择项发生改变时发射
itemClicked:单击列表中的项时发射
用列表表示内地电影票房的总排行榜
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(588, 492)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(20, 10, 541, 401))
self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection) #设置列表可以多选
self.listWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) #设置选中方式为整行选中
#设置以列表形式显示数据
self.listWidget.setViewMode(QtWidgets.QListView.ListMode)
self.listWidget.setWordWrap(True) #自动换行
self.listWidget.setObjectName("listWidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 588, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
from collections import OrderedDict
# 定义有序字典,作为List列表的数据源
dict = OrderedDict({'第1名': '战狼2,56.83', '第2名': '哪吒之魔童降世,50.12', '第3名': '流浪地球,46.86', })
for key, value in dict.items():
self.item = QtWidgets.QListWidgetItem(self.listWidget) # 遍历字典,并分别获取到键值
self.item.setText(key + ':' + value) # 创建列表项
self.item.setToolTip(value) # 设置项文本
self.listWidget.itemClicked.connect(self.gettext) # 设置提示文字
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
def gettext(self,item):
if item.isSelected():
from PyQt5.QtWidgets import QMessageBox
QMessageBox.information(MainWindow,"提示","您选择的是:"+item.text(),QMessageBox.Ok)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
五、容器控件
1.GropBox:分组框
QGroupBox类最常用的是setTitle()方法,用来设置分组框标题
self.groupBox.setTitle("系统登陆")
2.TabWidget:选项卡
选项卡的动态添加和删除
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(487, 422)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 471, 281))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.tabWidget.addTab(self.tab_2, "")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(20, 300, 93, 28))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(170, 300, 93, 28))
self.pushButton_2.setObjectName("pushButton_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 487, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.pushButton.clicked.connect(self.addtab)
self.pushButton_2.clicked.connect(self.deltab)
self.tabWidget.currentChanged.connect(self.gettab) # 页面切换
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
self.pushButton.setText(_translate("MainWindow", "添加"))
self.pushButton_2.setText(_translate("MainWindow", "删除"))
# 新增选项卡
def addtab(self):
self.atab = QtWidgets.QWidget() # 创建选项卡对象
name = "tab_" + str(self.tabWidget.count() + 1) # 设置选项卡对象名
self.atab.setObjectName(name) # 设置选项卡对象名
self.tabWidget.addTab(self.atab, name) # 添加选项卡
# 删除选项卡
def deltab(self):
self.tabWidget.removeTab(self.tabWidget.currentIndex()) # 移除当前选项卡
# 获取选中的选项卡及索引
def gettab(self, currentIndex):
from PyQt5.QtWidgets import QMessageBox
QMessageBox.information(MainWindow, "提示","您选择了" + self.tabWidget.tabText(currentIndex) + "选项卡,索引为:" + str(self.tabWidget.currentIndex()),QMessageBox.Ok)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
3.ToolBox:工具盒
实现仿qq抽屉的效果
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(142,393)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
#toolBox工具盒
self.toolBox = QtWidgets.QToolBox(self.centralwidget)
self.toolBox.setGeometry(QtCore.QRect(0,0,141,391))
self.toolBox.setObjectName("toolBox")
#好友设置
self.page = QtWidgets.QWidget()
self.page.setGeometry(QtCore.QRect(0, 0, 141, 287))
self.page.setObjectName("page")
self.toolButton = QtWidgets.QToolButton(self.page)
self.toolButton.setGeometry(QtCore.QRect(0, 0, 91, 51))
icon=QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(".\img\qq.png"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
self.toolButton.setIcon(icon)
self.toolButton.setIconSize(QtCore.QSize(20,20))
self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
self.toolButton.setAutoRaise(True)
self.toolButton.setObjectName("toolButton")
self.toolButton_2 = QtWidgets.QToolButton(self.page)
self.toolButton_2.setGeometry(QtCore.QRect(0, 49, 91, 51))
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(".\img\qq.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.toolButton_2.setIcon(icon1)
self.toolButton_2.setIconSize(QtCore.QSize(20,20))
self.toolButton_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
self.toolButton_2.setAutoRaise(True)
self.toolButton_2.setObjectName("toolButton_2")
self.toolBox.addItem(self.page, "")
#同学设置
self.page_2 = QtWidgets.QWidget()
self.page_2.setGeometry(QtCore.QRect(0, 0, 141, 287))
self.page_2.setObjectName("page_2")
self.toolButton_3 = QtWidgets.QToolButton(self.page_2)
self.toolButton_3.setGeometry(QtCore.QRect(0, 0, 91, 51))
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(".\img\qq.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.toolButton_3.setIcon(icon2)
self.toolButton_3.setIconSize(QtCore.QSize(20,20))
self.toolButton_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
self.toolButton_3.setAutoRaise(True)
self.toolButton_3.setObjectName("toolButton_3")
self.toolBox.addItem(self.page_2, "")
#同事设置
self.page_3 = QtWidgets.QWidget()
#self.page_3.setGeometry(QtCore.QRect(0, 0, 141, 287))
self.page_3.setObjectName("page_3")
self.toolButton_4 = QtWidgets.QToolButton(self.page_3)
self.toolButton_4.setGeometry(QtCore.QRect(0, 1, 91, 51))
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap(".\img\qq.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.toolButton_4.setIcon(icon4)
self.toolButton_4.setIconSize(QtCore.QSize(20,20))
self.toolButton_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
self.toolButton_4.setAutoRaise(True)
self.toolButton_4.setObjectName("toolButton_4")
self.toolButton_5 = QtWidgets.QToolButton(self.page_3)
self.toolButton_5.setGeometry(QtCore.QRect(0, 50, 91, 51))
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(".\img\qq.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.toolButton_5.setIcon(icon3)
self.toolButton_5.setIconSize(QtCore.QSize(20,20))
self.toolButton_5.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
self.toolButton_5.setAutoRaise(True)
self.toolButton_5.setObjectName("toolButton_5")
self.toolBox.addItem(self.page_3, "")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
self.toolBox.setCurrentIndex(0) #默认第一个页面
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "我的QQ"))
self.toolButton.setText(_translate("MainWindow", "宋江"))
self.toolButton_2.setText(_translate("MainWindow", "卢俊义"))
self.toolBox.setItemText(self.toolBox.indexOf(self.page), _translate("MainWindow", "我的好友"))
self.toolButton_3.setText(_translate("MainWindow", "吴用"))
self.toolBox.setItemText(self.toolBox.indexOf(self.page_2), _translate("MainWindow", "同学"))
self.toolButton_4.setText(_translate("MainWindow", "鲁智深"))
self.toolButton_5.setText(_translate("MainWindow", "林冲"))
self.toolBox.setItemText(self.toolBox.indexOf(self.page_3), _translate("MainWindow", "同事"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
六、日期时间类控件
1.日期和时间控件
Date/Time Edit:(QDateTimeEdit)同时显示和编辑日期时间
DateEdit:(QDateEdit)只能显示和编辑日期
TimeEdit:(QTimeEdit)只能显示和编辑时间
2.CalendarWidget:日历控件
CalendarWidget对应QCalendarWidge类,最常用的信号是selectionChanged,该信号在选择日期发生改变时发射。
获取选中的日期
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(708, 508)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.calendarWidget = QtWidgets.QCalendarWidget(self.centralwidget)
self.calendarWidget.setGeometry(QtCore.QRect(70, 50, 501, 361))
self.calendarWidget.setSelectedDate(QtCore.QDate(2024,5,23)) #设置默认选中日期
self.calendarWidget.setMinimumDate(QtCore.QDate(1752, 9, 1)) # 设置最小日期
self.calendarWidget.setMaximumDate(QtCore.QDate(9999, 12, 31)) # 设置最大日期
self.calendarWidget.setFirstDayOfWeek(QtCore.Qt.Monday) #设置每周的第一天为周一
self.calendarWidget.setGridVisible(True) # 设置网格线可见
self.calendarWidget.setSelectionMode(QtWidgets.QCalendarWidget.SingleSelection) #可以设置选中单个日期
self.calendarWidget.HorizontalHeaderFormat(QtWidgets.QCalendarWidget.ShortDayNames) #设置水平表头为简短形式,即“周一”
#设置垂直表头为周数
self.calendarWidget.setVerticalHeaderFormat(QtWidgets.QCalendarWidget.ISOWeekNumbers)
self.calendarWidget.setNavigationBarVisible(True)
self.calendarWidget.setDateEditEnabled(True)
self.calendarWidget.setObjectName("calendarWidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 708, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.calendarWidget.selectionChanged.connect(self.getdate)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
def getdate(self):
from PyQt5.QtWidgets import QMessageBox
date = QtCore.QDate(self.calendarWidget.selectedDate()) #获取当前选中日期的QDate对象
year = date.year()
month = date.month()
day = date.day()
QMessageBox.information(MainWindow,"提示",str(year)+"-"+str(month)+"-"+str(day),QMessageBox.Ok)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
#获取当前系统日期时间
datetime=QtCore.QDateTime.currentDateTime()
#获取当前系统日期
date=QtCore.QDate.currentDate()
#获取当前系统时间
time=QtCore.QTime.currentTime()