标签: qcombobox

在QTableWidget中选择QComboBox

QTableWidget每行中的一个单元格包含一个组合框

for (each row in table ... ) {
   QComboBox* combo = new QComboBox();      
   table->setCellWidget(row,col,combo);             
   combo->setCurrentIndex(node.type());                 
   connect(combo, SIGNAL(currentIndexChanged(int)),this, SLOT(changed(int)));
   ....
}
Run Code Online (Sandbox Code Playgroud)

在处理程序函数:: changed(int index)中我有

QComboBox* combo=(QComboBox*)table->cellWidget(_row,_col);  
combo->currentIndex()
Run Code Online (Sandbox Code Playgroud)

要获取组合框的副本并获得新选择.
但我无法获得行/列.
当选择或更改嵌入项并且未设置currentRow()/ currentColumn()时,不会发出表cellXXXX信号.

c++ qt qt4 qtablewidget qcombobox

15
推荐指数
3
解决办法
2万
查看次数

为QComboBox设置所选项目

我有一个简单的QComboBox小部件,里面有2个值:TrueFalse.我有一个QString变量currValue,这是其中一个值.我想设置我的小部件的当前值currValue.

我认为解决方案如下:首先让我们初始化currValue; QString currValue = "False";

QComboBox* combo = new QComboBox();
combo->addItem("True");
combo->addItem("False");
combo->setCurrentIndex(combo->findData(currValue));
Run Code Online (Sandbox Code Playgroud)

但它不起作用.难道我做错了什么 ?为什么QComboBox没有成员setCurrentItem()或smth那样?

qt qcombobox

15
推荐指数
2
解决办法
3万
查看次数

Qt为QTableView使用自定义QItemDelegate

我按照Qt提供的Spin Box Delegate教程,尝试实现自己的QItemDelegate.它将用于指定a QComboBox来表示QTableView单元格中的数据,但它不起作用.

在此输入图像描述

我最大的问题是我不知道什么时候QItemDelegate会被利用.

  • 何时itemModel->setData()使用或何时使用itemModel->setItem().我怀疑setItem()是因为我重新实现了QItemDelegate(强调"项目"),但教程使用setData()并且它工作正常.

  • 我知道,如果指定QItemDelegate不起作用,它使用默认值,但我现在怎么说我指定的那个不起作用?

  • 什么时候我应该怀疑QTableView使用我的代表.我想指定每个单元格使用哪些代理.这是可能的还是QTableView唯一使用一个代表?

  • 如何将我指定的项目来填充QComboBox一旦获得通过所显示的QTableView

QItemDelegate在这里实现:

  • 我尝试添加要假设使用的单元格的部分QComboBox位于mainwindow.cpp中的注释"Enabled"下面.

qcomboboxitemdelegate.h

#ifndef QCOMBOBOXITEMDELEGATE_H
#define QCOMBOBOXITEMDELEGATE_H

#include <QItemDelegate>
#include <QComboBox>

class QComboBoxItemDelegate : public QItemDelegate
{
    Q_OBJECT

public: 

    explicit QComboBoxItemDelegate(QObject *parent = 0);

    QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index);
    void setEditorData(QWidget *editor, const QModelIndex &index);
    void …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtableview qitemdelegate qcombobox

13
推荐指数
1
解决办法
3万
查看次数

Qt,如何更改QComboBox的一个项目的文本颜色?(C++)

我无法弄清楚如何更改QComboBox的一个特定项目的文本颜色.我能够更改项目的背景颜色:

comboBox->setItemData(i, Qt::green, Qt::BackgroundRole);
Run Code Online (Sandbox Code Playgroud)

(Qt::ForegroundRole完全没有效果,Qt 4.6,Ubuntu 10.04)

我能够用样式表更改所有项目的文本颜色,但我无法弄清楚如何更改一个指定项目的文本颜色.

谢谢你的帮助!

c++ qt colors qcombobox

11
推荐指数
2
解决办法
1万
查看次数

如何使QComboBox弹出向上?

我的QComboBox派生类位于(可见)屏幕底端的QGraphicsScene中 - 但它会向下弹出,因此不可见.

(如何)是否可以强制弹出窗口在窗口小部件上方打开?

我试过像这样重新实现showPopup:

void MyComboBox::showPopup()
{
     QAbstractItemView *popupView = view();
     popupView->move(0,-100);
     //popupView->window->move(0,-100);
     QComboBox::showPopup();
}
Run Code Online (Sandbox Code Playgroud)

结果是,内容似乎被移动,但不是基础弹出对象.我认为有可能找到一个如本文所示的样式解决方案 ,但我找不到任何可能对此有用的样式控件.我对C++和Qt都很陌生,所以我可能会遗漏一些明显的东西.

我对这件事情有任何帮助表示感谢!

最好的祝福,

塞巴斯蒂安

qt popup stylesheet qcombobox

11
推荐指数
1
解决办法
6405
查看次数

当用户在QComboBox中选择项目时显示工具提示

我想用工具提示显示文本和用户在列表视图中选择项目的时间(将鼠标悬停在列表视图中的项目上)QCombobox.

我使用的是定制的QComboBoxQItemDelegate.

qt qcombobox

11
推荐指数
2
解决办法
5896
查看次数

QStandardItem + QComboBox

我试图把QComboBoxQStandardItem在使用QStandardItemModel.我一直在四处寻找,我找不到答案,任何想法?

qt qcombobox

10
推荐指数
1
解决办法
8539
查看次数

QComboBox AbstractItemView :: item

有没有办法可以增加QComboBox控件中列出的项目的高度?

我尝试按照QTDevNet论坛中的建议进行操作,但没有运气

QComboBox QAbstractItemView::item {margin-top: 3px;}
Run Code Online (Sandbox Code Playgroud)

我也试过这个,仍然没有结果.

QComboBox QAbstractItemView::item {min-height: 20px;}
Run Code Online (Sandbox Code Playgroud)

是否有可能在样式表层面实现这一目标?

qt qt4 qcombobox qtstylesheets

9
推荐指数
1
解决办法
8175
查看次数

"QComboBox Pop-up"扩展和QtWebkit

组合框的 Firefox/Chrome/InternetExplorer/Safari/Opera弹出窗口中展开内容,请参阅Firefox图片:

Firefox组合框

QComboBox弹出窗口不会扩展内容.弹出窗口的大小受限QComboBox,请参阅QWebView图片:

Qt和QtWebkit组合框

所以我实现了QComboBox :: showPopup:

void newQComboBox::showPopup() {
    int width = this->width();
    this->view()->setTextElideMode( Qt::ElideNone );

    const int iconSize = this->iconSize().width();
    const QFontMetrics fontMetrics = this->fontMetrics();
    const int j = this->count();

    for( int i=0; i < j; ++i ) {
        const int textWidth = fontMetrics.width( this->itemText(i) + "WWW" );
        if (this->itemIcon(i).isNull()) {
            width = qMax(width, textWidth);
        } else {
            width = qMax(width, textWidth + iconSize);
        }
    }

    QStyleOptionComboBox opt;
    this->initStyleOption(&opt); …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtwebkit qtgui qcombobox

9
推荐指数
1
解决办法
2228
查看次数

QComboBox-选择不输入

我的ui上有一个QComboBox并按如下所示设置模型:

QStringListModel* model = new QStringListModel;
QStringList stringlist;
stringlist << "Test1" << "Test2" << "Test3";

model->setStringList(stringlist);
ui->comboBox->setModel(model);
Run Code Online (Sandbox Code Playgroud)

现在,我想将当前索引更改为none(以便获得一个空白的组合框)。

我已经尝试使用将当前索引设置为-1 ui->comboBox->setCurrentIndex(-1);,但结果是在qlist中超出范围表达式的索引:

ASSERT failure in QList<T>::operator[]: "index out of range", file F:/Qt/5.4/mingw491_32/include/QtCore/qlist.h, line 486
Run Code Online (Sandbox Code Playgroud)

qt qcombobox

9
推荐指数
1
解决办法
4609
查看次数