QLineEdit的QCompleter样式表

时间:2016-06-28 18:47:35

标签: c++ qt qtstylesheets qcompleter

拥有普通香草QLineEdit QStringList的{​​{1}}。我想知道我是否可以改变下拉列表的外观(我希望有一个最小尺寸或更小的滚动条)。

QCompleter

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

到目前为止我的调查结果摘要:

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

1 个答案:

答案 0 :(得分:3)

一个简单的直接解决方案是设置QScrollBar popup使用的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();
}