gpt4 book ai didi

linux - QScrollBar 在编译到桌面和嵌入式 Linux 环境之间有区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:53 26 4
gpt4 key购买 nike

最近我在 this question 来到 SO问我怎样才能拿到 QComboBox 的 QScrollBar 来改变它的厚度。阅读回复后,我为我的 Qt Embedded 应用程序尝试了 Marco A. 解决方案,但没有成功。然后,为了测试,我将编译环境更改为桌面,修复成功了!

所以基本上我的问题是,当我尝试在 Qt for Embedded Linux (ARM) 中更改 QComboBox 的 QScrollBar 宽度时,没有任何反应,但如果我为 Qt for Desktop 编译完全相同的代码,它就可以工作。以下是我用于测试的代码:

QAbstractItemView* poView = ui->comboBox->view();
QScrollBar* poBar = poView->verticalScrollBar();
poBar->setStyleSheet("width: 50px;");

还有另一个代码做同样的事情,但显示同样的问题:

ui->comboBox->setStyleSheet("QScrollBar:vertical { width: 50px; }");

comboBox 在 Qt Designer 的 ui 表单中声明(在 Qt Creator 中)。

Desktop 的 Qt 版本与嵌入式 Linux (4.8.5) 的 Qt 版本相同。我发现的另一件奇怪的事情(但应该与它无关)是再次为桌面编译相同的代码显示具有 Windows XP 样式的 QComboBox,而对于嵌入式使用 Plastique 样式(我注意到很清楚,由于 Plastique显示三个而不是两个按钮来滚动滚动条)。

那么会发生什么?我该如何解决这个问题?

最佳答案

我注意到了相同的症状。在 Qt 中,很多绘图,我知道,已经委托(delegate)给样式,而 Plastique 样式似乎有一个错误,如果它没有,它似乎不会在正确的坐标中绘制垂直滚动条默认大小。所以如果你这样做:

QScrollBar:vertical
{
min-width: 35px;
width: 35px;
}

您最终会出现您描述的症状。但是,AFAICS 处理边距也有问题!如果你玩边缘,例如像这样:

QScrollBar:vertical
{
min-width: 35px;
width: 35px;
margin-right: 35px;
}

您应该能够解决该错误。

至少对我有用。

关于linux - QScrollBar 在编译到桌面和嵌入式 Linux 环境之间有区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26123405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com