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. Best practise in the implementation of QTabWidget and corner widget
QtWS25 Last Chance

Best practise in the implementation of QTabWidget and corner widget

Scheduled Pinned Locked Moved Unsolved Qt for Python
4 Posts 3 Posters 830 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.
  • N Offline
    N Offline
    NonNT
    wrote on last edited by
    #1
    class MyWidget(QWidget):
    
        def __init__(self, parent=None):
            super(MyWidget, self).__init__(parent)
    
            self.buttonInfo = QPushButton(self)
            self.buttonInfo.setIcon(QIcon('help-about.svg'))
            self.buttonInfo.setFlat(True)
            self.buttonInfo.clicked.connect(self.onButtonInfoClicked)
    
            self.tabs = QTabWidget()
            self.tabs.setDocumentMode(True)
            self.tabs.setMovable(True)
            self.tabs.setTabsClosable(True)
            self.tabs.setCornerWidget(self.buttonInfo)
            self.tabs.tabCloseRequested.connect(self.onButtonTabCloseClicked)
    
            layout = QVBoxLayout()
            layout.addWidget(self.tabs)
    
            self.setLayout(layout)
    
    
        ...
        def onButtonInfoClicked(self):
    
            title = QLabel()
    
            content = QWidget()
    
            button = QPushButton('Close')
            button.setShortcut(QKeySequence.Cancel)
            button.clicked.connect(self.onButtonInfoCloseClicked)
    
            layout = QVBoxLayout()
            layout.addWidget(title)
            layout.addWidget(content)
            layout.addWidget(button)
    
            self.page = QWidget()
            self.page.setLayout(layout)
    
            self.layout().removeWidget(self.tabs)
            self.tabs.setParent(None)
            self.layout().addWidget(self.page)
    
    
        def onButtonInfoCloseClicked(self):
    
            self.layout().removeWidget(self.page)
            self.page.setParent(None)
            self.layout().addWidget(self.tabs)
    
    1. What is the best practise in the implementation of QTabWidget and corner widget?
      It works, but is it the best solution?

    2. And how can I implement the shortcut without button to close the page?

    Thanks

    jsulmJ 1 Reply Last reply
    0
    • N Offline
      N Offline
      NonNT
      wrote on last edited by
      #2

      #2 is fixed:

      shortcut = QShortcut(QKeySequence.Cancel, self.page)
      shortcut.activated.connect(self.onButtonInfoCloseClicked)
      
      1 Reply Last reply
      0
      • N NonNT
        class MyWidget(QWidget):
        
            def __init__(self, parent=None):
                super(MyWidget, self).__init__(parent)
        
                self.buttonInfo = QPushButton(self)
                self.buttonInfo.setIcon(QIcon('help-about.svg'))
                self.buttonInfo.setFlat(True)
                self.buttonInfo.clicked.connect(self.onButtonInfoClicked)
        
                self.tabs = QTabWidget()
                self.tabs.setDocumentMode(True)
                self.tabs.setMovable(True)
                self.tabs.setTabsClosable(True)
                self.tabs.setCornerWidget(self.buttonInfo)
                self.tabs.tabCloseRequested.connect(self.onButtonTabCloseClicked)
        
                layout = QVBoxLayout()
                layout.addWidget(self.tabs)
        
                self.setLayout(layout)
        
        
            ...
            def onButtonInfoClicked(self):
        
                title = QLabel()
        
                content = QWidget()
        
                button = QPushButton('Close')
                button.setShortcut(QKeySequence.Cancel)
                button.clicked.connect(self.onButtonInfoCloseClicked)
        
                layout = QVBoxLayout()
                layout.addWidget(title)
                layout.addWidget(content)
                layout.addWidget(button)
        
                self.page = QWidget()
                self.page.setLayout(layout)
        
                self.layout().removeWidget(self.tabs)
                self.tabs.setParent(None)
                self.layout().addWidget(self.page)
        
        
            def onButtonInfoCloseClicked(self):
        
                self.layout().removeWidget(self.page)
                self.page.setParent(None)
                self.layout().addWidget(self.tabs)
        
        1. What is the best practise in the implementation of QTabWidget and corner widget?
          It works, but is it the best solution?

        2. And how can I implement the shortcut without button to close the page?

        Thanks

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

        @NonNT said in Best practise in the implementation of QTabWidget and corner widget:

        corner widget

        What do you mean by this?

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

        1 Reply Last reply
        0
        • N Offline
          N Offline
          NonNT
          wrote on last edited by
          #4

          @jsulm
          A widget shown in the corner of the tab widget.
          https://doc.qt.io/qt-5/qtabwidget.html#cornerWidget

          To display the page instead of the tabs widget, I'm just doing the following:

          1. remove tabs widget from the layout
          2. unparent tabs widget
          3. add page widget to the layout

          and vice versa to display the tabs widget again.

          But it is the best solution?

          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