- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 QCompleter 弹出窗口中的特定 QLineEdit 中应用样式表。
在 QtDesigner 中尝试:
代码:
QLineEdit#lineEdit::popup{
background:red;
}
但是不起作用
我正在寻找的是更改字母的颜色、背景颜色以及出现在建议框中的字母的对齐方式
也尝试一下 QtDesigner
QAbstractItemView {}
QAbstractItemView :: item {}
更改 QLineEdit 中显示的建议列表的视觉属性,但它们不起作用
在我的代码中尝试:
from PyQt5.QtWidgets import QMainWindow,QApplication, QCompleter
from PyQt5 import QtCore
from PyQt5 import uic
class Pricnipal(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
uic.loadUi("uno.ui",self)
completer = QCompleter()
self.lineEdit.setCompleter(completer)
model = QtCore.QStringListModel()
completer.setModel(model)
self.get_data(model)
def get_data(self,model):
model.setStringList(["uno","dos","tres","cuatro","este es mi nombre"])
app = QApplication([])
p = Pricnipal()
p.show()
app.exec_()
最佳答案
您必须使用委托(delegate):
from PyQt5 import QtCore, QtGui, QtWidgets, uic
class CompleterDelegate(QtWidgets.QStyledItemDelegate):
def initStyleOption(self, option, index):
super(CompleterDelegate, self).initStyleOption(option, index)
option.backgroundBrush = QtGui.QColor("red")
option.palette.setBrush(QtGui.QPalette.Text, QtGui.QColor("blue"))
option.displayAlignment = QtCore.Qt.AlignCenter
class Principal(QtWidgets.QMainWindow):
def __init__(self):
super(Principal, self).__init__()
uic.loadUi("uno.ui",self)
completer = QtWidgets.QCompleter(self)
self.lineEdit.setCompleter(completer)
model = QtCore.QStringListModel()
completer.setModel(model)
delegate = CompleterDelegate(self.lineEdit)
completer.popup().setStyleSheet("background-color:red;")
completer.popup().setItemDelegate(delegate)
self.get_data(model)
def get_data(self,model):
model.setStringList(["uno","dos","tres","cuatro","este es mi nombre"])
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
p = Principal()
p.show()
sys.exit(app.exec_())
关于python - 改变QCompleter的风格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53663091/
我有一个 QLineEdit,它有一个 QCompleter 对象。如果用户至少输入了一个字符,则会显示 QCompleter 的弹出菜单,但是当用户删除最后一个字符(从而使该字段留空)时,弹出菜单就
我正在使用 Qt4.6,并且我有一个带有 QCompleter 的 QComboBox。 通常的功能是根据前缀提供完成提示(这些提示可以在下拉列表中而不是内联 - 这是我的用法)。例如,给定 chic
我试图让 QCompleter 匹配几个用逗号分隔的等效选项。似乎没有简单的方法可以做到这一点,但有一行 QCompleter 引用引起了我的注意,它描述了函数 QCompleter::splitPa
我有表窗口小部件,其中一列需要具有文本自动填充功能。 每次用户请求新行时,我都会为该列运行以下代码: else if (i == COLUMN_DESCRIPICION){ Q
QCompleter 在大型数据集(大型模型)上运行速度稍慢:当我开始在 QCombobox 中输入字符时,它会花费几秒钟的时间来显示带有变体的自动完成弹出窗口,当输入第二个字符时,QComplete
我使用的是 Qt4.6,并且我有一个 QComboBox,里面有一个 QCompleter。 通常的功能是根据前缀提供完成提示(这些提示可以在下拉列表中而不是内联中 - 这是我的用法)。例如,给定 c
它没有显示任何弹出窗口或错误。它静静地什么都不做。 QStringList dictionary; dictionary inRawText); completer->setModel(new QSt
我对 Qt 很陌生。我试图在这里找到答案,但到目前为止没有成功。我在 main.cpp 文件中有一个复杂结构的 vector ,我想将它用作我在 mainwindow.cpp 的 void 函数中定义
我想做一个代码完成器,所以我将 QCompleter 子类化: http://hastebin.com/qeyumevisa.cpp 但是,当我尝试运行这段代码时,出现运行时错误: 调试输出显示: A
需要一些帮助。我有一个 QCompleter 和一些 QStringList,例如: QstringList list; list #include #include #include #in
我正在使用 Qt4.6,并且我有一个带有 QCompleter 的 QComboBox。 通常的功能是根据前缀提供完成提示(这些提示可以在下拉列表中而不是内联 - 这是我的用法)。例如,给定 chic
我有一个表,其中包含一些使用非常大的数字作为主键的键控记录。我有类似于下面的代码,它使用 QCompleter 自动完成此表中的查找。它有效,但显示的补全是使用科学记数法 (1234567 => 1.
有人问过关于覆盖 QCompleter 弹出位置的类似问题,但我仍然找不到有效的解决方案。我只是想将弹出窗口向下移动 5px 左右(我有一些特定的样式要求) 我尝试将 QListView 子类化并使用
我刚刚开始使用 PyQt5,这里有一个小文件: class Window(QWidget): def __init__(self): QWidget.__init__(self
我创建了一个自定义 QCompleter 类,它在弹出窗口中显示所有项目,其中包含 QLineEdit 的键入词。 现在所有项目都按字母顺序排列,如您在此处所见: 如果我输入“dab”然后按字母顺序输
我正在对 QCompleter 进行子类化,以赋予它一些特殊功能。我希望在模型中只有一个具有给定前缀的完成时触发 activated(),但这不是我遇到问题的地方。 我在我的子类中创建了一个虚拟 se
我已经用 QStringList 初始化了 QCompleter。而这个字符串列表有超过 30,000 个条目。我已在我的用户界面中连接到 Qlineedit。那里没有问题。问题在于,每当我在该 ql
在网上搜索了很多都没有找到正确的答案之后,我向你们寻求帮助...所以让我们看看我是否可以解释一下。 我正在使用 Qt 5 开发 UI,我想要一个具有自动完成功能的 lineEdit。我知道我可以使用
我都是,我只是效仿这个很好的例子: http://qt-project.org/doc/qt-4.8/tools-customcompleter.html 除了使用 modelFromFile 方法进
我想研究如何制作一个小的用户界面,用户可以在其中键入一些字母并根据给定的数据源(此处列出)获得一些建议,从而使搜索更容易。为此,我使用 Qt 的 QCompleter类。 在匹配元素中,键入的字母应使
我是一名优秀的程序员,十分优秀!