Окружающая среда
- Построено под OS X 10.6.8 (там тоже отлично работает.)
- Приложение, работающее под OS X 10.12
- Qt 4.7 (необходимо использовать это, 10.6.8 проблемы с поддержкой устаревших).
- Qt Creator 2.1.0
Вопрос
Из OS X 10.6.8 через OS X 10.11 всплывающие всплывающие меню всплывающих подсказок и всплывающих меню QComboBox прекрасны.
В разделе 10.12 всплывающие подсказки и всплывающие подсказки всплывающих меню QComboBox пусты.
Всплывающие подсказки - это пустые желтые листы, фон выглядит правильно, но без текста. Я настраиваю содержимое всплывающей подсказки в Qt Designer 2; ничего необычного здесь не происходит. И это просто ванильный текст в каждом случае.
В всплывающих меню QComboBox отсутствуют как текст, так и галочка. Когда всплывающее окно закрыто, значит, виджет показывает только одну строку, выбранный элемент показывает. Вы также можете указать на это, переверните ролик мыши, и предметы меняются, как ожидалось. Это просто всплывающий список элементов, которые пусты.
Для всплывающего меню QComboBox здесь приведен пример использования, который имеет проблему:
int index;
ui->fftSizecomboBox->addItem("2048 pts", 2048);
ui->fftSizecomboBox->addItem("4096 pts", 2048 * 2);
ui->fftSizecomboBox->addItem("8192 pts", 2048 * 4);
ui->fftSizecomboBox->addItem("16384 pts", 2048 * 8);
ui->fftSizecomboBox->addItem("32768 pts", 2048 * 16);
ui->fftSizecomboBox->addItem("64K pts", 2048 * 32);
ui->fftSizecomboBox->addItem("128K pts", 2048 * 64);
ui->fftSizecomboBox->addItem("256K pts", 2048 * 128);
ui->fftSizecomboBox->addItem("512K pts", 2048 * 256);
ui->fftSizecomboBox->addItem("1M pts", 2048 * 512);
ui->fftSizecomboBox->addItem("2M pts", 2048 * 1024);
ui->fftSizecomboBox->addItem("4M pts", 2048 * 2048);
index = ui->fftSizecomboBox->findData(m_FftSize);
if ((index < 0) || (index > 11))
{
index = 1;
m_FftSize = 4096;
}
ui->fftSizecomboBox->setCurrentIndex(index);
Для меня все выглядит довольно ванильно. Я в недоумении относительно того, почему он работает под всеми другими версиями OS X и запретами до 10.12
Кроме того, в другом приложении, которое я написал, я также использую всплывающие меню QComboBox, и они работают под 10.12 в этом приложении, так что это также подразумевает что-то, что я делаю.
Помимо просто щелчка по всплывающему меню, чтобы показать список элементов, с ним ничего не происходит. Я даже не поймаю никаких сообщений от него; когда я выхожу из диалогового окна, я смотрю на него, чтобы посмотреть, что это за выбор (или я даже этого не делаю, если диалог был отменен.)
Я отправил отчет об ошибке Apple, который они игнорировали в течение нескольких месяцев, поэтому либо они не заботятся, либо не думают, что это их проблема (и я предполагаю, что это, вероятно, нет, хотя это только показывается в OS X 10.12) Конечно, Apple часто оставляет ошибки в ОС, так что там.
[РЕДАКТИРОВАТЬ 1]
Что-то еще, что я пытался, чтобы увидеть, было ли это проблемой цвета палитры, заключалось в том, чтобы загрузить одну из всплывающих подсказок с помощью богатого текста, изменив цвет шрифта, чтобы картина не была выполнена только с использованием цветов палитры. Работал под 10.6, но не достиг 10.12, не имел никакого значения; всплывающая подсказка была такой же пустой. Кроме того, я вижу, что цвет фона всплывающей подсказки не бледно-желтый, он должен быть либо - он белый.
Это похоже на то, что система полностью потеряла следы того, что она должна делать, когда появляется всплывающая подсказка /popupmenu.
[ИЗМЕНИТЬ 2]
Вот код таблицы стилей, который я использую для QComboBox:
QComboBox::dropdown {
background: rgb(0,0,127);
color: rgb(0,255,0); /* color of dropped text*/
background-color: rgb(0,0,127); /* color of dropped backdrop*/
selection-color: rgb(0,255,0); /* color of sel text */
selection-background-color: rgb(0,0,0); /* color of sel backdrop */
}
QComboBox {
color: rgb(0,255,0); /* color of dropped text*/
background-color: rgb(0,0,0); /* color of dropped backdrop*/
selection-color: rgb(0,255,0); /* color of sel text */
selection-background-color: rgb(0,0,0); /* color of sel backdrop */
alternate-background-color: rgb(0,0,127);
alternate-selection=background-color: rgb(255,255,255);
}
Эта таблица стилей делает правильную вещь в соответствии с 10.6.8. В 10.12 основной блок со списком отображается правильно, зеленый текст на черном фоне, но всплывающее/выпадающее меню чисто белое, без текста; он должен быть зеленым на середине синего цвета (127.). Нет выбора цвета или видимой реакции, либо графически, кроме выбранного (невидимого) элемента и всплывающего меню.