0

QLineEdit一个普通的香草QStringList QCompleter。我想知道是否可以更改下拉列表的外观(我想要最小尺寸或更小的滚动条)。

QCompleter

澄清:我想在样式表中设置它,而不是在代码中。

到目前为止我的发现总结:

  1. 很好的总结:https ://forum.qt.io/topic/26703/solved-stylize-using-css-and-editable-qcombobox-s-completions-list-view/12
  2. 我必须使用QStyledItemDelegate
  3. 为弹出窗口命名 qss 选择器
  4. 我已经尝试过了,它对我不起作用,但似乎对其他人有用
4

1 回答 1

4

一个简单直接的解决方案QScrollBarpopup设置QCompleter. 我对 qss 的了解很少,所以我不知道您是否可以这样设置最小尺寸,但您可以随时查看verticalScrollBar().

这是qss方式的一些代码:

#include <QAbstractItemView>
#include <QCompleter>
#include <QLineEdit>
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QLineEdit edit;
    edit.show();

    QStringList completionList;
    for (int a = 0 ; a < 10 ; ++a) {
        completionList << QString("test%1").arg(a);
    }

    QCompleter completer(completionList);

    edit.setCompleter(&completer);

    QAbstractItemView *popup = completer.popup();

    popup->setStyleSheet("QScrollBar{ width: 50px;}");

    return a.exec();
}
于 2016-06-28T19:13:47.803 回答