• 5955阅读
  • 2回复

[提问]如何将toolbar上的label显示在最右端? [复制链接]

上一主题 下一主题
离线yzpdsg
 

只看楼主 倒序阅读 楼主  发表于: 2011-02-27
我在toolbar上加了些图标,现在想在最右端显示一些信息,如图。


现在我希望把“欢迎你”这个label显示在toolbar的最右端,不知该如何实现呢?

PS:我试了setGeometry(),但是无效。
离线kimtaikee

只看该作者 1楼 发表于: 2011-02-27
重新实现QToolBar的paintEvent(QPaintEvent* e)

class MyToolBar : public QToolBar
{
  QObject
public : // constructor and destructor

public slots:
      void setTip(const QString& strTip)
      {
         m_strTip = strTip ;
         update();
      }
protected:
    void paintEvent(QPaintEvent* e); // reimplementing it
private:
   QString m_strTip;
};
void MyToolBar::paintEvent(QPaintEvent* e)
{
        QPainter painter(this);
       qreal textWidth = fontMetrics().width(m_strTip);
       qreal textHeight =fontMetrics().height();
       qreal thisHeight= height();
       qreal topSpace = (thisHeight-textHeight)/2;
       QPointF textPot(width()-textWidth,topSpace+textHeight);
       painter.drawText(textPot,m_strTip);
  
      //
      QToolBar::paintEvent(e);
}
      

离线kimtaikee

只看该作者 2楼 发表于: 2011-02-28
试过已成功

快速回复
限100 字节
 
上一个 下一个