iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件
  • 720
分享到

怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件

2023-06-14 06:06:18 720人浏览 泡泡鱼
摘要

怎么在pyQt5中利用ComboBox实现一个鼠标点击触发事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、自定义MyComboBox# MyComboBox

怎么在pyQt5中利用ComboBox实现一个鼠标点击触发事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、自定义MyComboBox

# MyComboBox.pyfrom PyQt5.QtWidgets import QComboBoxfrom PyQt5.QtCore import pyqtSignal       class MyComboBox(QComboBox):  clicked = pyqtSignal()     #创建一个信号  def showPopup(self):      #重写showPopup函数    self.clicked.emit()     #发送信号    super(MyComboBox, self).showPopup()   # 调用父类的showPopup()

二、使用MyComboBox创建窗口空间

# test_ui.py    self.PrintersList = MyComboBox(self.groupBox) # 修改后    # self.PrintersList = QtWidgets.QComboBox(self.groupBox) # 修改前

三、main函数中对clicked 信号进行绑定

# main_loop.py  self.PrintersList.clicked.connect(self.scan_printer_list_slot)    # 信号与槽函数的绑定 # 槽函数的实现  def scan_printer_list_slot(self):   print("扫描打印机并刷新列表")

补充:PyQt5中QComboBox实现多选功能

网上大佬太多了,写的啥没看懂,自己摸索着也写了个出来,也勉强能用。

功能:

QComboBox实现多选功能

返回选中的文本列表

一键全选和取消全选功能

from PyQt5 import QtCore, QtGui, QtWidgetsimport sys class CheckableComboBox(QtWidgets.QComboBox):  def __init__(self, parent=None):    super(CheckableComboBox, self).__init__(parent)    self.setModel(QtGui.QStandardItemModel(self))    self.view().pressed.connect(self.handleItemPressed)    self.checkedItems = []    self.view().pressed.connect(self.get_all)    self.view().pressed.connect(self.getCheckItem)    self.status = 0   def handleItemPressed(self, index):              #这个函数是每次选择项目时判断状态时自动调用的,不用管(自动调用)    item = self.model().itemFromIndex(index)    if item.checkState() == QtCore.Qt.Checked:      item.setCheckState(QtCore.Qt.Unchecked)    else:      item.setCheckState(QtCore.Qt.Checked)   def getCheckItem(self):    # getCheckItem方法可以获得选择的项目列表,自动调用。    for index in range(1,self.count()):      item = self.model().item(index)      if item.checkState() == QtCore.Qt.Checked:        if item.text() not in self.checkedItems:          self.checkedItems.append(item.text())      else:        if item.text() in self.checkedItems:          self.checkedItems.remove(item.text())    print("self.checkedItems为:",self.checkedItems)    return self.checkedItems          #实例化的时候直接调用这个self.checkedItems就能获取到选中的值,不需要调用这个方法,方法会在选择选项的时候自动被调用。   def get_all(self):              #实现全选功能的函数(自动调用)    all_item = self.model().item(0)     for index in range(1,self.count()):    #判断是否是全选的状态,如果不是,全选按钮应该处于未选中的状态      if self.status ==1:        if self.model().item(index).checkState() == QtCore.Qt.Unchecked:          all_item.setCheckState(QtCore.Qt.Unchecked)          self.status = 0          break     if all_item.checkState() == QtCore.Qt.Checked:      if self.status == 0 :        for index in range(self.count()):          self.model().item(index).setCheckState(QtCore.Qt.Checked)          self.status = 1     elif all_item.checkState() == QtCore.Qt.Unchecked:      for index in range(self.count()):        if self.status == 1 :          self.model().item(index).setCheckState(QtCore.Qt.Unchecked)      self.status = 0 if __name__ == "__main__":  app = QtWidgets.QApplication(sys.argv)  dialog = QtWidgets.QMainWindow()  mainWidget = QtWidgets.QWidget()  dialog.setCentralWidget(mainWidget)  ComboBox = CheckableComboBox(mainWidget)  ComboBox.addItem("全选")  for i in range(6):    ComboBox.addItem("Combobox Item " + str(i))  dialog.show()  sys.exit(app.exec_())

总结(用法):

直接实例化一个Qcombox

使用ComboBox.addItem方法添加项目

调用ComboBox.checkedItems的属性就能获取到选中的文本列表

内置函数基本都是自动的,统统不用管

调用checkedItems属性的时候最后写在ComboBox的槽函数里,这样才能获取到更改后的属性,不然可能得到的会是空值。

补充:

定义一个槽函数self.get_checkedItems_slot用于获取更改后的checkedItems属性,下面三种ComboBox的信号槽选一种来用就行,推荐第一种。

ComboBox.activated.connect(self.get_checkedItems_slot) #推荐ComboBox.highlighted.connect(self.get_checkedItems_slot)ComboBox.currentIndexChanged.connect(self.get_checkedItems_slot)

关于怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件

本文链接: https://www.lsjlt.com/news/268384.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件
    怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、自定义MyComboBox# MyComboBox...
    99+
    2023-06-14
  • 使用pyqt5 实现ComboBox的鼠标点击触发事件
    一、自定义MyComboBox # MyComboBox.py from PyQt5.QtWidgets import QComboBox from PyQt5.QtCore i...
    99+
    2024-04-02
  • javascript中怎么触发模拟鼠标点击事件
    本篇文章为大家展示了javascript中怎么触发模拟鼠标点击事件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。事件触发器就是用来触发某个元素下的某个事件,IE下f...
    99+
    2024-04-02
  • jQuery鼠标点击事件怎么实现
    可以使用 jQuery 的 click() 方法来实现鼠标点击事件。例如,假设有一个按钮的 HTML 代码如下:``````那么可以...
    99+
    2023-05-29
    jQuery鼠标点击事件 jQuery
  • 怎么在CSS中禁止鼠标点击事件
    这期内容当中小编将会给大家带来有关怎么在CSS中禁止鼠标点击事件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript有一个preventDefault方法, 他可用以来取消事件的默认动作。比...
    99+
    2023-06-08
  • C#中怎么利用listbox实现一个双击事件
    这篇文章将为大家详细讲解有关C#中怎么利用listbox实现一个双击事件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。private void Page_Load(obj...
    99+
    2023-06-17
  • javascript鼠标点击时触发此事件使用什么函数,详细讲解
    这篇文章将为大家详细讲解有关javascript鼠标点击时触发此事件使用什么函数,详细讲解,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript鼠标点击时触发事件函数详解 简介 当用户点击HT...
    99+
    2024-04-02
  • 怎么在Python中利用tkinter库实现投放鼠标模拟点击器
    本篇文章为大家展示了怎么在Python中利用tkinter库实现投放鼠标模拟点击器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等...
    99+
    2023-06-14
  • 在Android项目中使用view实现一个点击事件
    这篇文章将为大家详细讲解有关在Android项目中使用view实现一个点击事件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android 自定义view模板并实现点击事件的回调先看效果图:...
    99+
    2023-05-31
    android view roi
  • Android中的点击事件怎么利用Kotlin实现
    本篇文章为大家展示了Android中的点击事件怎么利用Kotlin实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在android中,点击事件大致分为三种写法: 匿名内部类。 Activity实现...
    99+
    2023-05-31
    android kotlin roi
  • vue.js2.0中怎么实现父组件点击触发子组件
    今天就跟大家聊聊有关vue.js2.0中怎么实现父组件点击触发子组件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<body> ...
    99+
    2024-04-02
  • Android 项目怎么使用RecyclerView实现一个点击事件
    这篇文章给大家介绍Android 项目怎么使用RecyclerView实现一个点击事件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、概述随着Android L版本的发布,RecyclerView已经逐渐地取代了Li...
    99+
    2023-05-31
    android recyclerview 点击事件
  • js怎么实现为每一个li添加一个点击事件
    本篇内容主要讲解“js怎么实现为每一个li添加一个点击事件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js怎么实现为每一个li添加一个点击事件”吧!<u...
    99+
    2024-04-02
  • 怎么在html5中利用canvas实现一个背景鼠标连线动态效果
    本篇文章为大家展示了怎么在html5中利用canvas实现一个背景鼠标连线动态效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<!doctype html><html&...
    99+
    2023-06-09
  • C#中怎么利用 Button实现双击事件
    C#中怎么利用 Button实现双击事件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C# Button是有DoubleClick事件的,只是它没有出现在事件列表中,而且....
    99+
    2023-06-17
  • javascript在一个拖动过程中,释放鼠标键时触发此事件使用什么函数,详细讲解
    这篇文章将为大家详细讲解有关javascript在一个拖动过程中,释放鼠标键时触发此事件使用什么函数,详细讲解,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript中释放鼠标键时触发拖动事件的...
    99+
    2024-04-02
  • 怎么在Android应用中利用 scrollToTop实现一个点击回到顶部功能
    本篇文章给大家分享的是有关怎么在Android应用中利用 scrollToTop实现一个点击回到顶部功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现方法布局代码:<...
    99+
    2023-05-31
    android scrolltotop roi
  • 利用Servlet怎么实现一个点击计数器功能
    这期内容当中小编将会给大家带来有关利用Servlet怎么实现一个点击计数器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、Web页面的点击计数器以下是基于Servlet生命周期实现一个简单的页面点击...
    99+
    2023-05-31
    servlet
  • 怎么在Android应用中利用ListView实现一个监听滑动事件
    怎么在Android应用中利用ListView实现一个监听滑动事件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ListView的主要有两种滑动事件监听方法,OnTouchLi...
    99+
    2023-05-31
    listview android roi
  • 怎么在Java中利用JavaMail实现一个邮件发送功能
    这期内容当中小编将会给大家带来有关怎么在Java中利用JavaMail实现一个邮件发送功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 电子邮件协议电子邮件的在网络中传输和网页一样需要遵从特定的协议...
    99+
    2023-05-31
    java javamail ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作