- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
用例:我有一个QListWidget
。当用户选择任何行时,我想将当前项目和选择重置为第 3 行:
from PyQt5.QtWidgets import QApplication, QListWidget
app = QApplication([])
l = QListWidget()
l.setSelectionMode(QListWidget.SingleSelection)
l.addItems(list('abcde'))
def slot(current, previous):
# sm = l.selectionModel()
l.blockSignals(True)
l.setCurrentRow(3)
l.blockSignals(False)
# sm.select(l.currentIndex(), sm.Select) # Does not work
# sm.setCurrentIndex(l.currentIndex(), sm.Select) # Does not work
l.currentItemChanged.connect(slot)
l.show()
app.exec()
上面的示例将第三行设置为当前行,但将所选行保留为用户单击的行。我已经尝试过 QItemModel.select() 和 QItemModel.setCurrentIndex() 以及类似内容的各种组合,但没有任何效果。我在 Google 或 Qt 论坛上也没有找到答案。
最佳答案
在这种情况下使用 blockSignals 是一把双刃剑,因为我认为你正在使用它来避免无限循环。但这也不会导致模型已更新,此外这是不必要的,因为 setCurrentRow()
仅在与之前的值不同时才更新,从而避免了该问题。
解决方案是使用QTimer.singleShot()
来更新更改:
import sys
from functools import partial
from PyQt5.QtWidgets import QApplication, QListWidget
from PyQt5.QtCore import QTimer
app = QApplication(sys.argv)
l = QListWidget()
l.setSelectionMode(QListWidget.SingleSelection)
l.addItems(list('abcde'))
row = 3
def onCurrentRowChanged():
QTimer.singleShot(0, partial(l.setCurrentRow, row))
l.currentRowChanged.connect(onCurrentRowChanged)
l.show()
sys.exit(app.exec_())
注意:如果 currentRowChanged
信号更改为 currentItemChanged
,逻辑不会改变。
关于python - (Pyqt5 : How to update selection when current item has been set programatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51897455/
我的网站上有一个菜单,它使用 :before 标记设置按钮的图标。这对于可以在 CSS 中设置的静态元素效果很好。一些按钮将从网站上的特定用户设置加载。有没有办法在 CSS 中设置这些,如下所示: .
如何在 Delphi 中动态构造泛型类型? 让我解释一下 如果我有一个接口(interface)IMyInterface , 我想动态分配通用 T参数并以某种方式获取对该类型的引用。 function
我正在尝试将新节点添加到 jQuery SimpleTree ,但我似乎能得到的是“sTC.addNode 不是一个函数”... var simpleTreeCollection = $('.simp
根据选项卡的数量和屏幕方向,选项卡会彼此相邻显示或显示在下拉列表中。我写了一个函数来设置当前选项卡。这有效但不适用于下拉列表模式。必须做什么? static class TabsListener im
我知道这可以用这种方式在 xml 中完成 android:background="@android:drawable/editbox_dropdown_dark_frame" 上面这行是我的想法所以它
我正在开发一个需要一些系统权限的应用程序,但是在 Android Marshmallow 上安装时不再自动授予这些权限。 我想在运行时请求这些权限并运行某种自动化来授予它们,而无需用户在系统权限对话框
案例是将北极指示器复制到一个按钮中并执行旋转。我知道这可以通过完全旋转 map View 来完成。是否有任何其他巧妙的方法可以使注释保持垂直于 ipad 方向,即使在之后旋转 编辑 正如@AlexWa
我正在用 C 语言编写一个命令行计算器,如果它能够在您每次关闭(例如)突出显示前一个括号的括号时移动光标,就像在 emacs 等中一样,这将非常有用。 例如,如果您启动 emacs,然后键入: (bl
我有一个表单,上面写着 Form_ID=9。我想编辑特定提交的 Field_id:50(标签:状态),比如 Sub_id:160。 我可以在自定义模板页面(前端)上使用自定义代码访问该信息,但找不到更
我的用例: 控件上的自定义属性,应该可以通过 css 配置 该属性必须在运行时可以更改 对于给定的控件实例,程序更改不得在重新应用 css 时恢复 自定义StyleableProperty看起来非常适
我混合使用 AnnotationConfigApplicationContext和 ClasspathXmlApplicationContext目前,制作AnnotationConfigApplica
我正在尝试为 actionbarsherlock 的项目设置一个 id,但我得到这个“无法在原始类型 void 上调用 setId(int)” menu.add("new")
我有一个来 self 的 rest API 的图片 url。现在我想在加载 Activity 时将其设置为 ImageView 。下面是我如何从 rest api 获取 bean,然后从中获取 URL
这个问题在这里已经有了答案: Simulate low network connectivity for Android [closed] (27 个答案) 关闭 6 年前。 我目前正在进行测试,我
我正在开发一个图像编辑应用程序,当调用相机时,我可以手动将图片尺寸更改为 16:9,是否可以通过编程将图片尺寸设置为 16:9 来打开相机。 下面的代码调用了相机 Intent intent = ne
给定一个向量,比如 v = 1:10 , 可以从 v 中删除元素使用负索引,例如v[-1] , v[-length(v)] , v[-c(2,3)] , 分别删除第一个、最后一个和第二/第三个元素。
我在 Spring Boot 中有一个实体,它看起来像这样: @Entity @Table(name = "race_class") @Getter @Setter public class Race
我一直致力于创建自定义 ui 控件,并想知道如何以编程方式将单选按钮添加到 UIView。 我只找到了一种解决方案,但它适用于 mac osx 应用程序控制。 所需结果的图像如下所示。 限制 不想使用
任何人都可以解释如何以编程方式向相对布局添加底部边框吗? PS:我使用下面的代码向相对布局添加边框: RelativeLayout layout = (RelativeLayout) view.fin
我创建了一个 eclipse 插件,它可以通过 java 类以编程方式查询 View 名称,如下所示: IViewDescriptor descr = window.getWorkbench().ge
我是一名优秀的程序员,十分优秀!