我正在使用PyQT 4.8.3创建一个包含两个QListWidgets的对话框,它们都允许多个选择.
我发现如果启用了这些QListWidgets,只有当QListWidget具有焦点时,所选项目才会以蓝色突出显示,而没有焦点,高亮显示为浅灰色.
我还发现如果禁用QListWidgets,尽管没有焦点,所选项目仍以蓝色突出显示.

当用户从一个列表转到另一个列表时,他们会发现这非常令人困惑.
作为开发人员,我发现浅灰色/未聚焦,蓝色/禁用行为是不可取的.我将不胜感激任何有关修改它们的建议.
我已经查看了QListWidget,QListView和QAbstractView的文档而没有找到任何适用的东西,我也查看了样式表文档而没有任何运气.
我正在建立一个django管理网站,并正在使用javascript和jquery(2.0.3)向表单添加一些额外的功能。
我将脚本导入到我的页面中,如下所示:
<html>
<head>
<script type="text/javascript" src="/static/admin/js/jquery.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
<script type="text/javascript" src="/static/project/js/project.js"></script>
</head>
<!-- ... -->
</html>
Run Code Online (Sandbox Code Playgroud)
首先,我将以下代码放置在的末尾project.js:
function tryCustomiseForm() {
// ...
}
$(document).ready(tryCustomiseForm);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这导致Uncaught TypeError: undefined is not a function最后一行出现异常。
然后,我尝试了其他ready()运气不好的替代语法。
最后,我浏览了change_form.html模板并找到了以下内联javascript:
<script type="text/javascript">
(function($) {
$(document).ready(function() {
$('form#{{ opts.model_name }}_form :input:visible:enabled:first').focus()
});
})(django.jQuery);
</script>
Run Code Online (Sandbox Code Playgroud)
我能够对其进行修改以满足自己的需求,现在我的project.js目标是:
(function($) {
$(document).ready(function() {
tryCustomiseForm();
});
})(django.jQuery);
Run Code Online (Sandbox Code Playgroud)
尽管这样会导致正确的行为,但我并不理解。
这引出我的问题:为什么我的第一种方法失败了?第二种方法在做什么?