当前位置:   article > 正文

PyQt5的笔记(中-4)_qt qlcdnumber 控件文字居中 style

qt qlcdnumber 控件文字居中 style

PyQt5的笔记的其他文章链接:

(1条消息) PyQt5的笔记(上)_我行我素,向往自由的博客-CSDN博客

PyQt5的笔记(中-1)_我行我素,向往自由的博客-CSDN博客

(1条消息) PyQt5的笔记(中-2)_我行我素,向往自由的博客-CSDN博客

(1条消息) PyQt5的笔记(中-3)_我行我素,向往自由的博客-CSDN博客

 

目录

31. QLabel

31.1 功能特性

31.2 信号

32.QLCDNumber

32.1 功能作用

33.QProgressBar进度条

34.QDialog

34.1 QRrrorMessage 

34.2 QProgressDialog

34.3 QMessageBox


31. QLabel

没有提供用户交互功能。 

31.1 功能特性

 

 

 

  1. from PyQt5.Qt import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle('QLabel功能测试')
  7. self.resize(1000,700)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. label=QLabel('账号(&s)',self)#准备设置快捷键,这里只有设置了小伙伴,才会生效
  11. label=QLabel('<a href="http://www.baidu.com">百度</a>',self)
  12. label.move(50,100)
  13. label.resize(400,400)#如果长度小于文本长度,超过的部分会显示不出来
  14. # label.adjustSize() # 根据文本内容调整大小
  15. label.setStyleSheet('background-color:cyan')
  16. #对齐(默认:水平方向上左对齐,竖直方向上居中对齐)
  17. label.setAlignment(Qt.AlignRight | Qt.AlignVCenter)#水平右对齐,竖直居中对齐
  18. #缩进与边距
  19. label.setIndent(20)#缩进
  20. label.setMargin(20)#边距
  21. #展示格式
  22. # label.setTextFormat(Qt.PlainText)#以普通文本方式展示
  23. #小伙伴
  24. le1=QLineEdit(self)
  25. le1.move(250,250)
  26. le2=QLineEdit(self)
  27. le2.move(250,300)
  28. # label.setBuddy(le1)#label设置了一个小伙伴le1
  29. # #内容缩放
  30. # label.setPixmap(QPixmap('图片/吐槽1.png'))
  31. label.setScaledContents(True)
  32. #文本交互标志
  33. # label.setTextInteractionFlags(Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard | Qt.TextEditable)#通过鼠标和键盘选中,可编辑
  34. # label.setSelection(1,2)#从1开始的,选两个长度(begin,num)
  35. #外部链接
  36. label.setOpenExternalLinks(True)#打开外部链接
  37. #换行
  38. label.setWordWrap(True)#内容超出宽度,自动换行,并且保证单词的完整性
  39. #内容操作
  40. # label.setText('<img src="图片/吐槽1.png" width=60 height=60>')#当成富文本处理
  41. # label.setNum(888.88)
  42. #展示画图
  43. # pic=QPicture()
  44. # painter=QPainter(pic)
  45. # painter.setBrush(QBrush(QColor(100,200,100)))#画刷对象
  46. # painter.drawEllipse(0,0,200,200)#椭圆
  47. # label.setPicture(pic)
  48. #展示动图.gif
  49. movie=QMovie("图片/爱你1.gif")
  50. label.setMovie(movie)
  51. movie.start()
  52. movie.setSpeed(200)#100表示原来的速度,200表示两倍速
  53. #清空
  54. # label.clear()#所有都清空
  55. if __name__=='__main__':
  56. app = QApplication(sys.argv)
  57. window = Window()
  58. window.show()
  59. sys.exit(app.exec_())

运行效果:

31.2 信号

  1. #信号
  2. label.linkHovered.connect(lambda a:print(a))#鼠标放上去,触发,然后打印网址
  3. label.linkActivated.connect(lambda a:print(a))#点击打印

运行效果:

32.QLCDNumber

32.1 功能作用

  1. # lcd = QLCDNumber(self)
  2. lcd=QLCDNumber(5,self)#数字表示展示内容的位数
  3. lcd.move(100,100)
  4. lcd.resize(300,50)
  5. # lcd.display('12345')#多余的位数,新的替代旧的,若位数是5,即123456-->23456
  6. # lcd.display('osgabcdefhlpruy')
  7. # lcd.display(':')
  8. # lcd.display(88866)#展示数字,也可以;如果超出位数,会变成0
  9. lcd.display(888.68)#显示5位的情况下,结果是888.7
  10. btn=QPushButton(self)
  11. btn.setText('测试按钮')
  12. btn.move(50,50)
  13. btn.clicked.connect(lambda:print(lcd.value()))#拿到的是全部的内容,并非四舍五入的结果

  1. #模式设置
  2. lcd.setMode(QLCDNumber.Bin)#二进制
  3. #lcd.setBinMode()#快捷方式

  1. #溢出
  2. print(lcd.checkOverflow(100))#位数为2,所以为True
  3. lcd.overflow.connect(lambda:print('数值溢出'))
  4. lcd.display(100)#必须先监听再展示

  1. lcd=QLCDNumber(2,self)#数字表示展示内容的位数
  2. lcd.move(0,0)
  3. lcd.resize(300,100)
  4. lcd2=QLCDNumber(self)
  5. lcd2.move(0,100)
  6. lcd2.resize(300,100)
  7. lcd3 = QLCDNumber(self)
  8. lcd3.move(0, 200)
  9. lcd3.resize(300, 100)
  10. lcd.display(99)
  11. lcd2.display(99)
  12. lcd3.display(99)
  13. lcd.setSegmentStyle(QLCDNumber.Outline)#生成填充了背景颜色的凸起部分
  14. lcd2.setSegmentStyle(QLCDNumber.Filled)#生成填充颜色的凹起部分
  15. lcd3.setSegmentStyle(QLCDNumber.Flat)#生成填充前景色的平坦段

效果展示:

33.QProgressBar进度条

 

  1. from PyQt5.Qt import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle('QProgressBar测试')
  7. self.resize(500,500)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. pb=QProgressBar(self)
  11. print('当前最小值{},最大值{}.'.format(pb.minimum(),pb.maximum()))
  12. # pb.setMinimum(0)#[注意]最大值最小值均为0时,则进入繁忙提示
  13. # pb.setMaximum(100)
  14. pb.setRange(50,100)
  15. pb.setValue(75)
  16. btn=QPushButton(self)
  17. btn.setText('测试按钮')
  18. btn.move(200,200)
  19. def test():
  20. pb.reset()#重置之后,当前值为最小值减一,最小最大值还是之前设置的
  21. print('heihei当前最小值{},最大值{}.'.format(pb.minimum(), pb.maximum()))
  22. print('当前值:',pb.value())
  23. btn.clicked.connect(test)#重置
  24. if __name__=='__main__':
  25. app = QApplication(sys.argv)
  26. window = Window()
  27. window.show()
  28. sys.exit(app.exec_())

运行结果:

  1. pb=QProgressBar(self)
  2. pb.resize(400,40)
  3. pb.setRange(50,100)
  4. pb.setValue(75)
  5. #文本格式设置 默认:百分比
  6. # pb.setFormat("当前人数 / 总人数 %p%")#%p:表示百分数
  7. # pb.setFormat("当前人数%v / 总人数%m")
  8. pb.setFormat("当前人数{} / 总人数%m".format(pb.value()-pb.minimum()))

效果展示:

  1. #文本标签操作
  2. pb.setTextVisible(False)#默认True,文字部分隐藏
  3. pb.text()#打印文本标签,就是隐藏起来的内容
  4. pb.resize(40,400)
  5. pb.setOrientation(Qt.Vertical)#垂直方向,改动的只是进度条方向,但是尺寸依旧需要手动调整,竖直方向文字部分会隐藏
  6. #倒立外观(反转)
  7. pb.setInvertedAppearance(True)#从上往下

运行结果:

  1. #定时器
  2. timer=QTimer(pb)
  3. def change_progress():
  4. if pb.value()==pb.maximum():
  5. timer.stop()
  6. pb.setValue(pb.value()+1)
  7. timer.timeout.connect(change_progress)
  8. timer.start(2000)#2
  9. pb.valueChanged.connect(lambda val:print('当前的进度值:',val))

34.QDialog

34.1 QRrrorMessage 

  1. from PyQt5.Qt import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle('QErrorMessage')
  7. self.resize(500,500)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. # em=QErrorMessage(self)
  11. # em.setWindowTitle('错误提示')
  12. # em.showMessage('1.真不巧,又出错了')#这里的富选框,不再显示相同的信息
  13. # em.showMessage('2.真不巧,又出错了')
  14. # em.showMessage('3.真不巧,又出错了')
  15. # em.showMessage('4.真不巧,又出错了')
  16. # em.open()
  17. # em.exec()#应用程序方式
  18. QErrorMessage.qtHandler()
  19. qDebug('qDebug')#展示调试信息
  20. qWarning('qWarning')#展示警告信息
  21. if __name__=='__main__':
  22. app = QApplication(sys.argv)
  23. window = Window()
  24. window.show()
  25. sys.exit(app.exec_())

34.2 QProgressDialog

  1. from PyQt5.Qt import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle('QProgressDialog')
  7. self.resize(500,500)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. # pd=QProgressDialog(self)#对话框会自动弹出来,但有一定的间隔;如果4秒还没跑完,才会显示出来
  11. pd=QProgressDialog('xx1','xx2',1,1000,self)
  12. pd.setWindowTitle('窗口标题')
  13. # pd.setMinimumDuration(0)#设置等待时间,0表示不显示
  14. pd.setAutoClose(False)#满了之后不自动关闭
  15. pd.setAutoReset(False)#取消自动重置
  16. pd.open(lambda :print('对话框被取消'))
  17. for i in range(1,101):
  18. pd.setValue(i)#满值时,会自动重置
  19. # pd.show()
  20. if __name__=='__main__':
  21. app = QApplication(sys.argv)
  22. window = Window()
  23. window.show()
  24. sys.exit(app.exec_())

运行效果:

 

  1. from PyQt5.Qt import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle('QProgressDialog')
  7. self.resize(500,500)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. pd=QProgressDialog(self)#对话框会自动弹出来,但有一定的间隔;如果4秒还没跑完,才会显示出来
  11. pd.setWindowTitle('窗口标题')
  12. pd.setLabelText('下载进度')
  13. pd.setCancelButtonText('取消下载')
  14. pd.setRange(0,100)
  15. pd.setAutoClose(False)#满了之后不自动关闭
  16. pd.setAutoReset(False)#取消自动重置
  17. pd.open(lambda :print('对话框被取消'))
  18. timer=QTimer(pd)
  19. pd.setAutoReset(False)
  20. def test():
  21. if pd.value()>=pd.maximum() or pd.wasCanceled():
  22. timer.stop()
  23. else:
  24. pd.setValue(pd.value() + 1)
  25. timer.timeout.connect(test)
  26. timer.start(1000)#1s
  27. #信号
  28. pd.canceled.connect(timer.stop)
  29. if __name__=='__main__':
  30. app = QApplication(sys.argv)
  31. window = Window()
  32. window.show()
  33. sys.exit(app.exec_())

效果展示:

 

34.3 QMessageBox

  1. from PyQt5.Qt import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle('QMessageBox')
  7. self.resize(500,500)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. mb=QMessageBox(self)#是一个模态对话框
  11. # mb=QMessageBox(QMessageBox.Warning,'xx1','<h2>xx2</h2>',QMessageBox.Ok | QMessageBox.Discard,self)
  12. # mb.setModal(False)#强行改为非模态对话框
  13. # mb.setWindowModality(Qt.NonModal)#非模态
  14. mb.setWindowTitle('消息提示')#设置窗口标题
  15. mb.setIcon(QMessageBox.Information)#设置标准图标
  16. mb.setIconPixmap(QPixmap('图片/提示.png').scaled(50,50))#自定义图标
  17. mb.setTextFormat(Qt.PlainText)#设置为普通文本
  18. mb.setText('<h3>文件内容已经被修改</h3>')#主标题,可以设置富文本
  19. mb.setInformativeText('<h4>是否直接关闭不保存?</h4>')#设置副标题
  20. mb.setCheckBox(QCheckBox('下次不再提醒',mb))
  21. mb.setDetailedText('<h4>你修改的内容是给每一行代码加了一个分号</h4>')#不支持富文本
  22. mb.exec()#应用程序级别的模态对话框
  23. #mb.open()#窗口级别的模态对话框
  24. if __name__=='__main__':
  25. app = QApplication(sys.argv)
  26. window = Window()
  27. window.show()
  28. sys.exit(app.exec_())

运行效果:

 

  1. #添加按钮
  2. mb.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
  3. mb.addButton(QPushButton('xx1',mb),QMessageBox.YesRole)
  4. # mb.addButton(QPushButton('xx2', mb), QMessageBox.NoRole)
  5. btn2=mb.addButton('xx2',QMessageBox.NoRole)#同上,但是返回结果是一个按钮QPushButton
  6. # #移除按钮
  7. # mb.removeButton(btn2)
  8. # #设置默认按钮:敲回车,默认点击的按钮
  9. # mb.setDefaultButton(btn2)
  10. #点击esc会触发哪个按钮
  11. mb.setEscapeButton(btn2)
  12. print(btn2)
  13. def test(btn):
  14. print(btn)
  15. if btn==btn2:
  16. print('点击了第二个按钮')
  17. else:
  18. print('点击了其他按钮')
  19. mb.buttonClicked.connect(test)#信号,点击按钮会触发


QMessageBox.about(self,'xx1','xx2')
 

 QMessageBox.aboutQt(self,'xx3')#封装的一个Qt的对话框

 

QMessageBox.question(self,'xx1','xx2',QMessageBox.Ok | QMessageBox.Discard)#问号图标

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/264451
推荐阅读
相关标签
  

闽ICP备14008679号