Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to make all objects shrinkable in QStatusBar
Forum Updated to NodeBB v4.3 + New Features

How to make all objects shrinkable in QStatusBar

Scheduled Pinned Locked Moved Unsolved General and Desktop
2 Posts 2 Posters 159 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    JackKuo
    wrote on last edited by JackKuo
    #1

    As this GIF.
    vs_code_shrink.gif

    In my implementation, I use addPermanentWidget() to add some QLabel, but only can make the last QLable shrinkable when window size change.

    JoeCFDJ 1 Reply Last reply
    0
    • J JackKuo

      As this GIF.
      vs_code_shrink.gif

      In my implementation, I use addPermanentWidget() to add some QLabel, but only can make the last QLable shrinkable when window size change.

      JoeCFDJ Offline
      JoeCFDJ Offline
      JoeCFD
      wrote on last edited by
      #2

      @JackKuo

      class ResizableWidget : public QWidget {
      public:
          ResizableWidget(QWidget *parent = nullptr) : QWidget(parent), resizing(false) {}
      
      protected:
          void mousePressEvent(QMouseEvent *event) override {
              if (event->button() == Qt::LeftButton) {
                  resizing = true;
                  lastPos = event->globalPos();
              }
          }
      
          void mouseMoveEvent(QMouseEvent *event) override {
              if (resizing) {
                  int deltaX = event->globalX() - lastPos.x();
                  int deltaY = event->globalY() - lastPos.y();
                  resize(width() + deltaX, height() + deltaY);
                  lastPos = event->globalPos();
              }
          }
      
          void mouseReleaseEvent(QMouseEvent *event) override {
              Q_UNUSED(event);
              resizing = false;
          }
      
          void paintEvent(QPaintEvent *event) override {
              Q_UNUSED(event);
              QPainter painter(this);
              painter.fillRect(rect(), Qt::blue);
          }
      
      private:
          bool resizing;
          QPoint lastPos;
      };
      
      
      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved