基于QTCreator中的组合框选择修改样式表 原谅这里的机械工程师,但我对QtCube和C++是新手。

基于QTCreator中的组合框选择修改样式表 原谅这里的机械工程师,但我对QtCube和C++是新手。,c++,css,combobox,C++,Css,Combobox,我目前正在使用QTCreator开发GUI。该系统旨在允许用户修改机器人设备的大量系统变量。因此,我有大约1100个组合框分布在许多StackedWidget上 我已经成功地实现了几个数组来填充这些框,并且我可以读回数据,因此系统功能相当强大 问题是:由于布局的原因,每个页面都会变得凌乱。我想根据用户选择控制组合框的样式表。i、 e.如果在框中选择,则该框变为绿色。如果关闭-变为红色等 我可以通过在数组中运行一个按钮来实现这一点,但我能找到的唯一方法是在用户进行更改时激活每个框的插槽,以在索引更

我目前正在使用QTCreator开发GUI。该系统旨在允许用户修改机器人设备的大量系统变量。因此,我有大约1100个组合框分布在许多StackedWidget上

我已经成功地实现了几个数组来填充这些框,并且我可以读回数据,因此系统功能相当强大

问题是:由于布局的原因,每个页面都会变得凌乱。我想根据用户选择控制组合框的样式表。i、 e.如果在框中选择,则该框变为绿色。如果关闭-变为红色等

我可以通过在数组中运行一个按钮来实现这一点,但我能找到的唯一方法是在用户进行更改时激活每个框的插槽,以在索引更改时激活

我怎样才能让机器循环查找每页80个盒子中的任何一个的变化


如果你需要我的技能水平,我确实花了几天的时间才弄明白如何建立一个数组来填充方框,所以我猜在NOOB之前需要1个级别。:)

我没有编译这段代码,所以可能有一些错误,但这应该是一个好主意

// This code goes in the place where you are adding the QComboBoxes
QComboBox* box = new QComboBox()
connect(box, SIGNAL(currentIndexChanged(int index)), this, SLOT(UpdateColor(int idx));   

// Add this function to the class where you are adding the QComboBoxes
void UpdateColor(int idx)
{
    if(idx == 0) // OFF
    {
        QObject::sender()->setStyleSheet("QComboBox { selection-background-color: red; }");
    }
    else if(idx == 1) //ON
    {
        QObject::sender()->setStyleSheet("QComboBox { selection-background-color: green; }");
    } 
}

QObject::sender()
返回指向启动信号的对象的指针,在本例中是刚刚更改其选择的
QComboBox
。应该不需要在框中循环,因为此函数将为您提供刚刚更改的框

我没有编译这段代码,所以可能有一些错误,但这应该是一个好主意

// This code goes in the place where you are adding the QComboBoxes
QComboBox* box = new QComboBox()
connect(box, SIGNAL(currentIndexChanged(int index)), this, SLOT(UpdateColor(int idx));   

// Add this function to the class where you are adding the QComboBoxes
void UpdateColor(int idx)
{
    if(idx == 0) // OFF
    {
        QObject::sender()->setStyleSheet("QComboBox { selection-background-color: red; }");
    }
    else if(idx == 1) //ON
    {
        QObject::sender()->setStyleSheet("QComboBox { selection-background-color: green; }");
    } 
}

QObject::sender()
返回指向启动信号的对象的指针,在本例中是刚刚更改其选择的
QComboBox
。应该不需要在框中循环,因为此函数将为您提供刚刚更改的框

谢谢你,瑞克。我一定会试一试。我非常感谢你的帮助。谢谢你,瑞克。我一定会试一试。我非常感谢你的帮助。