gpt4 book ai didi

android - Qt 升级后 QPushButton 有重复的文本

转载 作者:可可西里 更新时间:2023-11-01 18:39:33 28 4
gpt4 key购买 nike

我有一个使用 Qt Creator 用 C++ 编写的 Android 应用程序。

在 Qt 版本升级后(从 4.85.4)我观察到一个奇怪的行为:所有 QPushButton 都有重复的文本标签,一个在正确的位置,另一个被移开了一点。此行为可以在 Acer Iconia Tab A700 上观察到,但不会在其他设备 (Samsung Galaxy Tab) 上观察到。

illustration of the problem

我在 QT Creator 中创建了一个全新的 QDialog 菜单,只使用图形编辑器,但它显示的是同样的东西。

其他人观察到同样的事情了吗?我是 Qt 的新手,不知道如何解决这个问题......

编辑

以下是一些 fragment :

mydialog.ui

    <widget class="QPushButton" name="startButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Start</string>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>

ui_mydialog.h

public:
QPushButton *startButton;
QPushButton *stopButton;
...
void setupUi(QDialog *MyDialog)
{
... // some layout stuff here
startButton = new QPushButton(MyDialog);
startButton->setObjectName(QStringLiteral("startButton"));
QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(startButton->sizePolicy().hasHeightForWidth());
startButton->setSizePolicy(sizePolicy);
startButton->setDefault(true);
... // later
QWidget::setTabOrder(startButton, stopButton);
}

void retranslateUi(QDialog *MyDialog)
{
MyDialog->setWindowTitle(QApplication::translate("MyDialog", "Dialog", 0));
startButton->setText(QApplication::translate("MyDialog", "Start", 0));
stopButton->setText(QApplication::translate("MyDialog", "Stop", 0));
...
}

但是,我还是使用了 Qt Creator GUI 来创建对话框,所以我猜这应该是一些配置错误。或者可能与 retranslateUi() 函数相关?

这是它在 Qt Creator 中的样子:

enter image description here

编辑#2

我找到了一些说明,其中定义了按钮的具体样式。在这里:

    foreach (QToolButton* bt, listOfToolButtons) {
bt->setAttribute(Qt::WA_AcceptTouchEvents);
bt->installEventFilter(scrollAreaForToolBar);
bt->setIconSize(QSize(iconSize, iconSize));
bt->setStyleSheet("QToolButton{ background-color: #051a49; border: none;}");
scrollAreaContainer->layout()->addWidget(bt);
}

最佳答案

我也遇到了同样的问题我通过设置样式表解决了它。好像是边框的问题,解决问题的样式表是:

border-style: outset;
border-width: 2px;
border-radius: 4px;
border-color: black;
padding: 6px;

我尝试了不同的配置,但我不明白哪个才是真正解决问题的配置。

关于android - Qt 升级后 QPushButton 有重复的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29894395/

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