It causes significant inconsistency, even amongst KDE GUIs.
As an example:
#!/usr/bin/env python
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow
app = QApplication(sys.argv)
window = QMainWindow()
window.show()
app.exec()
produces
whereas
#!/usr/bin/env python
import sys
from PyQt6.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.show()
app.exec()
produces
This isn’t a problem during development, because the example provided would be a very strange thing to do, generally. However, I see this in a lot of situations when running 3rd-party software, especially proprietary:
This again might not immediately appear problematic, because some proprietary software provides issue trackers, so I can request that they inherit from a more suitable class. This would apply to the instances in which I see this in KDE software:
-
-
…unless they’re not using Qt.
Consequently, why is this a feature of MainWindow
, rather than KWin’s Breeze decoration? I expect this is deliberate.
Well if they are not using Qt or any KDE software, how would we know where to draw the line? This is why it’s left up to the application
@redstrate, below the titlebar…? Surely I’m missing something? If the titlebar were one pixel longer, and that one pixel was a line, then I imagine this would be fixed.
Think of it like this - surely QMainWindow
windows running in decoration styles without window borders must currently render a single top-line, but no lines for the rest of the borders. I can’t imagine why we would leave part of this to the application’s code, and part to the WM.
Which Plasma version are you on? I don’t even see a content-border here in any of your examples
@redstrate, apologies for the wait:
-
kcmshell6 kcm_about-distro
-
Operating System: Fedora Linux 40
KDE Plasma Version: 6.1.1
KDE Frameworks Version: 6.3.0
Qt Version: 6.7.2
Kernel Version: 6.9.8-200.fc40.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 7600X 6-Core Processor
Memory: 30.5 GiB of RAM
Graphics Processor: AMD Radeon RX 5700
Manufacturer: ASRock
Product Name: X670E Taichi
Packages
-
Python 3.12.4
dnf5 info python3
PS /home/RokeJulianLockhart> dnf5 info python3
Updating and loading repositories:
Repositories loaded.
Installed packages
Name : python3
Epoch : 0
Version : 3.12.4
Release : 1.fc40
Architecture : x86_64
Installed size : 31.5 KiB
Source : python3.12-3.12.4-1.fc40.src.rpm
From repository : <unknown>
Summary : Python 3.12 interpreter
URL : https://www.python.org/
License : Python-2.0.1
Description : Python 3.12 is an accessible, high-level, dynamically typed, interpreted
: programming language, designed with an emphasis on code readability.
: It includes an extensive standard library, and has a vast ecosystem of
: third-party libraries.
:
: The python3 package provides the "python3" executable: the reference
: interpreter for the Python language, version 3.
: The majority of its standard library is provided in the python3-libs package,
: which should be installed automatically along with python3.
: The remaining parts of the Python standard library are broken out into the
: python3-tkinter and python3-test packages, which may need to be installed
: separately.
:
: Documentation for Python is provided in the python3-docs package.
:
: Packages containing additional libraries for Python are generally named with
: the "python3-" prefix.
Vendor : Fedora Project
-
PyQt 6.7.0
dnf5 info python3-pyqt6
PS /home/RokeJulianLockhart> dnf5 info python3-pyqt6 Updating and loading repositories:
Repositories loaded.
Installed packages
Name : python3-pyqt6
Epoch : 0
Version : 6.7.0
Release : 5.fc40
Architecture : x86_64
Installed size : 5.4 MiB
Source : python-pyqt6-6.7.0-5.fc40.src.rpm
From repository : <unknown>
Summary : Python 3 bindings for Qt6
URL : http://www.riverbankcomputing.com/software/pyqt/
License : gpl-3.0-only
Description : Python 3 bindings for Qt6.
Vendor : Fedora Project
-
Steam 1.0.0.79
dnf5 info steam
PS /home/RokeJulianLockhart> dnf5 info steam
Updating and loading repositories:
Repositories loaded.
Available packages
Name : steam
Epoch : 0
Version : 1.0.0.79
Release : 5.fc40
Architecture : i686
Download size : 3.8 MiB
Installed size : 3.9 MiB
Source : steam-1.0.0.79-5.fc40.src.rpm
Repository : rpmfusion-nonfree-updates
Summary : Installer for the Steam software distribution service
URL : http://www.steampowered.com/
License : Steam License Agreement and MIT
Description : Steam is a software distribution service with an online store, automated
: installation, automatic updates, achievements, SteamCloud synchronized savegame
: and screenshot functionality, and many social features.
:
KWin Preferences
I don’t see anything that I could have enabled which would cause this, so I think this is part of Breeze:
The divider line seems to cause a slight padding problem with the QPushButton
when using QMainWindow
- it doesn’t have 1 px of padding at the top:
@redstrate, if, as you state, it’s not meant to have a line at the top (and yours apparently doesn’t) then the lack of padding would make sense (since it’s not meant to be there).