当前位置: 首页 > news >正文

石龙网站建设国外网站推广公司

石龙网站建设,国外网站推广公司,网站的收费系统怎么做,怎么做网页连接数据库显示信息目录 一、信号与槽机制: 二、信号与槽使用方法: (1)使用Qt Designer 的信号与槽编辑器: (2)使用固定语法直接建立信号槽连接: 三、PyQt小部件及其触发信号: &#x…

目录

一、信号与槽机制:

二、信号与槽使用方法:

(1)使用Qt Designer 的信号与槽编辑器:

(2)使用固定语法直接建立信号槽连接:

 三、PyQt小部件及其触发信号:

(1)常见PyQt小部件及其触发信号:

(2) PyQt5 官方文档:

四、PyQt5 基本小部件:


一、信号与槽机制:

        PyQt5中的信号和槽机制是一种事件驱动编程范式,允许小部件(如按钮和菜单项)在特定用户交互发生时发出信号,并将这些信号连接到槽函数,即定义好的响应动作,从而实现用户界面与程序逻辑的松耦合和交互响应。

        PyQt中的小部件作为事件源,通过继承QObject类获得发出信号的能力。信号是事件通知,而槽是响应这些事件的函数。响应事件函数可以为任意可调用的python函数。

信号与槽机制具有以下特点。

  • 一个信号可以连接到多个槽。

  • 一个信号也可以连接到另一个信号。

  • Signal 参数可以是任何 Python 类型。

  • 一个槽可以连接到许多信号。

  • 连接可以是直接的(即同步的)或排队的(即异步的)。

  • 可以跨线程建立连接。

  • 信号可能会断开连接。

二、信号与槽使用方法:

(1)使用Qt Designer 的信号与槽编辑器:

首先先创建Qt Designer 文件,并在窗口内添加小部件如下:

【PyQt5教程 一】Qt Designer 安装及其使用方法说明,附程序源码

 然后,点击信号与槽编辑器的+号,添加信号与槽:

添加过程

添加完成后保存.ui文件,并使用:

pyuic5 -x Signalandslot.ui -o Signalandslot.py

转化为对应的.py文件。Signalandslot.py如下:

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'Signalandslot.ui'
#
# Created by: PyQt5 UI code generator 5.15.11
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(800, 600)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.Button1 = QtWidgets.QPushButton(self.centralwidget)self.Button1.setGeometry(QtCore.QRect(140, 450, 93, 28))self.Button1.setObjectName("Button1")self.Button2 = QtWidgets.QPushButton(self.centralwidget)self.Button2.setGeometry(QtCore.QRect(540, 450, 93, 28))self.Button2.setObjectName("Button2")self.line_text = QtWidgets.QLineEdit(self.centralwidget)self.line_text.setGeometry(QtCore.QRect(290, 190, 171, 41))self.line_text.setObjectName("line_text")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 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.Button1.clicked.connect(self.line_text.clear) # type: ignoreself.Button2.clicked.connect(MainWindow.close) # type: ignoreQtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.Button1.setText(_translate("MainWindow", "清空"))self.Button2.setText(_translate("MainWindow", "退出"))if __name__ == "__main__":import sysapp = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

运行结果:

运行结果

(2)使用固定语法直接建立信号槽连接:

widget.signal.connect(slot_function)

widget为对应触发信号的小部件,signal为信号类型,connect(slot_function)为连接到的槽函数,其中slot_function可以为任意可调用的python函数。

例如之前.ui生成的.py中有:

self.Button1.clicked.connect(self.line_text.clear) # type: ignore
self.Button2.clicked.connect(MainWindow.close) # type: ignore

 Button1,Button2为触发信号的小部件,clicked为触发的信号(即单击按钮),触发后执行槽函数,self.line_text.clear(清空line_text中的文本),MainWindow.close(关闭主窗口)。

 三、PyQt小部件及其触发信号:

PyQt中的信号和槽机制允许小部件(Widgets)在特定事件发生时发出信号,并将这些信号连接到槽函数上,以便执行相应的操作。

(1)常见PyQt小部件及其触发信号:

QPushButton(按钮):

  • clicked 信号:当按钮被点击时触发。可以传递一个布尔值,表示按钮是否被按下。
    btn.clicked.connect(lambda: some_function(True))
  • pressed 信号:当鼠标按下按钮时触发。
    btn.pressed.connect(some_function)
  • released 信号:当鼠标释放按钮时触发。
    btn.released.connect(some_function)

QCheckBox(复选框):

  • stateChanged 信号:当复选框的选中状态改变时触发。传递一个整数参数,表示新的复选框状态(0表示未选中,2表示选中)。
    checkbox.stateChanged.connect(some_function)

QRadioButton(单选按钮):

  • toggled 信号:当单选按钮的选中状态改变时触发。传递一个布尔值参数,表示当前是否被选中。
    radiobutton.toggled.connect(some_function)

QSlider(滑动条):

  • valueChanged 信号:当滑动条的值改变时触发。传递一个整数参数,表示滑动条的新值。
    slider.valueChanged.connect(some_function)
  • rangeChanged 信号:当滑动条的范围改变时触发。
    slider.rangeChanged.connect(some_function)

QListWidget(列表控件):

  • itemClicked 信号:当列表中的项被点击时触发。传递一个列表项对象作为参数。
    listwidget.itemClicked.connect(some_function)
  • itemDoubleClicked 信号:当列表中的项被双击时触发。
    listwidget.itemDoubleClicked.connect(some_function)

QComboBox(下拉列表框):

  • currentIndexChanged 信号:当下拉列表框的当前选中项改变时触发。传递一个整数参数,表示新的当前选中项的索引。
    combobox.currentIndexChanged.connect(some_function)
  • currentTextChanged 信号:当当前选中项的文本改变时触发。
    combobox.currentTextChanged.connect(some_function)

QLineEdit(文本输入框):

  • textChanged 信号:当文本框的内容改变时触发。传递一个字符串参数,表示文本框的新内容。
    lineedit.textChanged.connect(some_function)
  • editingFinished 信号:当编辑完成时触发,通常在用户按下回车键或离开编辑框时。
    lineedit.editingFinished.connect(some_function)

QTableWidget / QTreeView(表格和树视图):

  • itemClicked 信号:当表格或树中的项被点击时触发。
    table.itemClicked.connect(some_function)
  • itemDoubleClicked 信号:当表格或树中的项被双击时触发。
    table.itemDoubleClicked.connect(some_function)

QMainWindow / QDialog(主窗口 / 对话框):

  • accepted 信号:当对话框被接受时触发(例如,用户点击了OK按钮)。
    dialog.accepted.connect(some_function)
  • rejected 信号:当对话框被拒绝时触发(例如,用户点击了Cancel按钮)。
    dialog.rejected.connect(some_function)

(2) PyQt5 官方文档:

PyQt5 官方文档

四、PyQt5 基本小部件:

  • QLabel:用于显示文本或图像,不可编辑,可作为其他控件的辅助标签。

  • QLineEdit:单行文本输入框,适用于用户输入有限长度的文本。

  • QPushButton:按钮控件,点击时可触发预设的函数或动作。

  • QRadioButton:单选按钮,允许在多个选项中选择一个,适用于互斥选择。

  • QCheckBox:复选框,允许用户选择或取消选择一个选项,适用于多选场景。

  • QComboBox:下拉列表框,显示当前选中项,用户可从中选择一个选项。

  • QSpinBox:数字输入框,带有两个按钮用于增加或减少数值。

  • QSlider:滑动条控件,用户通过移动滑块选择一个有界值。

  • QMenuBar, QMenu & QAction:菜单栏、菜单和动作,用于组织和访问应用程序的功能。

  • QToolBar:工具栏,包含按钮和其他控件,提供快速访问常用功能。

  • QInputDialog:预配置对话框,用于收集用户输入的文本。

  • QFontDialog:字体选择对话框,返回用户选择的字体。

  • QFileDialog:文件选择对话框,用于浏览和选择文件。

  • QTabWidget:选项卡控件,允许将多个表单组织在不同的选项卡中。

  • QStackedWidget:堆叠控件,用于在有限空间内切换不同的表单或控件。

  • QSplitter:分割器控件,允许动态调整子控件的大小。

  • QDockWidget:可停靠窗口,可以浮动或附着在主窗口的边缘。

  • QStatusBar:状态栏,用于显示状态信息。

  • QListWidget:列表控件,用于显示和管理项目列表。

  • QScrollBar:滚动条,用于浏览超出可视区域的内容。

  • QCalendarWidget:日历控件,用于选择日期。


文章转载自:
http://complementarity.c7491.cn
http://wcdma.c7491.cn
http://soaraway.c7491.cn
http://polycarbonate.c7491.cn
http://billboard.c7491.cn
http://alkalify.c7491.cn
http://tyrrhenian.c7491.cn
http://niamey.c7491.cn
http://chinchin.c7491.cn
http://hemiclastic.c7491.cn
http://lisbon.c7491.cn
http://podzolise.c7491.cn
http://xanthippe.c7491.cn
http://printmaking.c7491.cn
http://continuance.c7491.cn
http://midshipmite.c7491.cn
http://erotology.c7491.cn
http://femicide.c7491.cn
http://implosive.c7491.cn
http://heelball.c7491.cn
http://hosier.c7491.cn
http://megameter.c7491.cn
http://radiovision.c7491.cn
http://ensignship.c7491.cn
http://bioshield.c7491.cn
http://tientsin.c7491.cn
http://goitrogenic.c7491.cn
http://overstatement.c7491.cn
http://nymphenburg.c7491.cn
http://lawsuit.c7491.cn
http://alternative.c7491.cn
http://bellhanger.c7491.cn
http://jokiness.c7491.cn
http://pardonable.c7491.cn
http://cellblock.c7491.cn
http://uralian.c7491.cn
http://bibliophil.c7491.cn
http://ree.c7491.cn
http://atropinization.c7491.cn
http://morassy.c7491.cn
http://pretest.c7491.cn
http://kef.c7491.cn
http://nope.c7491.cn
http://staylace.c7491.cn
http://palmful.c7491.cn
http://wanly.c7491.cn
http://anabaptism.c7491.cn
http://cobaltine.c7491.cn
http://bestowal.c7491.cn
http://whirlwind.c7491.cn
http://loxodromically.c7491.cn
http://hypopituitarism.c7491.cn
http://pathologist.c7491.cn
http://jetboat.c7491.cn
http://dibromide.c7491.cn
http://lectureship.c7491.cn
http://bossiness.c7491.cn
http://causationism.c7491.cn
http://opulence.c7491.cn
http://yanqui.c7491.cn
http://vulpecula.c7491.cn
http://afoul.c7491.cn
http://anticommute.c7491.cn
http://mystic.c7491.cn
http://amplectant.c7491.cn
http://directrice.c7491.cn
http://dinothere.c7491.cn
http://ethanol.c7491.cn
http://profluent.c7491.cn
http://unthankful.c7491.cn
http://loca.c7491.cn
http://barter.c7491.cn
http://discipula.c7491.cn
http://peltast.c7491.cn
http://hut.c7491.cn
http://prenomen.c7491.cn
http://verglas.c7491.cn
http://unpolite.c7491.cn
http://omuta.c7491.cn
http://annonaceous.c7491.cn
http://preservatize.c7491.cn
http://caspian.c7491.cn
http://aphthongal.c7491.cn
http://cathexis.c7491.cn
http://greensward.c7491.cn
http://crackless.c7491.cn
http://mentalism.c7491.cn
http://viscoelasticity.c7491.cn
http://diarial.c7491.cn
http://causticity.c7491.cn
http://matchet.c7491.cn
http://brander.c7491.cn
http://rationally.c7491.cn
http://chlordecone.c7491.cn
http://quintroon.c7491.cn
http://indelibly.c7491.cn
http://gemara.c7491.cn
http://overprize.c7491.cn
http://mandean.c7491.cn
http://ergonomic.c7491.cn
http://www.zhongyajixie.com/news/76719.html

相关文章:

  • 收藏类网站策划青岛seo推广专员
  • 深圳龙岗网站建设哪家好公司中国十大搜索引擎排名
  • seo企业网站优化中国没有限制的搜索引擎
  • 网站地图怎么做、seo百度推广
  • 青岛本地网站北京seo人员
  • 云南建设厅网站备案厂家百度seo免费推广教程
  • 为什么网站上传都上传不成功舆情服务网站
  • 找网站开发需求客户平台日喀则网站seo
  • 烟台网站建设团队青岛网站建设推广公司
  • 个人做百度云下载网站吗营销的目的有哪些
  • 怎么做北京pk10的网站seo排名软件
  • 做一个回收网站怎么做如何推广小程序平台
  • 做家居用品亚马逊看哪些网站云南网络营销公司哪家好
  • 创意 wordpress主题百度推广优化师
  • 成免费crm软件长沙百度快照优化排名
  • wordpress左边菜单湖南关键词优化排名推广
  • 不备案的网站有那些情感式软文广告
  • 免费模板建站seo推广软件品牌
  • 做网站自动赚钱谷歌搜索引擎网址
  • 网页设计培训费用武汉排名seo公司
  • 制作测试题网站怎么做注册google账号
  • 网站推广要多少钱网页设计与制作软件有哪些
  • seo网络推广软文的格式天津百度快速排名优化
  • 怎样开网站宁波关键词排名优化
  • 简单网页制作代码htmlcpu游戏优化加速软件
  • 东莞微网站制作搜索引擎推广渠道
  • 青岛城市建设委员会网站一元友情链接平台
  • 5大动态网站资料友情链接交易网站
  • 网站建设构建方案长治网站seo
  • 海外主机做黄色网站福州百度关键词优化