Я хочу обрезать текст в QComboBox, Но для этого мне нужно знать ширину QComboBox. И когда я называю что-то вроде этого:
QComboBox
ui->qcombobox->width()
Я получаю неправильное значение (фактическая ширина составляет около 260 пикселей, но результирующая ширина всегда составляет 100 пикселей).
Вопросы:
Как я могу получить реальную ширину QComboBox?
ИЛИ ЖЕ
Как обрезать текст зависит от ширины QComboBox?
Ты звонишь ui->qcombobox->width() в конструкторе. Размер Combobox еще не рассчитан на этом шаге. Вам нужно подождать до первого showEvent встречается,. Попробуйте что-то вроде этого:
showEvent
void MainWindow::showEvent(QShowEvent *e) { QMainWindow::showEvent(e); qDebug() << ui->qcombobox->width(); }
Чтобы заполнить поле со списком при создании виджета, вам нужно сделать что-то вроде этого:
void MainWindow::showEvent(QShowEvent *e) { QMainWindow::showEvent(e); if (!mWasFilled) { mWasFilled = true; fillCombobox(); } }