环境
问题
从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);
Run Code Online (Sandbox Code Playgroud)
这一切对我来说都很香.我不知道为什么它在所有其他OS X版本和10.12下的balks下工作
此外,在我写的另一个应用程序中,我也使用QComboBox弹出菜单,它们在该应用程序中的10.12下工作,这也意味着它正在我正在做的事情.
除了单击弹出菜单使其显示项目列表之外,没有任何反应.我甚至没有收到任何消息; 当我退出对话框,然后我看它,看选择什么(或者我甚至不这样做,如果对话框已被取消.)
我向Apple提交了一个错误报告,他们已经忽略了几个月,所以要么他们不关心,要么不认为这是他们的问题(而且我猜它可能不是,尽管它只出现在OS X 10.12)当然,Apple经常在操作系统中留下漏洞,所以就是这样.
[编辑1]
我尝试过的其他东西,看看它是否是调色板颜色问题,是加载一个带有丰富文本的工具提示,更改字体颜色,这样就不会使用调色板颜色来完成绘画.工作在10.6以下,但在10.12以下,没有任何区别; 工具提示同样空白.另外,我看到工具提示背景颜色不是它应该是的淡黄色 - 它是白色的.
这就像系统完全失去了工具提示/弹出菜单出现后应该做的事情.
[编辑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);
}
Run Code Online (Sandbox Code Playgroud)
这个样式表在10.6.8下完全正确.在10.12下,主要组合框正确呈现,黑色背景上的绿色文本,但弹出/下拉列表是纯白色,没有文本; 它应该是绿色的中蓝色(127.)没有选择颜色或可见的反应,图形上,除了正确的(不可见的)项目被选择和弹出菜单消失.
小智 0
由于您的 Qt 版本已过时,因此“本机”渲染引擎可能已损坏。您可以通过使用“光栅”渲染引擎来避免此问题
http://doc.qt.io/qt-4.8/qapplication.html#setGraphicsSystem