1. 下载qt4的源码
这里使用的是qt4.8.6网址,http://download.qt.io/archive/qt/4.8/4.8.6/,下载qt-everywhere-opensource-src-4.8.6.tar.gz。
2. 编译qt
a.解压
将qt-everywhere-opensource-src-4.8.6.tar.gz放入/opt目录下
tar -zxvf qt-everywhere-opensource-src-4.8.6.tar.gz
b.生成Makefile
cd qt-everywhere-opensource-src-4.8.6
./configure
make
3. 修改代码
修改文件qt-everywhere-opensource-src-4.8.6/src/gui/widgets/qcombobox.cpp
void QComboBoxPrivate::updateViewContainerPaletteAndOpacity()
{
if (!container)
return;
Q_Q(QComboBox);
QStyleOptionComboBox opt;
q->initStyleOption(&opt);
#ifndef QT_NO_MENU
if (q->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, q)) {
QMenu menu;
menu.ensurePolished();
container->setPalette(menu.palette());
container->setWindowOpacity(menu.windowOpacity());
} else
#endif
{
container->setPalette(q->palette());
// container->setWindowOpacity(1.0); //屏蔽这行
}
if (lineEdit)
lineEdit->setPalette(q->palette());
}
4.重新编译
make
5.替换文件
编译后得到新的库文件,在qt-everywhere-opensource-src-4.8.6/lib中,找到libQtGui.so相关文件,并替换原有的。