Il 09/08/2021 20:24 Cristián Maureira-Fredes ha scritto:
On 8/9/21 5:07 PM, pa...@paolodestefani.it wrote:
Hello list
I'm new to pyside but i played a lot with pyqt5 in the last few years.
I'm trying to port to pyside6 a simple application using snake_case
and true_property new options
But I immediately got stuck in this simple problem: how to set the
geometry of a widget ?
Before i used widget.setGeometry(10, 10, 50, 50) but how to do this
with true_property ?
from PySide6.QtWidgets import QApplication, QWidget
from PySide6 import QtCore
from __feature__ import true_property
app = QApplication([])
w = QWidget()
w.geometry = 10, 10, 50, 50
Traceback (most recent call last):
Python Shell, prompt 6, line 1
builtins.TypeError: 'PySide6.QtWidgets.QWidget.geometry.fset' called
with wrong argument types:
PySide6.QtWidgets.QWidget.geometry.fset(tuple)
Supported signatures:
PySide6.QtWidgets.QWidget.geometry.fset(PySide6.QtCore.QRect)
PySide6.QtWidgets.QWidget.geometry.fset(int, int, int, int)
How can i use the second sopported signature if not passing a tuple ?
-- Paolo De Stefani
Hey Paolo,
the issue lies on the nature of the setGeometry(x, y, w, h) function,
since it's just an overload that inside the code calls:
setGeometry(QtCore.QRect(x, y, w, h)), so it was designed
just for convenience.
The 'geometry' property *is* a QRect element,
so that's why one cannot assign a tuple, but a QRect object,
so for your specific case, you need to replace
w.geometry = 10, 10, 50, 50
by
w.geometry = QtCore.QRect(10, 10, 50, 50)
It doesn't sound too convenient,
but sadly it's the origin of the property itself,
which depends on a QRect element.
If you believe that accepting a tuple as a value
for the 'geometry' property is a valid use case,
that has even some positive effect in other sides
of PySide, feel free to open an issue on JIRA
https://bugreports.qt.io/projects/PYSIDE
so we can discuss on how difficult would it be
to implement and adapt the current bindings
for that use case.
Cheers!
--
Dr. Cristián Maureira-Fredes
R&D Manager
The Qt Company GmbH
Erich-Thilo-Str. 10
D-12489 Berlin
Geschäftsführer: Mika Pälsi,
Juha Varelius, Jouni Lintunen
Sitz der Gesellschaft: Berlin,
Registergericht: Amtsgericht
Charlottenburg, HRB 144331 B
_______________________________________________
PySide mailing list
PySide@qt-project.org
https://lists.qt-project.org/listinfo/pyside
For me it's ok to use QRect()
I know that probably the mesages are automatically generated BUT it may
be useful to omit in the error message the unavailable signature:
PySide6.QtWidgets.QWidget.geometry.fset(int, int, int, int)
--
Paolo De Stefani
_______________________________________________
PySide mailing list
PySide@qt-project.org
https://lists.qt-project.org/listinfo/pyside