0

2 つの PushButtons と KLineEdit を含む単純な KDE プラズマ プラグインを実装しようとしています。

しかし、KLineEdit と PushButton には最小サイズがあるようです。パネルの高さが十分でない場合、パネルの一部が消えてしまい、パネルが縮小しても縮小しません。

私はすでに QSizePolicy を最小に設定しているので、ユーザーがパネルをドラッグするとサイズが変更される理由がわかりませんか?

ありがとうございます。プライマリ クラス ファイルは次のとおりです。

#include <Plasma/Theme>
#include <Plasma/Corona>
#include <Plasma/Containment>
#include <Plasma/ToolTipManager>

K_EXPORT_PLASMA_APPLET(runcommand, RunCommandApplet)

RunCommandApplet:: RunCommandApplet(QObject *parent, const QVariantList &args) : Plasma::Applet(parent, args)
{
        paste_button = new Plasma::PushButton (this);
        paste_button->setText (tr("Pa"));

        m_button = new Plasma::PushButton (this);
        m_button->setText (tr("Ki"));

        m_lineEdit = new Plasma::LineEdit (this);

        QGraphicsLinearLayout *layout = new QGraphicsLinearLayout ();
        layout->addItem (m_button);
        layout->addItem (paste_button);
        layout->addItem (m_lineEdit);
            setLayout(layout);

        constraintsEvent(Plasma::FormFactorConstraint | Plasma::ImmutableConstraint);

        Plasma::ToolTipManager::self()->setContent(this, Plasma::ToolTipContent(i18n("Client"), i18n("Some Client"), KIcon("system-run").pixmap(IconSize(KIconLoader::Desktop))));

}

void RunCommandApplet::constraintsEvent(Plasma::Constraints constraints)
{
        m_button->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
        paste_button->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
        m_lineEdit->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
}
4

1 に答える 1

1

Plasm::PushButtons QSizePolicy はデフォルトで Minimum です。QSizePolicy::ShrinkFlag フラグを設定してみてください。

于 2012-01-11T11:15:22.060 に答える