Как обрезать текст в QComboBox или как получить его фактическую ширину?
Я хочу обрезать текст в QComboBox
, Но для этого мне нужно знать ширину QComboBox. И когда я называю что-то вроде этого:
ui->qcombobox->width()
Я получаю неправильное значение (фактическая ширина составляет около 260 пикселей, но результирующая ширина всегда составляет 100 пикселей).
Вопросы:
Как я могу получить реальную ширину QComboBox?
ИЛИ ЖЕ
Как обрезать текст зависит от ширины QComboBox?
1 ответ
Решение
Ты звонишь ui->qcombobox->width()
в конструкторе. Combobox's size is not calculated on this step yet. You need to wait until the first showEvent
встречается,. Попробуйте что-то вроде этого:
void MainWindow::showEvent(QShowEvent *e)
{
QMainWindow::showEvent(e);
qDebug() << ui->qcombobox->width();
}
In order to fill combobox on creating widget you need to do something like this:
void MainWindow::showEvent(QShowEvent *e)
{
QMainWindow::showEvent(e);
if (!mWasFilled) {
mWasFilled = true;
fillCombobox();
}
}