在ARM QT开发过程中会遇到一种现象,QLabel、QPushButton等控件在样式表内配有禁用状态样式,在PC机上一切都正常显示,但是交叉编译到ARM机器上去禁用状态下的控件文字显示有重影(蚀刻)的问题。

这里QLabel设有qss样式

QLabel::disabled{
color: rgba(255, 255, 255, 15%);

2 PC上显示正常

文字在禁用状态下显示正常。

3 ARM上显示有重影(蚀刻)

文字在禁用状态下显示异常。

4 解决方式

在禁用样式下加上background: transparent;

QLabel::disabled{
background: transparent;
color: rgba(255, 255, 255, 15%);
为什么会生成两个Label呢? 原来程序在使用DropEvent时,不仅仅相应mouseReleaseEvent,而且还响应MousemoveEvent,  分本对应LeftButton和noButton.
                                    “开始”菜单的“运行”是大家比较常用的命令,可是在“运行”窗口下拉列表会保存所有运行过的程序记录,要清除这些历史记录,有许多方法,比如,打开注册表编辑器,找到HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/RunMRU,再删除右边窗口的“a,b,c...”,或者,在组策略“本地计算机策略→用户配置→管理
                                    当给QComboBox设置行交替使用不同颜色后,两个相邻的item文字有重叠
ui.comboBox->view()->setAlternatingRowColors(true);
解决方法:
在Qt Designer给comboBox的字体点大小设置为当前实际要展示的文字大小,默认为9,如果我们的文字要显示12px,将其改为12。
                                    放置一个按钮,然后连接on_pushButton_pressed和on_pushButton_released槽函数,在这两个函数实现效果,具体如下:
//按钮按下
void MainWindow::on_pushButton_pressed()
    ui->pushButton->setGeometry(ui->pushButton->x()+5,ui->pushButton->y()+5,ui->pushButton->width()-10,ui