Недавно я пришел к SO в этот вопрос, спрашивая, как Могу ли я получить в свои руки QScrollBar QComboBox, чтобы изменить его толщину. Прочитав ответы, я попробовал решение Marco A. для своего приложения Qt Embedded, но оно не сработало. Затем для проверки я изменил среду компиляции на рабочий стол, и исправление сработало!
По сути, моя проблема заключается в том, что когда я пытаюсь изменить ширину QScrollBar QComboBox в Qt для Embedded Linux (ARM), ничего не происходит, но если я скомпилирую точно такой же код для Qt для рабочего стола, он работает. Ниже приведен код, который я использую для тестов:
QAbstractItemView* poView = ui->comboBox->view();
QScrollBar* poBar = poView->verticalScrollBar();
poBar->setStyleSheet("width: 50px;");
и есть еще один код, который делает то же самое, но показывает ту же проблему:
ui->comboBox->setStyleSheet("QScrollBar:vertical { width: 50px; }");
Когда comboBox
объявляется в форме пользовательского интерфейса в Qt Designer (внутри Qt Creator).
Версии Qt одинаковы для рабочего стола и Qt для встроенного Linux (4.8.5). Еще одна вещь, которую я нашел странной (но не должна иметь к этому никакого отношения), заключается в том, что повторная компиляция того же кода для рабочего стола показывает QComboBox со стилем Windows XP, в то время как для встраиваемого используется стиль Plastique (я замечаю, что это совершенно ясно из-за Plastique показаны три вместо двух кнопок для прокрутки полосы прокрутки).
Так что же может происходить? Как я могу решить эту проблему?