Установка стиля в поле со списком для активированного сигнала вызывает проблемы - PullRequest
0 голосов
/ 25 апреля 2019

В настоящее время у меня есть QComboBox, цвет которого я хочу изменить, когда пользователь делает выбор.Для этого у меня активирована функция вызова активированного сигнала, которая вызывает setStyleSheet

void comboBoxActivated(int i){
   myComboBox -> setStyleSheet("border-width:2px; border-style:solid; border-color:red;");
}

Это, однако, приводит к тому, что поле со списком остается открытым на моем экране, и единственный способ избавиться от него - закрытьприложение.Есть ли проблема с изменением стиля с помощью этой функции?Для справки я использую Ubuntu и QT 4.8

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

По какой-то причине, если я заставлю окно открыться и закрыться, изменение вступит в силу без проблем

void comboBoxActivated(int i){
   myComboBox -> setStyleSheet("border-width:2px; border-style:solid; border-color:red;");
   myComboBox -> showPopup(); 
   myComboBox -> hidePopup(); 
}
0 голосов
/ 25 апреля 2019

Этот код в Windows прекрасно работает:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->comboBox->addItem("item1");
    ui->comboBox->addItem("item2");
    ui->comboBox->addItem("itme3");

    connect(ui->comboBox, SIGNAL(activated(int)),
            this,         SLOT(comboBoxActivated(int)));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::comboBoxActivated(int i){
    ui->comboBox -> setStyleSheet("border-width:2px; border-style:solid; border-color:red;");
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...