Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. Drop shadow not working
Forum Updated to NodeBB v4.3 + New Features

Drop shadow not working

Scheduled Pinned Locked Moved Unsolved Qt for Python
21 Posts 5 Posters 3.6k Views 2 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.
  • poppypelt12P poppypelt12

    @SGaist here is what i wrote:
    import sys

    from PySide6.QtWidgets import QApplication, QMainWindow, QDialog, QMessageBox, QPushButton, QGraphicsDropShadowEffect, QTableWidget, QTableWidgetItem
    from PySide6.QtGui import QIcon, QPixmap
    from PySide6.QtCore import Qt, QSize, QPropertyAnimation, QEasingCurve, QPoint

    from ui_form import Ui_MainWindow

    import re

    class MainWindow(QMainWindow):
    def init(self, parent=None):
    super().init(parent)
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)
    for child in self.ui.grid.findChildren(QPushButton):
    self.apply_drop_shadow(child)

        shadow = QGraphicsDropShadowEffect()
        shadow.setBlurRadius(10)  # Adjust the blur radius as needed
        shadow.setXOffset(5)      # Adjust the X offset as needed
        shadow.setYOffset(5)      # Adjust the Y offset as needed
    
        # Apply the drop shadow effect to the button
        self.ui.legendButton.setGraphicsEffect(shadow)
        self.ui.legend.setMinimumWidth(286)
        self.ui.legendButton.setVisible(True)
        #self.apply_drop_shadow(self.ui.legendButton)
        self.ui.button_area.setGeometry(70, 0, 1800, 1080)
        self.setWindowTitle("Vital Alert")
        self.setWindowIcon(QIcon("logo.png"))
    
        self.populate_buttons()
        self.set_icons()
    
        self.showFullScreen()
    
    def apply_drop_shadow(self, widget):
        shadow = QGraphicsDropShadowEffect(blurRadius=5, xOffset=10, yOffset=10)
        widget.setGraphicsEffect(shadow)
    

    if name == "main":
    app = QApplication(sys.argv)
    widget = MainWindow()
    widget.show()
    sys.exit(app.exec())

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #4

    @poppypelt12 Please use code tags properly, especially when posting Python code where indentation is part of the syntax!

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    poppypelt12P 1 Reply Last reply
    0
    • jsulmJ jsulm

      @poppypelt12 Please use code tags properly, especially when posting Python code where indentation is part of the syntax!

      poppypelt12P Offline
      poppypelt12P Offline
      poppypelt12
      wrote on last edited by
      #5

      @jsulm Sorry, I am a beginner haha :) i copied the code and pasted it but my program is more complex but this is the relevant part. Did i do something wrong with how i wrote the drop shadow or did i leave out a library? :(

      Live, laugh, love

      JonBJ 1 Reply Last reply
      0
      • poppypelt12P poppypelt12

        @jsulm Sorry, I am a beginner haha :) i copied the code and pasted it but my program is more complex but this is the relevant part. Did i do something wrong with how i wrote the drop shadow or did i leave out a library? :(

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by
        #6

        @poppypelt12
        We are just asking you: when you paste code blocks, please enclose them in the forum's Code tags (the </> button). This will post all the code literally, including spacing, which is so vital in Python.

        poppypelt12P 1 Reply Last reply
        0
        • JonBJ JonB

          @poppypelt12
          We are just asking you: when you paste code blocks, please enclose them in the forum's Code tags (the </> button). This will post all the code literally, including spacing, which is so vital in Python.

          poppypelt12P Offline
          poppypelt12P Offline
          poppypelt12
          wrote on last edited by
          #7

          @JonB Okay, here is the code with the forums code tags ^^

          <class MainWindow(QMainWindow):
          def init(self, parent=None):
          super().init(parent)
          self.ui = Ui_MainWindow()
          self.ui.setupUi(self)

              self.room_instance = Room(None, None, None)
              self.data=self.room_instance.read_data_from_file("rooms.json")
          
              self.ui.settings.clicked.connect(self.showSettings)
              self.ui.panels.clicked.connect(self.showPanels)
              self.ui.legendButton.clicked.connect(self.legend_change_size)
          
              for child in self.ui.grid.findChildren(QPushButton):
                  self.apply_drop_shadow(child)
          
              shadow = QGraphicsDropShadowEffect()
              shadow.setBlurRadius(10)  # Adjust the blur radius as needed
              shadow.setXOffset(5)      # Adjust the X offset as needed
              shadow.setYOffset(5)      # Adjust the Y offset as needed
          
              # Apply the drop shadow effect to the button
              self.ui.legendButton.setGraphicsEffect(shadow)
              self.ui.legend.setMinimumWidth(286)
              self.ui.legendButton.setVisible(True)
              #self.apply_drop_shadow(self.ui.legendButton)
              self.ui.button_area.setGeometry(70, 0, 1800, 1080)
              self.setWindowTitle("Vital Alert")
              self.setWindowIcon(QIcon("logo.png"))
          
              self.populate_buttons()
              self.set_icons()
          
              self.showFullScreen()
          
          def apply_drop_shadow(self, widget):
              shadow = QGraphicsDropShadowEffect(blurRadius=5, xOffset=10, yOffset=10)
              widget.setGraphicsEffect(shadow)
          

          />

          Live, laugh, love

          jsulmJ J.HilkJ 2 Replies Last reply
          0
          • poppypelt12P poppypelt12

            @JonB Okay, here is the code with the forums code tags ^^

            <class MainWindow(QMainWindow):
            def init(self, parent=None):
            super().init(parent)
            self.ui = Ui_MainWindow()
            self.ui.setupUi(self)

                self.room_instance = Room(None, None, None)
                self.data=self.room_instance.read_data_from_file("rooms.json")
            
                self.ui.settings.clicked.connect(self.showSettings)
                self.ui.panels.clicked.connect(self.showPanels)
                self.ui.legendButton.clicked.connect(self.legend_change_size)
            
                for child in self.ui.grid.findChildren(QPushButton):
                    self.apply_drop_shadow(child)
            
                shadow = QGraphicsDropShadowEffect()
                shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                shadow.setXOffset(5)      # Adjust the X offset as needed
                shadow.setYOffset(5)      # Adjust the Y offset as needed
            
                # Apply the drop shadow effect to the button
                self.ui.legendButton.setGraphicsEffect(shadow)
                self.ui.legend.setMinimumWidth(286)
                self.ui.legendButton.setVisible(True)
                #self.apply_drop_shadow(self.ui.legendButton)
                self.ui.button_area.setGeometry(70, 0, 1800, 1080)
                self.setWindowTitle("Vital Alert")
                self.setWindowIcon(QIcon("logo.png"))
            
                self.populate_buttons()
                self.set_icons()
            
                self.showFullScreen()
            
            def apply_drop_shadow(self, widget):
                shadow = QGraphicsDropShadowEffect(blurRadius=5, xOffset=10, yOffset=10)
                widget.setGraphicsEffect(shadow)
            

            />

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #8

            @poppypelt12 said in Drop shadow not working:

            here is the code with the forums code tags

            Better, but still not correct

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            poppypelt12P 1 Reply Last reply
            0
            • poppypelt12P poppypelt12

              @JonB Okay, here is the code with the forums code tags ^^

              <class MainWindow(QMainWindow):
              def init(self, parent=None):
              super().init(parent)
              self.ui = Ui_MainWindow()
              self.ui.setupUi(self)

                  self.room_instance = Room(None, None, None)
                  self.data=self.room_instance.read_data_from_file("rooms.json")
              
                  self.ui.settings.clicked.connect(self.showSettings)
                  self.ui.panels.clicked.connect(self.showPanels)
                  self.ui.legendButton.clicked.connect(self.legend_change_size)
              
                  for child in self.ui.grid.findChildren(QPushButton):
                      self.apply_drop_shadow(child)
              
                  shadow = QGraphicsDropShadowEffect()
                  shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                  shadow.setXOffset(5)      # Adjust the X offset as needed
                  shadow.setYOffset(5)      # Adjust the Y offset as needed
              
                  # Apply the drop shadow effect to the button
                  self.ui.legendButton.setGraphicsEffect(shadow)
                  self.ui.legend.setMinimumWidth(286)
                  self.ui.legendButton.setVisible(True)
                  #self.apply_drop_shadow(self.ui.legendButton)
                  self.ui.button_area.setGeometry(70, 0, 1800, 1080)
                  self.setWindowTitle("Vital Alert")
                  self.setWindowIcon(QIcon("logo.png"))
              
                  self.populate_buttons()
                  self.set_icons()
              
                  self.showFullScreen()
              
              def apply_drop_shadow(self, widget):
                  shadow = QGraphicsDropShadowEffect(blurRadius=5, xOffset=10, yOffset=10)
                  widget.setGraphicsEffect(shadow)
              

              />

              J.HilkJ Online
              J.HilkJ Online
              J.Hilk
              Moderators
              wrote on last edited by
              #9

              @poppypelt12
              6343ea52-0d90-4681-9e9d-a90a09230d40-image.png


              Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


              Q: What's that?
              A: It's blue light.
              Q: What does it do?
              A: It turns blue.

              poppypelt12P 1 Reply Last reply
              0
              • J.HilkJ J.Hilk

                @poppypelt12
                6343ea52-0d90-4681-9e9d-a90a09230d40-image.png

                poppypelt12P Offline
                poppypelt12P Offline
                poppypelt12
                wrote on last edited by
                #10

                @J-Hilk

                import sys
                
                from PySide6.QtWidgets import QApplication, QMainWindow, QDialog, QMessageBox, QPushButton, QGraphicsDropShadowEffect, QTableWidget, QTableWidgetItem
                from PySide6.QtGui import QIcon, QPixmap
                from PySide6.QtCore import Qt, QSize, QPropertyAnimation, QEasingCurve, QPoint
                
                from ui_form import Ui_MainWindow
                from add_room import AddRoomDialog
                from room import Room
                from settings import Settings
                from panels import Panels
                
                import re
                
                class MainWindow(QMainWindow):
                    def __init__(self, parent=None):
                        super().__init__(parent)
                        self.ui = Ui_MainWindow()
                        self.ui.setupUi(self)
                
                        self.ui.legendButton.clicked.connect(self.legend_change_size)
                
                        for child in self.ui.grid.findChildren(QPushButton):
                            self.apply_drop_shadow(child)
                
                        shadow = QGraphicsDropShadowEffect()
                        shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                        shadow.setXOffset(5)      # Adjust the X offset as needed
                        shadow.setYOffset(5)      # Adjust the Y offset as needed
                
                        # Apply the drop shadow effect to the button
                        self.ui.legendButton.setGraphicsEffect(shadow)
                        self.ui.legend.setMinimumWidth(286)
                        self.ui.legendButton.setVisible(True)
                        #self.apply_drop_shadow(self.ui.legendButton)
                        self.ui.button_area.setGeometry(70, 0, 1800, 1080)
                        self.setWindowTitle("Vital Alert")
                        self.setWindowIcon(QIcon("logo.png"))
                
                        self.populate_buttons()
                        self.set_icons()
                
                        self.showFullScreen()
                
                    def apply_drop_shadow(self, widget):
                        shadow = QGraphicsDropShadowEffect(blurRadius=5, xOffset=10, yOffset=10)
                        widget.setGraphicsEffect(shadow)
                
                

                thank you for the inpot

                Live, laugh, love

                1 Reply Last reply
                1
                • jsulmJ jsulm

                  @poppypelt12 said in Drop shadow not working:

                  here is the code with the forums code tags

                  Better, but still not correct

                  poppypelt12P Offline
                  poppypelt12P Offline
                  poppypelt12
                  wrote on last edited by
                  #11

                  @jsulm Could you please tell me what you think i did wrong? It is very important to me..! I think you are the only one who can help me with this...

                  Live, laugh, love

                  jsulmJ 1 Reply Last reply
                  0
                  • poppypelt12P poppypelt12

                    @jsulm Could you please tell me what you think i did wrong? It is very important to me..! I think you are the only one who can help me with this...

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #12

                    @poppypelt12 Did you actually check whether self.ui.grid.findChildren(QPushButton) returned anything?

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    poppypelt12P 1 Reply Last reply
                    0
                    • jsulmJ jsulm

                      @poppypelt12 Did you actually check whether self.ui.grid.findChildren(QPushButton) returned anything?

                      poppypelt12P Offline
                      poppypelt12P Offline
                      poppypelt12
                      wrote on last edited by
                      #13

                      @jsulm I dont know, but I tried doing it in another project on a regular single button, and it didn't work in there either, does it work for you?

                      Live, laugh, love

                      jsulmJ 1 Reply Last reply
                      0
                      • poppypelt12P poppypelt12

                        @jsulm I dont know, but I tried doing it in another project on a regular single button, and it didn't work in there either, does it work for you?

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #14

                        @poppypelt12 Well, without ui_form I can't run your script.

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        poppypelt12P 1 Reply Last reply
                        0
                        • jsulmJ jsulm

                          @poppypelt12 Well, without ui_form I can't run your script.

                          poppypelt12P Offline
                          poppypelt12P Offline
                          poppypelt12
                          wrote on last edited by
                          #15

                          @jsulm but can you add a drop shadow at all to any button? please if i cant figure this out i will cry :(

                          Live, laugh, love

                          jsulmJ 2 Replies Last reply
                          0
                          • poppypelt12P poppypelt12

                            @jsulm but can you add a drop shadow at all to any button? please if i cant figure this out i will cry :(

                            jsulmJ Offline
                            jsulmJ Offline
                            jsulm
                            Lifetime Qt Champion
                            wrote on last edited by
                            #16

                            @poppypelt12 You were asked to write MINIMAL script. You did not.
                            Here, I did it for you:

                            import sys
                            
                            from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QGraphicsDropShadowEffect
                            
                            class MainWindow(QMainWindow):
                                def __init__(self, parent=None):
                                    super().__init__(parent)
                            
                                    shadow = QGraphicsDropShadowEffect()
                                    shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                                    shadow.setXOffset(5)      # Adjust the X offset as needed
                                    shadow.setYOffset(5)      # Adjust the Y offset as needed
                            
                                    self.button = QPushButton(self)
                                    self.button.setGraphicsEffect(shadow)
                            
                            if __name__ == '__main__':
                                app = QApplication()
                            
                                mainWindow = MainWindow()
                                mainWindow.show()
                            
                                app.exec()
                            

                            And no, I don't see any drop shadow.

                            https://forum.qt.io/topic/113070/qt-code-of-conduct

                            poppypelt12P 1 Reply Last reply
                            0
                            • poppypelt12P poppypelt12

                              @jsulm but can you add a drop shadow at all to any button? please if i cant figure this out i will cry :(

                              jsulmJ Offline
                              jsulmJ Offline
                              jsulm
                              Lifetime Qt Champion
                              wrote on last edited by
                              #17

                              @poppypelt12 This works:

                              import sys
                              
                              from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QGraphicsDropShadowEffect
                              
                              class MainWindow(QMainWindow):
                                  def __init__(self, parent=None):
                                      super().__init__(parent)
                              
                                      self.shadow = QGraphicsDropShadowEffect()
                                      self.shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                                      self.shadow.setXOffset(5)      # Adjust the X offset as needed
                                      self.shadow.setYOffset(5)      # Adjust the Y offset as needed
                              
                                      self.button = QPushButton(self)
                                      self.button.setGraphicsEffect(self.shadow)
                              
                              if __name__ == '__main__':
                                  app = QApplication()
                              
                                  mainWindow = MainWindow()
                                  mainWindow.show()
                              
                                  app.exec()
                              

                              Do you know why? Hint: think about life time of "shadow" in the previous code.

                              https://forum.qt.io/topic/113070/qt-code-of-conduct

                              poppypelt12P 2 Replies Last reply
                              2
                              • jsulmJ jsulm

                                @poppypelt12 You were asked to write MINIMAL script. You did not.
                                Here, I did it for you:

                                import sys
                                
                                from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QGraphicsDropShadowEffect
                                
                                class MainWindow(QMainWindow):
                                    def __init__(self, parent=None):
                                        super().__init__(parent)
                                
                                        shadow = QGraphicsDropShadowEffect()
                                        shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                                        shadow.setXOffset(5)      # Adjust the X offset as needed
                                        shadow.setYOffset(5)      # Adjust the Y offset as needed
                                
                                        self.button = QPushButton(self)
                                        self.button.setGraphicsEffect(shadow)
                                
                                if __name__ == '__main__':
                                    app = QApplication()
                                
                                    mainWindow = MainWindow()
                                    mainWindow.show()
                                
                                    app.exec()
                                

                                And no, I don't see any drop shadow.

                                poppypelt12P Offline
                                poppypelt12P Offline
                                poppypelt12
                                wrote on last edited by
                                #18

                                @jsulm Then pleaese how can i make a drop shadow? i searched everywhere on the internet but there is not much info on this and most of it is outdated, i really need your help

                                Live, laugh, love

                                1 Reply Last reply
                                0
                                • jsulmJ jsulm

                                  @poppypelt12 This works:

                                  import sys
                                  
                                  from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QGraphicsDropShadowEffect
                                  
                                  class MainWindow(QMainWindow):
                                      def __init__(self, parent=None):
                                          super().__init__(parent)
                                  
                                          self.shadow = QGraphicsDropShadowEffect()
                                          self.shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                                          self.shadow.setXOffset(5)      # Adjust the X offset as needed
                                          self.shadow.setYOffset(5)      # Adjust the Y offset as needed
                                  
                                          self.button = QPushButton(self)
                                          self.button.setGraphicsEffect(self.shadow)
                                  
                                  if __name__ == '__main__':
                                      app = QApplication()
                                  
                                      mainWindow = MainWindow()
                                      mainWindow.show()
                                  
                                      app.exec()
                                  

                                  Do you know why? Hint: think about life time of "shadow" in the previous code.

                                  poppypelt12P Offline
                                  poppypelt12P Offline
                                  poppypelt12
                                  wrote on last edited by
                                  #19

                                  @jsulm Oh my god thank you so much!

                                  Live, laugh, love

                                  1 Reply Last reply
                                  0
                                  • jsulmJ jsulm

                                    @poppypelt12 This works:

                                    import sys
                                    
                                    from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QGraphicsDropShadowEffect
                                    
                                    class MainWindow(QMainWindow):
                                        def __init__(self, parent=None):
                                            super().__init__(parent)
                                    
                                            self.shadow = QGraphicsDropShadowEffect()
                                            self.shadow.setBlurRadius(10)  # Adjust the blur radius as needed
                                            self.shadow.setXOffset(5)      # Adjust the X offset as needed
                                            self.shadow.setYOffset(5)      # Adjust the Y offset as needed
                                    
                                            self.button = QPushButton(self)
                                            self.button.setGraphicsEffect(self.shadow)
                                    
                                    if __name__ == '__main__':
                                        app = QApplication()
                                    
                                        mainWindow = MainWindow()
                                        mainWindow.show()
                                    
                                        app.exec()
                                    

                                    Do you know why? Hint: think about life time of "shadow" in the previous code.

                                    poppypelt12P Offline
                                    poppypelt12P Offline
                                    poppypelt12
                                    wrote on last edited by
                                    #20

                                    @jsulm i am very thankful johann

                                    Live, laugh, love

                                    jsulmJ 1 Reply Last reply
                                    0
                                    • poppypelt12P poppypelt12

                                      @jsulm i am very thankful johann

                                      jsulmJ Offline
                                      jsulmJ Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #21

                                      @poppypelt12 It is common mistake to declare a local variable which is destroyed as soon as it goes out of scope. Just be careful when declaring variables and think about scope and life time of objects.

                                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      1 Reply Last reply
                                      1

                                      • Login

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