2012-01-09 7 views
0

私は2つのプッシュボタンとKLineEditを含む単純なKDEプラズマプラグインを実装しようとしている、Plasma :: PushButtonのサイズを設定しますか?

しかし、それはKLineEditだとパネルが十分な高さを持っていない場合、プッシュボタンは、最小サイズを持っている、いくつかの部分パネル上で消えますが、パネルが縮小するにつれて縮小しません。

私はすでに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)); 
} 

答えて

1

血漿::プッシュボタンQSizePolicyは、デフォルトでは最小です。 QSizePolicy :: ShrinkFlagフラグを設定してみてください。

+0

ここに例を挙げてください。 KDEが提供するドキュメントはかなり貧弱で、 'QSizePolicy :: PolicyFlag'を設定する方法を見つけることができません。 – daisy

+0

ShrinkFlagはQSizePolicy :: Maximumと同等です。 – Neox

+0

ありがとうございました、ポリシーを最大に設定すると、PLasma :: LineEditに役立ちました – daisy

関連する問題