我正在为QLineEdit设计样式以使用圆形边框作为搜索框.边界本身的舍入很容易,但我无法弄清楚如何在焦点有焦点的情况下围绕窗口小部件的突出显示部分.我尝试过QLineEdit :: focus,但这只会修改内部边框.下面的图像显示了圆形qlineedit的幻觉在获得焦点时如何丢失.
QListView, QLineEdit {
color: rgb(127, 0, 63);
selection-color: white;
border: 2px groove gray;
border-radius: 10px;
padding: 2px 4px;
}
QLineEdit:focus {
color: rgb(127, 0, 63);
selection-color: white;
border: 2px groove gray;
border-radius: 10px;
padding: 2px 4px;
}
QLineEdit:edit-focus {
color: rgb(127, 0, 63);
selection-color: white;
border: 2px groove gray;
border-radius: 10px;
padding: 2px 4px;
}
Run Code Online (Sandbox Code Playgroud)
有和没有焦点的图像: 没有http://img688.imageshack.us/img688/1986/screenshot20100406at310.png 与http://img251.imageshack.us/img251/1986/screenshot20100406at310.png
我想创建一个搜索字段来过滤QListView中显示的项目.基本上用户可以输入"foo",只显示DisplayRole中带有"foo"的项目.
我已经有一些关于如何做到这一点的想法,但我想我会问那些比我更有经验的人.
我的想法是使用一些信号和插槽在QAbstractItem模型中设置过滤器并在QListView中触发update().
QListView中是否有任何帮助方法可用于过滤我可能错过了?
有没有一种规范的处理方法,我还没有遇到过?
编辑
目前的进展.
我在我的QFileSystemModel子类中创建了一个名为"updateFilter(QString)"的公共插槽.然后我
connect(myQLineEditSearch, SIGNAL(textChanged(QString)),
myQFileSysModel, SLOT(updateFilter(QString)));
Run Code Online (Sandbox Code Playgroud)
这设置了过滤器,然后在我的QFileSystemModel :: data(...)方法中,我有:
void ComponentModel::updateFilter(QString filter)
{
_filter = filter;
emit layoutChanged();
}
QVariant ComponentModel::data(const QModelIndex &index, int role) const
{
QVariant result;
// if our search filter term is set and the item does not match,
// do not display item data. Searches are case insensitive
if (!_filter.isEmpty() &&
!QFileSystemModel::data(index, Qt::DisplayRole)
.toString().toLower().contains(_filter.toLower()))
{
return result;
}
result = QFileSystemModel::data(index, role);
return result;
}
Run Code Online (Sandbox Code Playgroud)
这几乎就在那里.我正在研究的"故障"与对象的显示位置有关.目前,如果我应用与列表中第3项匹配的搜索,则前两行将呈现为空白.换句话说,它仍然为非匹配项呈现行.
如何使用WatchPath密钥为launchd.plist脚本设置最小间隔?
例如,我想每次在目录中出现新文件时运行一个脚本,但我希望它最多只能每小时运行一次.
launchd.plist可能看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.me.pytag</string>
<key>ProgramArguments</key>
<array>
<string>/Users/me/bin/pytag.py</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Volumes/Data/Media/Video/Processing/Converted</string>
</array>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)