- QAbstractListModel
- QCompleter
//效果,当输入worldList这些单词首字母,会自动补全,且可通过Up和Down来选择补全的单词
QStringList wordList;
wordList << "alpha" << "omega" << "omicron" << "zeta";
QLineEdit *lineEdit = new QLineEdit(this);
QCompleter *completer = new QCompleter(wordList, this);
completer->setCaseSensitivity(Qt::CaseInsensitive);
lineEdit->setCompleter(completer);
- QCompleter的模型提供
QStringList strList;
wordList << "alpha" << "omega" << "omicron" << "zeta";
QCompleter *completer = new QCompleter(this);
QStringListModel *model = new QStringListModel(strList,completer);
completer->setModel(model);
//如果需要更新
static_cast<QStringListModel *>(completer->completer()->model())->setStringList(strList);
//QKeyEvent可以得到键盘上任何键(组合按键不在此描述)
void HintList::keyPressEvent(QKeyEvent *ev)
{
if(ev->key() == Qt::Key_Down)
{
this->setCurrentRow(this->currentRow() + 1);
timer->stop();
timer->start();
}
else if(ev->key() == Qt::Key_Up)
{
this->setCurrentRow(this->currentRow() - 1);
timer->stop();
timer->start();
}
else if(ev->key() == Qt::Key_Enter || ev->key() == Qt::Key_Return)
{
emit sigKeyEnter(this->currentItem()->text());
this->close();
}
}
- QListView
- QListWidgetItem
- QModelIndex
QModelIndex类定位数据在模型中的位置(必须有行和列,可能有父索引).
可以通过索引访问views、delegate和selection模型中的数据.
QScrollBar的一个完整样式记录:
QScrollBar:vertical//首先是设置主体
{
margin:30px 0px 30px 0px;
background-color:#F0F1EF;
border: 0px;
width:30px;
}
QScrollBar::handle:vertical//滑块
{
background-color:#bbbbbb;
width:30px;
border-radius:7px;//圆角
}
QScrollBar::handle:vertical:hover
{
background-color:#9B9B9B;
width:30px;
border-radius:7px;
}
QScrollBar::add-line:vertical//为滚动条下面的箭头区域
{
subcontrol-origin: margin;
border:1px solid rgb(240,241,239);
height:30px;
}
QScrollBar::sub-line:vertical//为滚动条上面的箭头区域
{
subcontrol-origin: margin;
border:1px solid rgb(240,241,239);
height:30px;
}
QScrollBar::add-page:vertical//表示未滑过的槽部分
{
background-color:rgb(240,241,239);
}
QScrollBar::sub-page:vertical //表示已滑过的槽部分
{
background-color:rgb(240,241,239);
}
QScrollBar::up-arrow:vertical//箭头
{
border:0px;
width:30px;
height:30px;
border-image:url(":/Icons/up_Arrow.png");
}
QScrollBar::up-arrow:vertical:pressed
{
border:0px;
width:30px;
height:30px;
border-image:url(":/Icons/up_Arrow_down.png");
}
QScrollBar::down-arrow:vertical
{
border:0px;