【问题标题】:QLineEdit`s QCompleter stylesheetQLineEdit 的 QCompleter 样式表
【发布时间】:2016-10-31 05:47:54
【问题描述】:

有一个QLineEdit 和一个普通的香草QStringList 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. 我已经尝试过了,它对我不起作用,但似乎对其他人有用

【问题讨论】:

标签: c++ qt qtstylesheets qcompleter


【解决方案1】:

一个简单直接的解决方案是设置QScrollBar 使用的popupQCompleter 的样式表。我对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();
}

【讨论】:

  • 这很有用,但我想避免对其进行硬编码。所以我需要找到 qss 选择器,但是你的代码给了我一些尝试的想法-> 赞成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多