当前位置:   article > 正文

PyQt5+Qt designer实战_qtdesigner 设计计算器后按数字无反应python

qtdesigner 设计计算器后按数字无反应python

PyQt5+Qt designer 制作计算器

配置说明:

Anaconda 4.2.0 (64-bit)

Python 3.5.2

首先,在Qt designer里面设计界面:

打开 Qt designer后,设计界面如下所示:

保存为clat.ui。然后将其转为py文件:

之后会生产clat.py文件。

打开后,代码如下:

  1. # -*- coding: utf-8 -*-
  2. # Form implementation generated from reading ui file 'clat.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.6
  5. #
  6. # WARNING! All changes made in this file will be lost!
  7. from PyQt5 import QtCore, QtGui, QtWidgets
  8. class Ui_Form(object):
  9. def setupUi(self, Form):
  10. Form.setObjectName("Form")
  11. Form.resize(746, 455)
  12. self.widget = QtWidgets.QWidget(Form)
  13. self.widget.setGeometry(QtCore.QRect(81, 31, 512, 399))
  14. self.widget.setObjectName("widget")
  15. self.gridLayout = QtWidgets.QGridLayout(self.widget)
  16. self.gridLayout.setContentsMargins(0, 0, 0, 0)
  17. self.gridLayout.setObjectName("gridLayout")
  18. self.textBrowser = QtWidgets.QTextBrowser(self.widget)
  19. self.textBrowser.setObjectName("textBrowser")
  20. self.gridLayout.addWidget(self.textBrowser, 0, 0, 2, 4)
  21. self.calendarWidget = QtWidgets.QCalendarWidget(self.widget)
  22. self.calendarWidget.setObjectName("calendarWidget")
  23. self.gridLayout.addWidget(self.calendarWidget, 1, 4, 1, 2)
  24. self.lineEdit = QtWidgets.QLineEdit(self.widget)
  25. self.lineEdit.setObjectName("lineEdit")
  26. self.gridLayout.addWidget(self.lineEdit, 2, 0, 1, 5)
  27. self.pushButton_19 = QtWidgets.QPushButton(self.widget)
  28. self.pushButton_19.setObjectName("pushButton_19")
  29. self.gridLayout.addWidget(self.pushButton_19, 4, 0, 1, 1)
  30. self.pushButton_17 = QtWidgets.QPushButton(self.widget)
  31. self.pushButton_17.setObjectName("pushButton_17")
  32. self.gridLayout.addWidget(self.pushButton_17, 4, 1, 1, 1)
  33. self.pushButton_18 = QtWidgets.QPushButton(self.widget)
  34. self.pushButton_18.setObjectName("pushButton_18")
  35. self.gridLayout.addWidget(self.pushButton_18, 4, 2, 1, 1)
  36. self.pushButton_1 = QtWidgets.QPushButton(self.widget)
  37. self.pushButton_1.setObjectName("pushButton_1")
  38. self.gridLayout.addWidget(self.pushButton_1, 4, 3, 1, 3)
  39. self.pushButton_14 = QtWidgets.QPushButton(self.widget)
  40. self.pushButton_14.setObjectName("pushButton_14")
  41. self.gridLayout.addWidget(self.pushButton_14, 6, 0, 1, 1)
  42. self.pushButton_15 = QtWidgets.QPushButton(self.widget)
  43. self.pushButton_15.setObjectName("pushButton_15")
  44. self.gridLayout.addWidget(self.pushButton_15, 6, 1, 1, 1)
  45. self.pushButton_16 = QtWidgets.QPushButton(self.widget)
  46. self.pushButton_16.setObjectName("pushButton_16")
  47. self.gridLayout.addWidget(self.pushButton_16, 6, 2, 1, 1)
  48. self.pushButton_2 = QtWidgets.QPushButton(self.widget)
  49. self.pushButton_2.setObjectName("pushButton_2")
  50. self.gridLayout.addWidget(self.pushButton_2, 6, 3, 1, 3)
  51. self.pushButton_11 = QtWidgets.QPushButton(self.widget)
  52. self.pushButton_11.setObjectName("pushButton_11")
  53. self.gridLayout.addWidget(self.pushButton_11, 8, 0, 1, 1)
  54. self.pushButton_12 = QtWidgets.QPushButton(self.widget)
  55. self.pushButton_12.setObjectName("pushButton_12")
  56. self.gridLayout.addWidget(self.pushButton_12, 8, 1, 1, 1)
  57. self.pushButton_13 = QtWidgets.QPushButton(self.widget)
  58. self.pushButton_13.setObjectName("pushButton_13")
  59. self.gridLayout.addWidget(self.pushButton_13, 8, 2, 1, 1)
  60. self.pushButton_3 = QtWidgets.QPushButton(self.widget)
  61. self.pushButton_3.setObjectName("pushButton_3")
  62. self.gridLayout.addWidget(self.pushButton_3, 8, 3, 1, 3)
  63. self.pushButton_8 = QtWidgets.QPushButton(self.widget)
  64. self.pushButton_8.setObjectName("pushButton_8")
  65. self.gridLayout.addWidget(self.pushButton_8, 9, 0, 1, 1)
  66. self.pushButton_9 = QtWidgets.QPushButton(self.widget)
  67. self.pushButton_9.setObjectName("pushButton_9")
  68. self.gridLayout.addWidget(self.pushButton_9, 9, 1, 1, 1)
  69. self.pushButton_10 = QtWidgets.QPushButton(self.widget)
  70. self.pushButton_10.setObjectName("pushButton_10")
  71. self.gridLayout.addWidget(self.pushButton_10, 9, 2, 1, 1)
  72. self.pushButton_4 = QtWidgets.QPushButton(self.widget)
  73. self.pushButton_4.setObjectName("pushButton_4")
  74. self.gridLayout.addWidget(self.pushButton_4, 9, 3, 1, 3)
  75. self.pushButton_7 = QtWidgets.QPushButton(self.widget)
  76. self.pushButton_7.setObjectName("pushButton_7")
  77. self.gridLayout.addWidget(self.pushButton_7, 10, 0, 1, 2)
  78. self.pushButton_6 = QtWidgets.QPushButton(self.widget)
  79. self.pushButton_6.setObjectName("pushButton_6")
  80. self.gridLayout.addWidget(self.pushButton_6, 10, 2, 1, 1)
  81. self.pushButton_5 = QtWidgets.QPushButton(self.widget)
  82. self.pushButton_5.setObjectName("pushButton_5")
  83. self.gridLayout.addWidget(self.pushButton_5, 10, 3, 1, 3)
  84. self.pushButton = QtWidgets.QPushButton(self.widget)
  85. self.pushButton.setObjectName("pushButton")
  86. self.gridLayout.addWidget(self.pushButton, 2, 5, 1, 1)
  87. self.retranslateUi(Form)
  88. QtCore.QMetaObject.connectSlotsByName(Form)
  89. def retranslateUi(self, Form):
  90. _translate = QtCore.QCoreApplication.translate
  91. Form.setWindowTitle(_translate("Form", "Form"))
  92. self.pushButton_19.setText(_translate("Form", "退出"))
  93. self.pushButton_17.setText(_translate("Form", "返回"))
  94. self.pushButton_18.setText(_translate("Form", "清除所有"))
  95. self.pushButton_1.setText(_translate("Form", "/"))
  96. self.pushButton_14.setText(_translate("Form", "7"))
  97. self.pushButton_15.setText(_translate("Form", "8"))
  98. self.pushButton_16.setText(_translate("Form", "9"))
  99. self.pushButton_2.setText(_translate("Form", "*"))
  100. self.pushButton_11.setText(_translate("Form", "4"))
  101. self.pushButton_12.setText(_translate("Form", "5"))
  102. self.pushButton_13.setText(_translate("Form", "6"))
  103. self.pushButton_3.setText(_translate("Form", "+"))
  104. self.pushButton_8.setText(_translate("Form", "1"))
  105. self.pushButton_9.setText(_translate("Form", "2"))
  106. self.pushButton_10.setText(_translate("Form", "3"))
  107. self.pushButton_4.setText(_translate("Form", "-"))
  108. self.pushButton_7.setText(_translate("Form", "0"))
  109. self.pushButton_6.setText(_translate("Form", "."))
  110. self.pushButton_5.setText(_translate("Form", "="))
  111. self.pushButton.setText(_translate("Form", "清除缓存"))

然后,新建Run.py文件,代码如下:

  1. import sys
  2. from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
  3. from count.clat import Ui_Form
  4. class mwindow(QWidget, Ui_Form):
  5. def __init__(self):
  6. super(mwindow, self).__init__()
  7. self.setupUi(self)
  8. def ps_bt(self):
  9. self.textBrowser.clear()
  10. def ps_bt1(self):
  11. self.lineEdit.insert('/')
  12. def ps_bt2(self):
  13. self.lineEdit.insert('*')
  14. def ps_bt3(self):
  15. self.lineEdit.insert('+')
  16. def ps_bt4(self):
  17. self.lineEdit.insert('-')
  18. def ps_bt5(self):
  19. self.lineEdit.insert('=')
  20. self.calculate()
  21. def ps_bt6(self):
  22. self.lineEdit.insert('.')
  23. def ps_bt7(self):
  24. self.lineEdit.insert('0')
  25. def ps_bt8(self):
  26. self.lineEdit.insert('1')
  27. def ps_bt9(self):
  28. self.lineEdit.insert('2')
  29. def ps_bt10(self):
  30. self.lineEdit.insert('3')
  31. def ps_bt11(self):
  32. self.lineEdit.insert('4')
  33. def ps_bt12(self):
  34. self.lineEdit.insert('5')
  35. def ps_bt13(self):
  36. self.lineEdit.insert('6')
  37. def ps_bt14(self):
  38. self.lineEdit.insert('7')
  39. def ps_bt15(self):
  40. self.lineEdit.insert('8')
  41. def ps_bt16(self):
  42. self.lineEdit.insert('9')
  43. def ps_bt17(self):
  44. self.lineEdit.backspace()
  45. def ps_bt18(self):
  46. self.lineEdit.clear()
  47. def ps_bt19(self):
  48. self.close()
  49. def lineEdit_clear(self):
  50. self.lineEdit.clear()
  51. def calculate(self):
  52. # text = self.lineEdit.text()
  53. # self.lineEdit.setText('%s= %.2f' % (text, eval(text)))
  54. text = self.lineEdit.text()
  55. self.textBrowser.append('%s= %.2f' % (text, eval(text)))
  56. self.lineEdit_clear()
  57. if __name__ == '__main__':
  58. app = QApplication(sys.argv)
  59. w = mwindow()
  60. w.pushButton.clicked.connect(w.ps_bt)
  61. w.pushButton_1.clicked.connect(w.ps_bt1)
  62. w.pushButton_2.clicked.connect(w.ps_bt2)
  63. w.pushButton_3.clicked.connect(w.ps_bt3)
  64. w.pushButton_4.clicked.connect(w.ps_bt4)
  65. w.pushButton_5.clicked.connect(w.calculate)
  66. w.pushButton_6.clicked.connect(w.ps_bt6)
  67. w.pushButton_7.clicked.connect(w.ps_bt7)
  68. w.pushButton_8.clicked.connect(w.ps_bt8)
  69. w.pushButton_9.clicked.connect(w.ps_bt9)
  70. w.pushButton_10.clicked.connect(w.ps_bt10)
  71. w.pushButton_11.clicked.connect(w.ps_bt11)
  72. w.pushButton_12.clicked.connect(w.ps_bt12)
  73. w.pushButton_13.clicked.connect(w.ps_bt13)
  74. w.pushButton_14.clicked.connect(w.ps_bt14)
  75. w.pushButton_15.clicked.connect(w.ps_bt15)
  76. w.pushButton_16.clicked.connect(w.ps_bt16)
  77. w.pushButton_17.clicked.connect(w.ps_bt17)
  78. w.pushButton_18.clicked.connect(w.ps_bt18)
  79. w.pushButton_19.clicked.connect(w.ps_bt19)
  80. w.show()
  81. sys.exit(app.exec_())

运行Run.py,可在里面进行数值计算:

另外,如果想加入界面背景,并且自适应界面的大小,可以在主文件里面这么写:

  1. def resizeEvent(self, event):
  2. palette = QPalette()
  3. pix = QPixmap('resources/background.jpg')
  4. pix = pix.scaled(self.width(), self.height())
  5. palette.setBrush(QPalette.Background, QBrush(pix))
  6. self.setPalette(palette)

进阶版链接地址:

pyqt5与qtdesigner结合开发_pyqt5qtdesigner,pyqt5qt-Python代码类资源-CSDN下载

我曾经跨过山和大海,也穿过人山人海,我曾经拥有着的一切,转眼都飘散如烟,我曾经失落失望失掉所有方向,直到看见平凡才是唯一的答案。
——韩寒《平凡之路》

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

闽ICP备14008679号