Таблица стилей QCompleter QLineEdit

Иметь 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. Я попробовал это, и это не работает для меня, но, кажется, работает для других

0

Решение

Простое прямое решение состоит в том, чтобы установить таблицу стилей 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();
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]