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. Qt Stylesheet mystery
Forum Updated to NodeBB v4.3 + New Features

Qt Stylesheet mystery

Scheduled Pinned Locked Moved General and Desktop
4 Posts 3 Posters 5.1k Views 1 Watching
  • 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.
  • R Offline
    R Offline
    ronM71
    wrote on 30 Jun 2011, 16:44 last edited by
    #1

    My Desktop Qt app has a large stylesheet applied. It's applied for the QApplication derived class I am using:

    @this->ApplyStyleSheet(":/qss/default.qss");@

    It works well for all QWidget objects I define and use. (using *.ui files).

    My problem begins when i promote one of my QWidgets in the *.ui file I'm using to one of my own QWidget derived classes.

    When my widget was QWidget, the following worked and changed the background image:

    @QWidget#myWidget {
    background: transparent;
    background-image: url(:/images/bg_img.png);
    background-repeat: repeat-x;
    }@

    When I promoted the element to my custom QWidget derived class and changed to:

    @QMyDerivedClass#myWidget {
    background: transparent;
    background-image: url(:/images/bg_img.png);
    background-repeat: repeat-x;
    }@

    I no longer see my background image. Obviously I am missing something. What is it... I hope one of you knows.

    1 Reply Last reply
    0
    • E Offline
      E Offline
      Eddy
      wrote on 30 Jun 2011, 16:48 last edited by
      #2

      I've seen this before with promoting widgets.

      The only solution i could find is to do al stylesheet stuff in code not in Qt Designer.

      Qt Certified Specialist
      www.edalsolutions.be

      1 Reply Last reply
      0
      • D Offline
        D Offline
        dangelog
        wrote on 30 Jun 2011, 16:50 last edited by
        #3

        It's a FAQ. Read the entry for QWidget in here: [[doc:stylesheet-reference]]

        [quote]
        If you subclass from QWidget, you need to provide a paintEvent for your custom QWidget as below:
        @
        void CustomWidget::paintEvent(QPaintEvent *)
        {
        QStyleOption opt;
        opt.init(this);
        QPainter p(this);
        style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
        }
        @

        The above code is a no-operation if there is no stylesheet set.

        Warning: Make sure you define the Q_OBJECT macro for your custom widget.
        [/quote]

        Software Engineer
        KDAB (UK) Ltd., a KDAB Group company

        1 Reply Last reply
        0
        • R Offline
          R Offline
          ronM71
          wrote on 30 Jun 2011, 18:31 last edited by
          #4

          that did it. my bad. thanks.

          1 Reply Last reply
          0

          1/4

          30 Jun 2011, 16:44

          • Login

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