当前位置:   article > 正文

python 使用PyQt5

python 使用pyqt5

一:安装PyQt5

pip install pyqt5

二:PyQt5简单使用
1:使用PyQt5创建一个简单窗口

  1. import sys
  2. from PyQt5 import QtWidgets
  3. #创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
  4. # Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
  5. app = QtWidgets.QApplication(sys.argv)
  6. #创建一个widget组件基础类
  7. windows = QtWidgets.QWidget()
  8. #设置widget组件的大小(w,h)
  9. windows.resize(500,500)
  10. #设置widget组件的位置(x,y)
  11. windows.move(100,100)
  12. """
  13. #设置widget组件的位置居中
  14. qr = windows.frameGeometry()
  15. cp = QtWidgets.QDesktopWidget().availableGeometry().center()
  16. qr.moveCenter(cp)
  17. windows.move(qr.topLeft())
  18. """
  19. #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
  20. #windows.setGeometry(100,100,500,500)
  21. #show()方法在屏幕上显示出widget组件
  22. windows.show()
  23. #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
  24. sys.exit(app.exec_())

现象如下:
clipboard.png
2:给创建的窗口添加标题和图标

  1. import sys
  2. from PyQt5 import QtWidgets,QtGui
  3. #创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
  4. # Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
  5. app = QtWidgets.QApplication(sys.argv)
  6. #创建一个widget组件基础类
  7. windows = QtWidgets.QWidget()
  8. #设置widget组件的大小(w,h)
  9. windows.resize(500,500)
  10. #设置widget组件的位置(x,y)
  11. windows.move(100,100)
  12. """
  13. #设置widget组件的位置居中
  14. qr = windows.frameGeometry()
  15. cp = QtWidgets.QDesktopWidget().availableGeometry().center()
  16. qr.moveCenter(cp)
  17. windows.move(qr.topLeft())
  18. """
  19. #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
  20. #windows.setGeometry(100,100,500,500)
  21. #给widget组件设置标题
  22. windows.setWindowTitle('标题')
  23. #给widget组件设置图标
  24. windows.setWindowIcon(QtGui.QIcon('2.png'))
  25. #show()方法在屏幕上显示出widget组件
  26. windows.show()
  27. #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
  28. sys.exit(app.exec_())

现象如下:
clipboard.png
3:给创建的窗口设置按钮及设置提示语

  1. import sys
  2. from PyQt5 import QtWidgets,QtGui
  3. #创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
  4. # Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
  5. app = QtWidgets.QApplication(sys.argv)
  6. #创建一个widget组件基础类
  7. windows = QtWidgets.QWidget()
  8. #设置widget组件的大小(w,h)
  9. windows.resize(500,500)
  10. #设置widget组件的位置(x,y)
  11. windows.move(100,100)
  12. """
  13. #设置widget组件的位置居中
  14. qr = windows.frameGeometry()
  15. cp = QtWidgets.QDesktopWidget().availableGeometry().center()
  16. qr.moveCenter(cp)
  17. windows.move(qr.topLeft())
  18. """
  19. #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
  20. #windows.setGeometry(100,100,500,500)
  21. #给widget组件设置标题
  22. windows.setWindowTitle('标题')
  23. #给widget组件设置图标
  24. windows.setWindowIcon(QtGui.QIcon('2.png'))
  25. #设置提示语的字体和大小
  26. QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
  27. #给widget组件设置提示语
  28. windows.setToolTip('这是窗口提示')
  29. #设置按钮并给按钮命名
  30. btn = QtWidgets.QPushButton('button',windows)
  31. #给按钮设置位置(x,y,w,h)
  32. btn.setGeometry(200,200,100,50)
  33. #给按钮设置提示语
  34. btn.setToolTip('这是按钮提示')
  35. #设置按钮样式
  36. btn.setStyleSheet("background-color: rgb(164, 185, 255);"
  37. "border-color: rgb(170, 150, 163);"
  38. "font: 75 12pt \"Arial Narrow\";"
  39. "color: rgb(126, 255, 46);")
  40. #点击按钮关闭创建的窗口
  41. btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
  42. #show()方法在屏幕上显示出widget组件
  43. windows.show()
  44. #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
  45. sys.exit(app.exec_())

现象如下(点击button按钮,窗口关闭):
clipboard.png
4:设置标签(lable)信息

  1. import sys
  2. from PyQt5 import QtWidgets,QtGui,QtCore
  3. #创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
  4. # Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
  5. app = QtWidgets.QApplication(sys.argv)
  6. #创建一个widget组件基础类
  7. windows = QtWidgets.QWidget()
  8. #设置widget组件的大小(w,h)
  9. windows.resize(500,500)
  10. #设置widget组件的位置(x,y)
  11. windows.move(100,100)
  12. """
  13. #设置widget组件的位置居中
  14. qr = windows.frameGeometry()
  15. cp = QtWidgets.QDesktopWidget().availableGeometry().center()
  16. qr.moveCenter(cp)
  17. windows.move(qr.topLeft())
  18. """
  19. #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
  20. #windows.setGeometry(100,100,500,500)
  21. #给widget组件设置标题
  22. windows.setWindowTitle('标题')
  23. #给widget组件设置图标
  24. windows.setWindowIcon(QtGui.QIcon('2.png'))
  25. #设置lable信息
  26. label = QtWidgets.QLabel(windows)
  27. label.setGeometry(QtCore.QRect(100, 10, 100, 60))
  28. label.setText('这是lable信息')
  29. label.setObjectName('label')
  30. #show()方法在屏幕上显示出widget组件
  31. windows.show()
  32. #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
  33. sys.exit(app.exec_())

现象如下:
clipboard.png
5:配置输入框

  1. import sys
  2. from PyQt5 import QtWidgets,QtGui,QtCore,Qt
  3. #创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
  4. # Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
  5. app = QtWidgets.QApplication(sys.argv)
  6. #创建一个widget组件基础类
  7. windows = QtWidgets.QWidget()
  8. #设置widget组件的大小(w,h)
  9. windows.resize(500,500)
  10. #设置widget组件的位置(x,y)
  11. windows.move(100,100)
  12. """
  13. #设置widget组件的位置居中
  14. qr = windows.frameGeometry()
  15. cp = QtWidgets.QDesktopWidget().availableGeometry().center()
  16. qr.moveCenter(cp)
  17. windows.move(qr.topLeft())
  18. """
  19. #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
  20. #windows.setGeometry(100,100,500,500)
  21. #给widget组件设置标题
  22. windows.setWindowTitle('标题')
  23. #给widget组件设置图标
  24. windows.setWindowIcon(QtGui.QIcon('2.png'))
  25. #设置输入框
  26. textbox = Qt.QLineEdit(windows)
  27. textbox.resize(100,20)
  28. textbox.move(50,50)
  29. #show()方法在屏幕上显示出widget组件
  30. windows.show()
  31. #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
  32. sys.exit(app.exec_())

现象如下:
clipboard.png
三:将上述方法总结一下实现了一个简单的功能,如下:
功能为:在输入框中输入值过后,点击按钮就会打印出你输入的值,关闭窗口会有提示

  1. import sys
  2. from PyQt5 import QtWidgets,QtGui,QtCore,Qt
  3. class GUI(QtWidgets.QWidget):
  4. def __init__(self):
  5. #初始化————init__
  6. super().__init__()
  7. self.initGUI()
  8. def initGUI(self):
  9. #设置窗口大小
  10. self.resize(500,500)
  11. #设置窗口位置(下面配置的是居于屏幕中间)
  12. qr = self.frameGeometry()
  13. cp = QtWidgets.QDesktopWidget().availableGeometry().center()
  14. qr.moveCenter(cp)
  15. self.move(qr.topLeft())
  16. #设置窗口标题和图标
  17. self.setWindowTitle('窗口标题')
  18. self.setWindowIcon(QtGui.QIcon('2.png'))
  19. #设置窗口提示
  20. self.setToolTip('窗口提示')
  21. #设置label信息
  22. self.label = QtWidgets.QLabel(self)
  23. self.label.setGeometry(QtCore.QRect(100, 10, 100, 60))
  24. self.label.setText('这是lable信息')
  25. self.label.setObjectName('label')
  26. # 设置label提示
  27. self.label.setToolTip('label提示')
  28. #设置输入框
  29. self.textbox = Qt.QLineEdit(self)
  30. self.textbox.resize(100, 20)
  31. self.textbox.move(100, 50)
  32. # 设置输入框提示
  33. self.textbox.setToolTip('输入框提示')
  34. #设置按钮
  35. self.btn =QtWidgets.QPushButton('按钮',self)
  36. self.btn.resize(100,20)
  37. self.btn.move(200,50)
  38. # 设置按钮样式
  39. self.btn.setStyleSheet("background-color: rgb(164, 185, 255);"
  40. "border-color: rgb(170, 150, 163);"
  41. "font: 75 12pt \"Arial Narrow\";"
  42. "color: rgb(126, 255, 46);")
  43. # 设置按钮提示
  44. self.btn.setToolTip('按钮提示')
  45. #点击鼠标触发事件
  46. self.btn.clicked.connect(self.clickbtn)
  47. #展示窗口
  48. self.show();
  49. #点击鼠标触发函数
  50. def clickbtn(self):
  51. #打印出输入框的信息
  52. textboxValue = self.textbox.text()
  53. QtWidgets.QMessageBox.question(self, "信息", '你输入的输入框内容为:' + textboxValue,QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.Ok)
  54. #清空输入框信息
  55. self.textbox.setText('')
  56. #关闭窗口事件重写
  57. def closeEvent(self, QCloseEvent):
  58. reply = QtWidgets.QMessageBox.question(self, '警告',"确定关闭当前窗口?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No)
  59. if reply == QtWidgets.QMessageBox.Yes:
  60. QCloseEvent.accept()
  61. else:
  62. QCloseEvent.ignore()
  63. if __name__ == '__main__':
  64. app = QtWidgets.QApplication(sys.argv)
  65. gui = GUI()
  66. sys.exit(app.exec_())

现象为:
clipboard.png

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

闽ICP备14008679号