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. Whither (many) examples?
Forum Updated to NodeBB v4.3 + New Features

Whither (many) examples?

Scheduled Pinned Locked Moved Unsolved General and Desktop
4 Posts 3 Posters 91 Views 3 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.
  • FeRDNYCF Offline
    FeRDNYCF Offline
    FeRDNYC
    wrote last edited by FeRDNYC
    #1

    2-3 years ago or so, it seems a war of attrition was waged in the examples subdir of qtbase. There have been a few outright removals, but the primary form this takes is an innocuous-sounding commit message reading, "Move so-and-so example to manual test".

    While that may sound like just a reorganization, what isn't immediately apparent is that any example so moved is no longer included in the Qt distribution. Which I think is a shame.

    And when I say there's been a lot of this, I mean that this is the result of running git log --oneline 'HEAD@{2 years ago}' examples/widgets/ inside qtbase:

    $ git log --oneline 'HEAD@{2 years ago}' examples/widgets/
    f6e7fdd4ad8 Refurbish the shaped clock example
    619ec1a6406 Refurbish the clock example
    7c59c5ed13d Examples: remove OpenGL code paths from painting examples
    ae39b163455 Convert tooltips example to snippets
    1fd1ffd03d6 standarddialogs: Don't assume QMessageBox::exec() returns clicked role
    4e8b54eb811 Preparations to deprecate QItemDelegate
    9de4133da29 Move Calendar Widget Example to UI Components category
    c3171938c3e Doc: Fix typo in examplecategory command
    c46551e2033 Doc: Fix documentation issues
    7ef93cbf688 Doc: Add example categories to Qt Widget examples
    381612f7944 Image Gestures Example: use QFileInfo for images file names
    f6e7fdd4ad8 Refurbish the shaped clock example
    619ec1a6406 Refurbish the clock example
    7c59c5ed13d Examples: remove OpenGL code paths from painting examples
    ae39b163455 Convert tooltips example to snippets
    1fd1ffd03d6 standarddialogs: Don't assume QMessageBox::exec() returns clicked ro
    le
    4e8b54eb811 Preparations to deprecate QItemDelegate
    9de4133da29 Move Calendar Widget Example to UI Components category
    c3171938c3e Doc: Fix typo in examplecategory command
    c46551e2033 Doc: Fix documentation issues
    7ef93cbf688 Doc: Add example categories to Qt Widget examples
    381612f7944 Image Gestures Example: use QFileInfo for images file names
    80520c2f52a Enable QWidget::grab() with QRhiWidget in the widget tree
    0b3390f33d4 examples/: fix compiler (GCC) warnings -Wsign-compare
    d48831612a3 examples: Add new subdirectory to examples/widgets CMakeLists
    72a453c6a8b Add QRhiWidget
    95ed8d1fd9c Fix the project name
    631cb589bf5 Doc fix: Use correct initials for Porter and Duff
    60f706063ae Doc: Update example category names
    d2db1d511dd Remove references to Application Example
    3040eadd832 Doc: Fix license of foreignwindows example
    72a153a7f57 Move simple widget mapper example to manual test
    8937169c190 Move simple dom model example to manual test
    9c71b924304 Move plug and paint example to manual test
    921337f98c5 Move pixelator example to manual test
    5654fbffd58 Move dials example to manual test
    81db1766dd0 Move textedit example to manual test
    40dbee13ebf Move tetrix example to manual test
    89b463ac2fa Move styles example to manual test
    1e954f9be89 Move stylesheets example to manual test
    c5ee7c8b8f2 Move main window example to manual test
    4b79834e1a8 Move MDI example to manual test
    cd7995de573 Move windowcontainer example to manual test
    604b2feca75 Modernize EditableTreeModel
    25027444a9b Modernize SimpleTreeModel example
    ec01f6ae8b2 Move movie example to manual test
    c7702638f33 Move pinch zoom example to manual test
    e00d8aa6a83 Move validators example to manual test
    a18c55e7380 Move item views puzzle example to manual test
    645e011d7dd Move interview example to manual test
    b8f588bea74 Move image viewer example to manual test
    c3fd8e911ea Move icons example to manual test
    95595d68bee Move graphis view flow layout example to manual test
    532e1c9bf67 Move fridge magnets example to manual test
    917282ea536 Move font sampler example to manual test
    0b6f5ae131a Move finger paint example to manual test
    9a320b037ce Move fade effect example to manual test
    7b4b5c839ba Move embedded dialogs example to manual test
    76ba4a04223 Move dynamic layouts example to manual test
    cefb1c9ca9a Move drag and drop puzzle example to manual test
    35063254fdb Fix missing references to 'Qt Widgets - Application Example'
    71f156fff07 Fix qdoc link warnings after moving a few examples to manual tests
    2a65849e10e Move dock widgets example to manual test
    fc0e82f58a8 Move dirview example to manual test
    65e7303ec90 Move digital clock example to manual test
    e46fb69a87c Move chart example to manual test
    3a8265a4290 Move character map example to manual test
    288c7ef5570 Move calendar example to manual test
    42b58f8cb41 Move border layout example to manual test
    7022d0e2236 Replace QDialog::exec() with open() in text edit example
    3ccf2f8308b Examples: "About &Qt" should show info about Qt, not quit
    b908c5cf289 Move scroller/graphicsview example into tests/manual
    a89f575be3a Move storageview example into tests/manual
    ce13dc8c2f7 Remove flattreeview example
    fc9aae544be Dialogs example: add checkbox for ColorDialogOption::NoEyeDropperButton
    17ddf2a6a52 Doc: Fix documentation issues
    eed17b3634a Examples: Remove unnecessary Q_INIT_RESOURCE calls
    a3dde7c93eb Move widgets blurpicker example to manual test
    eda71105ff9 Move widgets Application example to manual tests
    2a90efcfc2c Diagram Scene: Fix documentation word repetiton
    fda4da6df96 shortcuteditor example: Don't reference null-action
    b7c15f7f24c Remove the "classwizard" example
    11da92ba945 Convert "extension" dialog example into snippets
    8e94af2ed05 Revamp the shapedclock example
    

    As a result, the widgets example directory that used to look like this in the Qt 5.15.2 distribution (still does, technically, I suppose):

    $ cd ~/Qt/Examples; tree -d -L 3 Qt-5.15.2/widgets
    Qt-5.15.2/widgets/
    ├── animation
    │   ├── animatedtiles
    │   │   └── images
    │   ├── easing
    │   │   └── images
    │   ├── moveblocks
    │   ├── states
    │   ├── stickman
    │   │   └── animations
    │   └── sub-attaq
    │       └── pics
    ├── desktop
    │   ├── screenshot
    │   └── systray
    │       ├── doc
    │       └── images
    ├── dialogs
    │   ├── classwizard
    │   │   └── images
    │   ├── extension
    │   ├── findfiles
    │   ├── licensewizard
    │   │   └── images
    │   ├── standarddialogs
    │   ├── tabdialog
    │   └── trivialwizard
    ├── doc
    │   ├── images
    │   └── src
    ├── draganddrop
    │   ├── draggableicons
    │   │   └── images
    │   ├── draggabletext
    │   ├── dropsite
    │   ├── fridgemagnets
    │   └── puzzle
    ├── effects
    │   ├── blurpicker
    │   │   └── images
    │   └── fademessage
    ├── gallery
    ├── gestures
    │   └── imagegestures
    │       └── doc
    ├── graphicsview
    │   ├── anchorlayout
    │   ├── basicgraphicslayouts
    │   │   └── images
    │   ├── boxes
    │   │   └── 3rdparty
    │   ├── chip
    │   ├── collidingmice
    │   │   └── images
    │   ├── diagramscene
    │   │   └── images
    │   ├── dragdroprobot
    │   │   └── images
    │   ├── elasticnodes
    │   ├── embeddeddialogs
    │   ├── flowlayout
    │   ├── padnavigator
    │   │   └── images
    │   ├── simpleanchorlayout
    │   └── weatheranchorlayout
    │       └── images
    ├── itemviews
    │   ├── addressbook
    │   ├── basicsortfiltermodel
    │   ├── chart
    │   ├── coloreditorfactory
    │   ├── combowidgetmapper
    │   ├── customsortfiltermodel
    │   │   └── images
    │   ├── dirview
    │   ├── editabletreemodel
    │   ├── fetchmore
    │   ├── flattreeview
    │   ├── frozencolumn
    │   ├── interview
    │   │   └── images
    │   ├── pixelator
    │   │   └── images
    │   ├── puzzle
    │   ├── simpledommodel
    │   ├── simpletreemodel
    │   ├── simplewidgetmapper
    │   ├── spinboxdelegate
    │   ├── spreadsheet
    │   │   └── images
    │   ├── stardelegate
    │   └── storageview
    ├── layouts
    │   ├── basiclayouts
    │   ├── borderlayout
    │   ├── dynamiclayouts
    │   └── flowlayout
    ├── mac
    │   ├── qmaccocoaviewcontainer
    │   └── qmacnativewidget
    ├── mainwindows
    │   ├── application
    │   │   └── images
    │   ├── dockwidgets
    │   │   └── images
    │   ├── mainwindow
    │   ├── mdi
    │   │   └── images
    │   ├── menus
    │   └── sdi
    │       └── images
    ├── painting
    │   ├── affine
    │   ├── basicdrawing
    │   │   └── images
    │   ├── composition
    │   ├── concentriccircles
    │   ├── deform
    │   ├── fontsampler
    │   ├── gradients
    │   ├── imagecomposition
    │   │   └── images
    │   ├── painterpaths
    │   ├── pathstroke
    │   ├── shared
    │   │   └── images
    │   └── transformations
    ├── qnx
    │   └── foreignwindows
    ├── richtext
    │   ├── calendar
    │   ├── orderform
    │   ├── syntaxhighlighter
    │   └── textedit
    │       └── images
    ├── scroller
    │   └── graphicsview
    ├── statemachine
    │   ├── eventtransitions
    │   ├── factorial
    │   ├── pingpong
    │   ├── rogue
    │   ├── trafficlight
    │   └── twowaybutton
    ├── tools
    │   ├── codecs
    │   │   ├── doc
    │   │   ├── encodedfiles
    │   │   └── images
    │   ├── completer
    │   │   └── resources
    │   ├── customcompleter
    │   │   ├── doc
    │   │   └── resources
    │   ├── echoplugin
    │   │   ├── echowindow
    │   │   └── plugin
    │   ├── i18n
    │   │   └── translations
    │   ├── plugandpaint
    │   │   ├── app
    │   │   └── plugins
    │   ├── regexp
    │   ├── regularexpression
    │   │   └── images
    │   ├── settingseditor
    │   │   └── inifiles
    │   ├── styleplugin
    │   │   ├── plugin
    │   │   └── stylewindow
    │   ├── treemodelcompleter
    │   │   └── resources
    │   ├── undo
    │   │   └── icons
    │   └── undoframework
    │       └── images
    ├── touch
    │   ├── dials
    │   │   └── doc
    │   ├── fingerpaint
    │   │   └── doc
    │   ├── knobs
    │   │   └── doc
    │   └── pinchzoom
    │       ├── doc
    │       └── images
    ├── tutorials
    │   ├── addressbook
    │   │   ├── part1
    │   │   ├── part2
    │   │   ├── part3
    │   │   ├── part4
    │   │   ├── part5
    │   │   ├── part6
    │   │   └── part7
    │   ├── gettingStarted
    │   │   └── gsQt
    │   ├── modelview
    │   │   ├── 1_readonly
    │   │   ├── 2_formatting
    │   │   ├── 3_changingmodel
    │   │   ├── 4_headers
    │   │   ├── 5_edit
    │   │   ├── 6_treeview
    │   │   └── 7_selections
    │   ├── notepad
    │   │   └── images
    │   └── widgets
    │       ├── childwidget
    │       ├── nestedlayouts
    │       ├── toplevel
    │       └── windowlayout
    ├── widgets
    │   ├── analogclock
    │   ├── calculator
    │   ├── calendarwidget
    │   ├── charactermap
    │   ├── codeeditor
    │   ├── digitalclock
    │   ├── elidedlabel
    │   ├── groupbox
    │   ├── icons
    │   │   └── images
    │   ├── imageviewer
    │   ├── lineedits
    │   ├── mousebuttons
    │   ├── movie
    │   ├── scribble
    │   ├── shapedclock
    │   ├── sliders
    │   ├── spinboxes
    │   ├── styles
    │   │   └── images
    │   ├── stylesheet
    │   │   ├── images
    │   │   ├── layouts
    │   │   └── qss
    │   ├── tablet
    │   │   └── images
    │   ├── tetrix
    │   ├── tooltips
    │   │   └── images
    │   ├── validators
    │   ├── wiggly
    │   └── windowflags
    └── windowcontainer
    
    246 directories
    

    And like this in Qt 6.2.4:

    $ cd ~/Qt/Examples; tree -d -L 3 Qt-6.2.4/widgets
    Qt-6.2.4/widgets
    ├── animation
    │   └── easing
    │       └── images
    ├── desktop
    │   ├── screenshot
    │   └── systray
    │       ├── doc
    │       └── images
    ├── dialogs
    │   ├── classwizard
    │   │   └── images
    │   ├── extension
    │   ├── findfiles
    │   ├── licensewizard
    │   │   └── images
    │   ├── standarddialogs
    │   ├── tabdialog
    │   └── trivialwizard
    ├── doc
    │   ├── images
    │   └── src
    ├── draganddrop
    │   ├── draggableicons
    │   │   └── images
    │   ├── draggabletext
    │   ├── dropsite
    │   ├── fridgemagnets
    │   └── puzzle
    ├── effects
    │   ├── blurpicker
    │   │   └── images
    │   └── fademessage
    ├── gallery
    ├── gestures
    │   └── imagegestures
    │       └── doc
    ├── graphicsview
    │   ├── anchorlayout
    │   ├── basicgraphicslayouts
    │   │   └── images
    │   ├── chip
    │   ├── collidingmice
    │   │   └── images
    │   ├── diagramscene
    │   │   └── images
    │   ├── dragdroprobot
    │   │   └── images
    │   ├── elasticnodes
    │   ├── embeddeddialogs
    │   ├── flowlayout
    │   ├── simpleanchorlayout
    │   └── weatheranchorlayout
    │       └── images
    ├── itemviews
    │   ├── addressbook
    │   ├── basicsortfiltermodel
    │   ├── chart
    │   ├── coloreditorfactory
    │   ├── combowidgetmapper
    │   ├── customsortfiltermodel
    │   │   └── images
    │   ├── dirview
    │   ├── editabletreemodel
    │   ├── fetchmore
    │   ├── flattreeview
    │   ├── frozencolumn
    │   ├── interview
    │   │   └── images
    │   ├── pixelator
    │   │   └── images
    │   ├── puzzle
    │   ├── simpledommodel
    │   ├── simpletreemodel
    │   ├── simplewidgetmapper
    │   ├── spinboxdelegate
    │   ├── spreadsheet
    │   │   └── images
    │   ├── stardelegate
    │   └── storageview
    ├── layouts
    │   ├── basiclayouts
    │   ├── borderlayout
    │   ├── dynamiclayouts
    │   └── flowlayout
    ├── mainwindows
    │   ├── application
    │   │   └── images
    │   ├── dockwidgets
    │   │   └── images
    │   ├── mainwindow
    │   ├── mdi
    │   │   └── images
    │   ├── menus
    │   └── sdi
    │       └── images
    ├── painting
    │   ├── affine
    │   ├── basicdrawing
    │   │   └── images
    │   ├── composition
    │   ├── concentriccircles
    │   ├── deform
    │   ├── fontsampler
    │   ├── gradients
    │   ├── imagecomposition
    │   │   └── images
    │   ├── painterpaths
    │   ├── pathstroke
    │   ├── shared
    │   │   └── images
    │   └── transformations
    ├── qnx
    │   └── foreignwindows
    ├── richtext
    │   ├── calendar
    │   ├── orderform
    │   ├── syntaxhighlighter
    │   └── textedit
    │       └── images
    ├── scroller
    │   └── graphicsview
    ├── tools
    │   ├── completer
    │   │   └── resources
    │   ├── customcompleter
    │   │   ├── doc
    │   │   └── resources
    │   ├── echoplugin
    │   │   ├── echowindow
    │   │   └── plugin
    │   ├── i18n
    │   │   └── translations
    │   ├── plugandpaint
    │   │   ├── app
    │   │   └── plugins
    │   ├── regularexpression
    │   │   └── images
    │   ├── settingseditor
    │   │   └── inifiles
    │   ├── styleplugin
    │   │   ├── plugin
    │   │   └── stylewindow
    │   ├── treemodelcompleter
    │   │   └── resources
    │   ├── undo
    │   │   └── icons
    │   └── undoframework
    │       └── images
    ├── touch
    │   ├── dials
    │   │   └── doc
    │   ├── fingerpaint
    │   │   └── doc
    │   ├── knobs
    │   │   └── doc
    │   └── pinchzoom
    │       ├── doc
    │       └── images
    ├── tutorials
    │   ├── addressbook
    │   │   ├── part1
    │   │   ├── part2
    │   │   ├── part3
    │   │   ├── part4
    │   │   ├── part5
    │   │   ├── part6
    │   │   └── part7
    │   ├── gettingStarted
    │   │   └── gsQt
    │   ├── modelview
    │   │   ├── 1_readonly
    │   │   ├── 2_formatting
    │   │   ├── 3_changingmodel
    │   │   ├── 4_headers
    │   │   ├── 5_edit
    │   │   ├── 6_treeview
    │   │   └── 7_selections
    │   ├── notepad
    │   │   └── images
    │   └── widgets
    │       ├── childwidget
    │       ├── nestedlayouts
    │       ├── toplevel
    │       └── windowlayout
    ├── widgets
    │   ├── analogclock
    │   ├── calculator
    │   ├── calendarwidget
    │   ├── charactermap
    │   ├── codeeditor
    │   ├── digitalclock
    │   ├── elidedlabel
    │   ├── groupbox
    │   ├── icons
    │   │   └── images
    │   ├── imageviewer
    │   ├── lineedits
    │   ├── mousebuttons
    │   ├── movie
    │   ├── scribble
    │   ├── shapedclock
    │   ├── sliders
    │   ├── spinboxes
    │   ├── styles
    │   │   └── images
    │   ├── stylesheet
    │   │   ├── images
    │   │   ├── layouts
    │   │   └── qss
    │   ├── tablet
    │   │   └── images
    │   ├── tetrix
    │   ├── tooltips
    │   │   └── images
    │   ├── validators
    │   ├── wiggly
    │   └── windowflags
    └── windowcontainer
    
    219 directories
    

    Now looks like this in Qt 6.10.0rc1:

    $ cd ~/Qt/Examples; tree -d -L 3 Qt-6.10.0/widgets
    Qt-6.10.0/widgets
    ├── animation
    │   └── easing
    │       └── images
    ├── desktop
    │   ├── screenshot
    │   └── systray
    │       ├── doc
    │       └── images
    ├── dialogs
    │   ├── licensewizard
    │   │   └── images
    │   ├── standarddialogs
    │   ├── tabdialog
    │   └── trivialwizard
    ├── doc
    │   ├── images
    │   └── src
    ├── draganddrop
    │   ├── draggableicons
    │   │   └── images
    │   ├── draggabletext
    │   └── dropsite
    ├── gallery
    ├── gestures
    │   └── imagegestures
    │       └── doc
    ├── graphicsview
    │   ├── basicgraphicslayouts
    │   │   └── images
    │   ├── chip
    │   ├── collidingmice
    │   │   └── images
    │   ├── diagramscene
    │   │   └── images
    │   ├── dragdroprobot
    │   │   └── images
    │   ├── elasticnodes
    │   └── simpleanchorlayout
    ├── itemviews
    │   ├── addressbook
    │   ├── basicsortfiltermodel
    │   ├── combowidgetmapper
    │   ├── customsortfiltermodel
    │   │   └── images
    │   ├── editabletreemodel
    │   ├── fetchmore
    │   ├── frozencolumn
    │   ├── simpletreemodel
    │   ├── spreadsheet
    │   │   └── images
    │   └── stardelegate
    ├── layouts
    │   ├── basiclayouts
    │   └── flowlayout
    ├── mainwindows
    │   └── menus
    ├── painting
    │   ├── affine
    │   ├── basicdrawing
    │   │   └── images
    │   ├── composition
    │   ├── deform
    │   ├── gradients
    │   ├── imagecomposition
    │   │   └── images
    │   ├── painterpaths
    │   ├── pathstroke
    │   ├── shared
    │   │   └── images
    │   └── transformations
    ├── qnx
    │   └── foreignwindows
    ├── rhi
    │   ├── cuberhiwidget
    │   │   ├── shader_assets
    │   │   └── shaders
    │   └── simplerhiwidget
    │       ├── shader_assets
    │       └── shaders
    ├── richtext
    │   ├── orderform
    │   └── syntaxhighlighter
    ├── tools
    │   ├── completer
    │   │   └── resources
    │   ├── customcompleter
    │   │   ├── doc
    │   │   └── resources
    │   ├── regularexpression
    │   │   └── images
    │   ├── treemodelcompleter
    │   │   └── resources
    │   └── undoframework
    │       └── icons
    ├── touch
    │   └── knobs
    │       └── doc
    ├── tutorials
    │   ├── modelview
    │   │   ├── 1_readonly
    │   │   ├── 2_formatting
    │   │   ├── 3_changingmodel
    │   │   ├── 4_headers
    │   │   ├── 5_edit
    │   │   ├── 6_treeview
    │   │   └── 7_selections
    │   ├── notepad
    │   │   └── images
    │   └── widgets
    │       ├── childwidget
    │       ├── nestedlayouts
    │       ├── toplevel
    │       └── windowlayout
    └── widgets
        ├── analogclock
        ├── calculator
        ├── calendarwidget
        ├── lineedits
        ├── scribble
        ├── shapedclock
        ├── shortcuteditor
        ├── sliders
        ├── spinboxes
        ├── tablet
        │   └── images
        └── windowflags
    
    127 directories
    

    Among the conspicuously absent:

    • ALL of the mainwindow examples except for menu
      • No application
      • No dockwidgets
      • No mdi
      • No sdi
    • Half of the dialogs examples
    • Half of the draganddrop examples
    • 1/3 of the graphicsview examples
    • OVER half of the itemviews examples
    • Half of the layouts examples (though that only takes it down from 4 to 2, as that category was always lacking anyway)
    • tools and touch have both been gutted
    • widgets is down from 26 examples to 12

    Granted, this is offset slightly by other categories that have been shored up. The quick/ tree went from 238 directories (6.2.4) to 254 directories (6.10.0rc1), quick3d 124 -> 223, and quickcontrols 83 -> 92. wayland/ gained 16 directories, up from 51 to 67, and corelib/ gained 8 (44->52). linguist/ is up from 8 to 14. And multimedia/ went from 43 -> 60, though I assume that's due to it subsuming most or all of the now-absent multimediawidgets/ tree (previously 21 directories).

    (I say "directories" instead of "examples" here, because some examples contain asset folders like doc, resources, images which my recursive directory listing counted separately. In the previous bulleted list, I was careful to count only top-level example directories.)

    The example-pocalypse is significant, in my view, because every example lost is a Qt feature that users no longer have a complete, working project to learn from and emulate. The "manual test" examples' code being embedded in the API documentation is not, in my mind, the same thing as a complete, working example project.

    1 Reply Last reply
    1
    • FeRDNYCF Offline
      FeRDNYCF Offline
      FeRDNYC
      wrote last edited by
      #2

      I bring this up now because I recently discovered that QDockWidget floating is completely broken in Linux on Wayland, at least when running under GNOME Shell/Mutter 48. Undocking a dock widget causes it to pop out as a floating frame with no (OS) title bar, and it cannot be dragged to reposition it anywhere else on the screen. (Without using Meta-drag, which is a Mutter keyboard shortcut for "move any window by dragging it from any point inside its boundaries".) The only drags that work without Meta are into the QMainWindow's dock areas (with no visual feedback from the floating dock), at which point it will re-dock itself. But a non-movable window stretches the definition of "floating" pretty far.

      This could easily be discovered/confirmed by anyone who builds and runs Qt's example dockwidgets project on Linux-Wayland-GNOME, since that example clearly exhibits the broken behavior — if only that code was still distributed as an example!

      (The Python version is still part of Qt for Python's examples, and is just as broken as the C++ version.)

      JonBJ SGaistS 2 Replies Last reply
      0
      • FeRDNYCF FeRDNYC

        I bring this up now because I recently discovered that QDockWidget floating is completely broken in Linux on Wayland, at least when running under GNOME Shell/Mutter 48. Undocking a dock widget causes it to pop out as a floating frame with no (OS) title bar, and it cannot be dragged to reposition it anywhere else on the screen. (Without using Meta-drag, which is a Mutter keyboard shortcut for "move any window by dragging it from any point inside its boundaries".) The only drags that work without Meta are into the QMainWindow's dock areas (with no visual feedback from the floating dock), at which point it will re-dock itself. But a non-movable window stretches the definition of "floating" pretty far.

        This could easily be discovered/confirmed by anyone who builds and runs Qt's example dockwidgets project on Linux-Wayland-GNOME, since that example clearly exhibits the broken behavior — if only that code was still distributed as an example!

        (The Python version is still part of Qt for Python's examples, and is just as broken as the C++ version.)

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote last edited by
        #3

        @FeRDNYC
        You know far more than I, but I will just say that under Ubuntu 24.04, GNOME, I have given up on Wayland and reverted to Xorg. There are just too many issues with Wayland, both in Qt and non-Qt applications. I do not think I am alone in this.

        1 Reply Last reply
        1
        • FeRDNYCF FeRDNYC

          I bring this up now because I recently discovered that QDockWidget floating is completely broken in Linux on Wayland, at least when running under GNOME Shell/Mutter 48. Undocking a dock widget causes it to pop out as a floating frame with no (OS) title bar, and it cannot be dragged to reposition it anywhere else on the screen. (Without using Meta-drag, which is a Mutter keyboard shortcut for "move any window by dragging it from any point inside its boundaries".) The only drags that work without Meta are into the QMainWindow's dock areas (with no visual feedback from the floating dock), at which point it will re-dock itself. But a non-movable window stretches the definition of "floating" pretty far.

          This could easily be discovered/confirmed by anyone who builds and runs Qt's example dockwidgets project on Linux-Wayland-GNOME, since that example clearly exhibits the broken behavior — if only that code was still distributed as an example!

          (The Python version is still part of Qt for Python's examples, and is just as broken as the C++ version.)

          SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote last edited by
          #4

          @FeRDNYC hi,

          This being a user forum you might not reaching the right people.

          I would recommend opening a ticket on the bug report system to spark the discussion around the issue of moving the examples.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          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