资讯专栏INFORMATION COLUMN

PyQt5+eric6之旅(四) - 信号与槽的绑定

Eidesen / 2798人阅读

摘要:如果编辑了按钮那么接下来就是通过按钮触发某个动作首先右击窗体生成对话框代码绑定按钮接着在代码栏就会看到生成的文件在中创建绑定再次编译打开文件发现已经绑定服务日志运行中播放暂停退出实时日志服务器开始服务密码退出状态信息类

如果编辑了按钮, 那么接下来就是通过按钮触发某个动作

首先右击窗体,生成对话框代码

绑定按钮

接着在代码栏就会看到生成的py文件

在qt designer中创建slot 绑定

再次编译 打开py文件发现已经绑定

code ui_0726.py

</>复制代码

  1. # -*- coding: utf-8 -*-
  2. # Form implementation generated from reading ui file "D:pythonPyQt5726726.ui"
  3. #
  4. # Created by: PyQt5 UI code generator 5.10.1
  5. #
  6. # WARNING! All changes made in this file will be lost!
  7. from PyQt5 import QtCore, QtGui, QtWidgets
  8. class Ui_MainWindow(object):
  9. def setupUi(self, MainWindow):
  10. MainWindow.setObjectName("MainWindow")
  11. MainWindow.resize(531, 648)
  12. icon = QtGui.QIcon()
  13. icon.addPixmap(QtGui.QPixmap("C:/Users/aabgiilln/Desktop/服务日志.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  14. MainWindow.setWindowIcon(icon)
  15. self.centralWidget = QtWidgets.QWidget(MainWindow)
  16. self.centralWidget.setObjectName("centralWidget")
  17. self.gridLayout = QtWidgets.QGridLayout(self.centralWidget)
  18. self.gridLayout.setObjectName("gridLayout")
  19. self.label = QtWidgets.QLabel(self.centralWidget)
  20. self.label.setObjectName("label")
  21. self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
  22. self.lineEdit = QtWidgets.QLineEdit(self.centralWidget)
  23. self.lineEdit.setObjectName("lineEdit")
  24. self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
  25. self.pushButton_2 = QtWidgets.QPushButton(self.centralWidget)
  26. self.pushButton_2.setObjectName("pushButton_2")
  27. self.gridLayout.addWidget(self.pushButton_2, 0, 2, 1, 1)
  28. self.label_2 = QtWidgets.QLabel(self.centralWidget)
  29. self.label_2.setObjectName("label_2")
  30. self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
  31. self.lineEdit_2 = QtWidgets.QLineEdit(self.centralWidget)
  32. self.lineEdit_2.setObjectName("lineEdit_2")
  33. self.gridLayout.addWidget(self.lineEdit_2, 1, 1, 1, 1)
  34. self.pushButton = QtWidgets.QPushButton(self.centralWidget)
  35. self.pushButton.setObjectName("pushButton")
  36. self.gridLayout.addWidget(self.pushButton, 1, 2, 1, 1)
  37. self.textEdit = QtWidgets.QTextEdit(self.centralWidget)
  38. self.textEdit.setObjectName("textEdit")
  39. self.gridLayout.addWidget(self.textEdit, 3, 0, 1, 3)
  40. self.lineEdit_3 = QtWidgets.QLineEdit(self.centralWidget)
  41. self.lineEdit_3.setObjectName("lineEdit_3")
  42. self.gridLayout.addWidget(self.lineEdit_3, 2, 1, 1, 2)
  43. self.label_3 = QtWidgets.QLabel(self.centralWidget)
  44. self.label_3.setObjectName("label_3")
  45. self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
  46. MainWindow.setCentralWidget(self.centralWidget)
  47. self.toolBar = QtWidgets.QToolBar(MainWindow)
  48. self.toolBar.setObjectName("toolBar")
  49. MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
  50. self.actionRun = QtWidgets.QAction(MainWindow)
  51. icon1 = QtGui.QIcon()
  52. icon1.addPixmap(QtGui.QPixmap("C:/Users/aabgiilln/Desktop/运行中.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  53. self.actionRun.setIcon(icon1)
  54. self.actionRun.setObjectName("actionRun")
  55. self.actionPause = QtWidgets.QAction(MainWindow)
  56. icon2 = QtGui.QIcon()
  57. icon2.addPixmap(QtGui.QPixmap("C:/Users/aabgiilln/Desktop/播放-暂停.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  58. self.actionPause.setIcon(icon2)
  59. self.actionPause.setObjectName("actionPause")
  60. self.actionQuit = QtWidgets.QAction(MainWindow)
  61. icon3 = QtGui.QIcon()
  62. icon3.addPixmap(QtGui.QPixmap("C:/Users/aabgiilln/Desktop/退出 (1).png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  63. self.actionQuit.setIcon(icon3)
  64. self.actionQuit.setObjectName("actionQuit")
  65. self.toolBar.addAction(self.actionRun)
  66. self.toolBar.addAction(self.actionPause)
  67. self.toolBar.addAction(self.actionQuit)
  68. self.retranslateUi(MainWindow)
  69. self.pushButton.clicked.connect(MainWindow.close)
  70. self.pushButton_2.clicked.connect(MainWindow.on_pushButton_clicked)
  71. QtCore.QMetaObject.connectSlotsByName(MainWindow)
  72. def retranslateUi(self, MainWindow):
  73. _translate = QtCore.QCoreApplication.translate
  74. MainWindow.setWindowTitle(_translate("MainWindow", "实时日志"))
  75. self.label.setText(_translate("MainWindow", "服务器IP"))
  76. self.pushButton_2.setText(_translate("MainWindow", "开始"))
  77. self.label_2.setText(_translate("MainWindow", "服务密码"))
  78. self.pushButton.setText(_translate("MainWindow", "退出"))
  79. self.label_3.setText(_translate("MainWindow", "状态信息"))
  80. self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
  81. self.actionRun.setText(_translate("MainWindow", "Run"))
  82. self.actionPause.setText(_translate("MainWindow", "Pause"))
  83. self.actionQuit.setText(_translate("MainWindow", "Quit"))
  84. if __name__ == "__main__":
  85. import sys
  86. app = QtWidgets.QApplication(sys.argv)
  87. MainWindow = QtWidgets.QMainWindow()
  88. ui = Ui_MainWindow()
  89. ui.setupUi(MainWindow)
  90. MainWindow.show()
  91. sys.exit(app.exec_())

code start.py

</>复制代码

  1. # -*- coding: utf-8 -*-
  2. """
  3. Module implementing Start.
  4. """
  5. from PyQt5.QtCore import pyqtSlot
  6. from PyQt5.QtWidgets import QMainWindow
  7. from Ui_0726 import Ui_MainWindow
  8. class Start(QMainWindow, Ui_MainWindow):
  9. """
  10. Class documentation goes here.
  11. """
  12. def __init__(self, parent=None):
  13. """
  14. Constructor
  15. @param parent reference to the parent widget
  16. @type QWidget
  17. """
  18. super(Start, self).__init__(parent)
  19. self.setupUi(self)
  20. @pyqtSlot()
  21. def on_pushButton_clicked(self):
  22. """
  23. Slot documentation goes here.
  24. """
  25. # TODO: not implemented yet
  26. self.lineEdit_3.setText("start")
  27. if __name__ == "__main__":
  28. import sys
  29. from PyQt5.QtWidgets import QApplication
  30. app = QApplication(sys.argv)
  31. window = Start() ## 类名,注意要和自己定义的类名一致。
  32. window.show()
  33. sys.exit(app.exec_())

result

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42086.html

相关文章

  • PyQt5+eric6之旅(三) - 多线程应用 - 追加显示

    摘要:实时追加显示定义一个发送的信号通过类成员对象定义信号处理业务逻辑下面将输出重定向到中实时显示开始创建线程连接信号开始线程将当前时间输出到文本框目前遇到的问题是使用上遇到很多坑像是菜单工具栏各个按钮之间怎么去绑定特定的槽各种报错然后现在想 实时追加显示 code from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore ...

    马龙驹 评论0 收藏0
  • PyQt5+eric6之旅(二) - qt designer基本操作

    摘要:实时在文本框显示内容引入这个函数绑定定时器自动执行在类中定义一个定时器并在构造函数中设置启动及其信号和槽设置计时间隔并启动计时结束调用方法注意不要加引入这个参考 qt designer使用 开始 新建项目(eric6 项目) 新建窗体(eric6 窗体) 编辑界面(转到qt designer) 保存 编译窗体(转到eric6 窗体) 运行(查看页面效果) 页面缩放效果(qt d...

    2bdenny 评论0 收藏0
  • PyQt5+eric6之旅(一) - 简介与安装配置过程

    摘要:最近想做一个实用的图形界面用于查看实时日志本来是准备用开发原本以为功能简单应该很好上手然而在尝试了几次之后彻底放弃了这个想法首先太老了看上去像是上个世纪的应用界面丑陋这是其一如果只是这样还可以接受然而实际编写过程中发现也不是那么友好优质文档 最近想做一个实用的图形界面用于查看实时日志,本来是准备用tkinter开发,原本以为功能简单应该很好上手,然而,在尝试了几次之后,彻底放弃了这个想...

    王伟廷 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<