如何在PyQt4中创建自动完成的组合框?
如何在pyqt4中创建自动完整的组合? 示例我想要什么: http://jqueryui.com/autocomplete/#combobox 解决方案 要获得与示例相同的行为,您将需要更改完成模式/a>用于组合. 默认情况下,完成模式为内联(即仅选择的文本,没有其他选择).要获取可能的替代方案的下拉列表,请执行: combobox.completer().setCompletionMode(QtGui.QCompleter.PopupCompletion) 其他解决方案 combobox.setEditable(True) combobox.completer().setCompletionMode(QtGui.QCompleter.PopupCompletion) combobox.setInsertPolicy(QComboBox.NoInsert) 第一行:自动完成仅适用于可编辑的组合. 第二行:自动完成方法的必需行为
2 2024-03-20
编程技术问答社区
在pyqt中实现GUI的模型视图时出现错误
当我关闭应用程序时,以下示例代码正在使用此错误崩溃: QBasicTimer::start: QBasicTimer can only be used with threads started with QThread 这是我的代码: import sys from PyQt4 import QtGui ,QtCore app = QtGui.QApplication(sys.argv) data=[] data.append("one") model=QtGui.QStringListModel(data) combobox=QtGui.QComboBox() combobox.show() combobox.setModel(model) sys.exit(app.exec_()) 我发现这是关于使用模型的,但我不知道如何修复它. 编辑: OS:Win 7 64bit pyqt4 解决方案 该程序不是"崩溃":它只是在正常关闭过程中打印错误消
16 2023-11-11
编程技术问答社区
我如何设置QComboBox的宽度以适应最大的项目?
我有一个QComboBox我用QString填充: comboBox->addItem(someString); 当我启动GUI应用程序时,即使最小的项目更大,QComboBox的宽度始终是70.例如,我如何将QComboBox的宽度动态设置为comboBox? 内的最大QString 编辑: 在进行进一步测试后,我找到了以下解决方案: // get the minimum width that fits the largest item. int width = ui->sieveSizeComboBox->minimumSizeHint().width(); // set the ComboBoxe to that width. ui->sieveSizeComboBox->setMinimumWidth(width); 解决方案 qt(4.6)在线文档有关于QComboBox的说法: enum SizeAdjustPolicy { Ad
12 2023-11-11
编程技术问答社区
PyQt5 QComboBox列表项改变位置
我面临着Qcombobox项目的显示样式的问题.目前正在硬编码要在Combobox中显示的数据. 这是代码: self.Dummy = QComboBox(self) self.Dummy.setGeometry(200,600, 350, 50) self.Dummy.setStyleSheet("QComboBox {background-color: white;border-style: outset;" border-width: 2px;border-radius: 5px;border-color: #448aff; font: 12px; min-width: 10em; padding: 3px;}") self.Dummy.addItems(["-Select-", "2", "3","4","5","6","7","8","9","0","11",]) 问题是,每次选择后,下拉式"列表"邮政就会不断变化.这是问题所面临的图像. 下面是我的
10 2023-11-02
编程技术问答社区
无法隐藏QComboBox的选择指示器
程序员 当我设置属于 Qcombobox (每个QSS)的列表视图的背景色时,此Qcombobox将不再使用内置的内置式景观.插入我必须根据QSS-Stylesheet指定所有光学设置: QComboBox QListView { background-color:white; border:1px solid black; } 列表视图显示了可chosable项目,现在在左侧显示一个复选框.该框中检查了这些项目,该项目在上次使用中选择. 如何用复选框隐藏列,以使它们不可允许并且不会在屏幕上消耗任何空间? 预先感谢... 解决方案 QSS解决方案,用于QCOMBOBOX 的困难绘制主题 如果您不使用QSS块,则Qcombobox将使用其OS-Ofe-Feel绘制.如果您开始指定QSS规则QCOMBOBOX的某些或全部子控制开始丢失OS-OFFEAL.在最坏的情况下,您必须立即指定QSS中的所有属性. 本文的主题是由QStyle
16 2023-10-04
编程技术问答社区
QComboBox 弹出菜单边框样式 Qt 4
无数小时尝试设计Qcombobox之后,我被插入物品的顶部和底部边距所困. 我想删除或将背景色应用于弹出菜单上衣和底部白色空间. QComboBox screen http://img576.imageshack.us/img576/3402/screenshot20120130at144 .png 我在qlistView中添加了一个小时,不要显示顶部和底部箭头.我还查看了QT来源中的Qcomboboxprivate类,但看来顶部和底部边缘是硬编码的. 感谢您的帮助. 编辑:这是我到目前为止的样式表 QComboBox { border: 1px solid rgb(95, 95, 95); border-radius: 3px; padding: 1px 18px 1px 3px; min-width: 6em; color: rgb(220, 220, 220); background-color:
4 2023-10-04
编程技术问答社区
Python,QT,Combobox,两列?
问题很简单,但是答案有一个问题: 我将QT与Python和SQL一起使用. 我会收到一些查询数据:"从部门中选择ID,部门" 我想创建使用两个列(ID,部门)的Combobox,它将仅显示"部门"(部门1,部门2 ..等),但是选择后,它应该返回" ID". 换句话说:我正在寻找与 display -ember 和 valuemember combobox中的相同功能. 我设法在ComboBox中创建了一个QTableView,但是一个问题会创建另一个问题(查看,读取" ID"等). 还有其他简单的方法吗? 解决方案 正如OP指出的那样,它使用QSQLTableModel,然后模仿C#行为的可能解决方案是建立将通过ModelColumn属性显示的列,然后访问相应的项目(ID和其他字段) )使用与所选行关联的QSQLRECORD. from PyQt5 import QtCore, QtWidgets, QtSql def createConnectio
10 2023-09-18
编程技术问答社区
当激活QComboxBox和QLineEdit时,如何启用/禁用按钮
当两个文本框都填充并选择了一个combox框项目时,我无法启用按钮. 我有以下代码,该代码在我输入文本后立即启用该按钮,但没有选定的ComboBox项目: self.combo_box.currentIndexChanged[int].connect(self.showbutton) self.textbox.textChanged.connect(self.showbutton) def showbutton(self,index): self.enableNewButton.setEnabled((index != -1) and bool(self.textbox.text())) 所以我做了一个print(index),并且在选择组合框项目时确实看到了正确的索引.但是,当我在文本框中输入内容时,我也会看到每个字符. 我在基于多个文本输入框的按钮启用按钮时没有问题,但这个按钮对我不起作用. 解决方案 textChanged信号发送当前文本,该
8 2023-09-03
编程技术问答社区
捕捉来自qComboBox弹出菜单的鼠标按键按下信号
我做了多选择QComboBox.项目是可检查的(每个项目都有复选框和文本值).仅当用户单击它时才检查复选框.我想要的是当用户单击文本值时捕获信号,以便我可以将选中框架设置为检查.如何做? 这是我将型号设置为组合框的方式: areas = ["Area one", "Area two", "Area three", "Area four"] model = QtGui.QStandardItemModel(5, 1)# 5 rows, 1 col firstItem = QtGui.QStandardItem("---- Select area(s) ----") firstItem.setBackground(QtGui.QBrush(QtGui.QColor(200, 200, 200))) firstItem.setSelectable(False) model.setItem(0, 0, firstItem) for i,area in enumerate(area
32 2023-09-03
编程技术问答社区
选择表格行,根据项目选择为组合框着色
我有这张桌子,我想要的是几件事: 当我单击一个单元格时,我希望从该单元的位置突出显示整个行,白色的东西,以及某些功能能够从该行的所有列中获取所有值 我对所有Combobox项目都有颜色,但是我希望能够用与我为选定项目选择的颜色相同的颜色为combobox背景着色,painter.fillRect() 中的颜色 非孤立代码: import sys from PyQt5 import QtCore, QtGui, QtWidgets,uic from PyQt5.QtCore import QSize, Qt from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton,QTableWidget,QStyledItemDelegate class MyQComboBox(QtWidgets.QComboBox): def __init__(self, scrollWidget=No
18 2023-08-25
编程技术问答社区
PyQt 组合框中单行的不同颜色
我正在使用pyqt开发一个UI,我的qcombobox中的一个项目可以用逗号分隔两个或三个单词.因此,对于EG项目1,可以是' text1,text2,text3 ',项目2将为' text4,text5 '. 我想做的是在itemText中的"分开"的项目中给出多种背景颜色.因此,对于第1项(' text1,text2,text2,text3 '),我需要在 text1 后面的颜色,在 text2 背后的另一个颜色和 text3 之后的第三个.同样,项目2将具有2种背景颜色. 我正在考虑使用RTF格式,但无法找到一种给一个项目行的多种颜色的方法. 谢谢您的帮助. 解决方案 一种方法是使用 demegate "> demegate ) ,还要将Rich-Text转换回Combo-Box的当前文本(通过其油漆事件). 这将允许您使用HTML作为项目文本,例如: self.combo = RichTextCombo(self) self.
24 2023-08-14
编程技术问答社区
QTableview 中的 PyQt-QCombobox
我使用QSQLTableModel在QTableView中显示来自SQLite数据库的数据.让用户编辑此数据正常工作.但是,对于某些列,我想使用Qcomboboxes而不是自由文本单元,以限制可能的答案列表. 我找到了这是一个完整的迷你示例: #!/usr/bin/python3 # -*- coding: utf-8 -*- from PyQt5 import QtSql from PyQt5.QtWidgets import (QWidget, QTableView, QApplication, QHBoxLayout, QItemDelegate, QComboBox) from PyQt5.QtCore import pyqtSlot import sys class ComboDelegate(QItemDelegate): """ A delegate that places a ful
22 2023-07-25
编程技术问答社区
如何使用 QComboBox 选择如何保存 QImage 的格式
对不起,如果这个问题很微不足道,但我有以下问题:我有 n.1 QGraphicsView n.1 QComboBox 我试图将上传到QGraphicsView上的图像保存到桌面上的文件夹中,通过QComboBox选择图像的格式.我编写的循环适用于.png文件,但我不确定如何正确处理QComboBox选择,因此我坚持使用其他不同的格式. 请参阅下面我正在使用的代码的剪切: mainwindow.h public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); bool fileExists(QString path); void bothPrintScreenBtn(const QString &pathImg, bool checkFolder); private slots: void on_bothPrintScreenBtn_
20 2023-07-25
编程技术问答社区
QComboBox 在选定项目上消除文本
所以,我有一个 qcombobox . 如果 currentText()对于小部件来说太长了,那么我想显示一个省略号. 这样: so: void MyComboBox::paintEvent(QPaintEvent * ) { QStylePainter painter(this); QStyleOptionComboBox opt; initStyleOption(&opt); painter.drawComplexControl(QStyle::CC_ComboBox, opt); QRect rect = this->rect(); //this is not ideal rect.setLeft(rect.left() + 7); rect.setRight(rect.width() - 15); // QTextOption opt
8 2023-07-25
编程技术问答社区
复选框的 QCombobox
我有问题,希望您能帮助我.我想在QT Creator上创建一个复选框的组合.这是我的代码 mod = new QStandardItemModel(1,0); QStandardItem *item; item = new QStandardItem("First"); item->setCheckable(true); mod->setItem(0,item); item = new QStandardItem("Second"); item->setCheckable(true); mod->setItem(1,item); ui->comboBox->setModel(mod); 我构建了此代码,但在Combobox中不是复选框.网上有人告诉我我必须使用该活动.你能帮我吗? 解决方案 您只需要设置初始的检查状态添加剂 item->setCheckState(Qt::CheckState state); ,例如 item->setCheckState
10 2023-07-25
编程技术问答社区
Qt:无法正确设置 qComboBox 的背景颜色
我有一个qcombobox,我想设置白色背景颜色.这是我的代码. QComboBox *cBox = new QComboBox; cBox->addItem("Text1"); cBox->setStyleSheet("background-color:white"); 此组合具有一个父窗口小部件,其背景是图像,并设置为如下: ui->centralWidget->setStyleSheet("border-image:url(./image.png)"); 当我将parent widget [centralwidget]背景设置为其他颜色时,白色bg则适用于combobox.ut,但是当我将图像设置为父窗口小部件背景时,UI看起来像这样. 在上面的图片中,黑色BG是一个图像.可能有人会突出我缺少什么.任何帮助真的很有帮助. 解决方案 当您不注明要应用哪个属性的小部件时,它们将应用于所有孩子,因此,将相同的QComboBox背景图像应用于centralWi
24 2023-07-25
编程技术问答社区
如何自定义多列 QCombobox
我正在使用Qcombobox,我想在qcombobox中的每个项目显示三个图标.但是目前,Qcombobox中的每个项目仅显示一个图标! 每个图标都应动态更改. 解决方案 您应该创建新的自定义qabstractitemdelegate,并使用void QComboBox::setItemDelegate ( QAbstractItemDelegate * delegate ) api. 将其设置为qcombobox 在代表中,您需要实现 virtual void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const = 0 根据您的需要. 您还需要使用以下API为UserData中的组合框提供不同的图标,您可以在Deletegate的油漆方法中使用该图标并绘制图标. void QComboBox::a
24 2023-07-25
编程技术问答社区
在一行 QTreeWidgetItems 中插入一个子项
我已经设置了我的QTREEWIDGET,使每个单元格都充满了组合,但是我想在所选的ComboBox旁边创建一个文本编辑窗口小部件(或覆盖现有的Combobox),具体取决于用户选择的组合项目. 我认为我可以通过在最初设置时将Comboboxes父添加为属性来做到这一点,然后在与ComboBox交互后,只需使用SetIteMwidget使用SetIteMwidget将文本编辑项目放入列后,将其放入列后(使用同一孩子).但似乎父母未正确传递,或者其他一些问题导致文本编辑小部件出现在应有的下方的行中. 我已经附加了一张照片和一些代码以进行澄清. 这是我设置QTREEWIDGET的Comboboxes(特别是Rowtype == 0) void customMethodConstructorWindow::addChildRow(QTreeWidget *widgetParent,QTreeWidgetItem *itemParent,int rowType) { //w
12 2023-07-25
编程技术问答社区
QTableview 标题中的 QComboBox
我想在QTableView列的标题中创建一个Qcombobox.有什么想法吗? 谢谢 解决方案 在这里暴露了对我有效的解决方案: http://blog.qt.io/blog/2014/04/11/qt-weekly-5-widgets-on-a-qheaderview/ /p>
14 2023-07-25
编程技术问答社区
QComboBox 能否显示与列表中不同的值?
在Linux上使用QT 5.9,我有一个带有多个标签的Qcombobox. qc = new QComboBox; qc->addItem(tr("Red")); qc->addItem(tr("Green")); qc->addItem(tr("Blue")); 可以说,用户激活了Qcombobox,并且在下拉列表中显示了3个颜色标签.然后,用户选择第一项(红色). 我想做的是让qcombobox显示的值与选择的值不同.即,如果选择了红色,则显示一个数字,可能是第一个项目的1(或者可能是红色的R),如果选择了绿色,则为第二个项目显示2(或G). 我这样做的目的是使用更少的显示空间(宽度较低)比显示选择的完整文本所需的实际目的,因为我的某些物品字符串很长,并且在Qcombobox是时需要更短的标签未在下拉状态下激活.此外,项目字符串具有描述性,缩写可以更好地显示. 编辑: 以Marek的例子为例,认为这可能会有所帮助.这就是我所拥有的.我期望用户是否从列表中
14 2023-07-25
编程技术问答社区