QUiLoader loading CustomWidget, called setter twice
-
Hello,
i have a question about the QUiLoader. I load an ui-file with quiloader.load(&file). The ui-file contains some customwidget. The setters from my customwidgets are always called twice. I wondering if i do something wrong or is it a bug?
My problem is, that i have a setter that does slightly more complex things and i dont want to work with flags in the setter like "if(notAlreadyDone){...}". Any ideas how i can avoid that?
Pseudocode:
.h-File
@
class QDESIGNER_WIDGET_EXPORT MyLineEdit : public QWidget{
Q_OBJECT
Q_PROPERTY(QString labelText READ getLabelText WRITE setLabelText)
private:
QString labelText;
public:
void setLabelText(const QString& labelText);
};
@cpp-File:
@
MyLineEdit::MyLineEdit(QWidget* parent) : QWidget(parent){}void MyLineEdit::setLabelText(const QString& labelText){
qDebug() << PRETTY_FUNCTION << "LabelText:" << labelText;
this->labelText = labelText;
}
@Load-UI-File:
@
qDebug() << "--> before" << uiMaskFileName;
QUiLoader loader;
QWidget* parent = new QWidget();
QWidget* formWidget = loader.load(&file, parent);
qDebug() << "--> after";
@UI-File:
@
...
<item>
<widget class="MyLineEdit" name="myLineEdit">
<property name="labelText">
<string>Test:</string>
</property>
</widget>
</item>
...
@Consolen-output:
@
--> before "/tmp/my.ui"
void MyLineEdit::setLabelText(const QString&) LabelText: "Test:"
void MyLineEdit::setLabelText(const QString&) LabelText: "Test:"
--> after
@ -
Hi and welcome to devnet,
Are you sure that in your custom widget you don't have multiple connect calls ?
-
Hi,
thanks for your reply.
Yes i am sure. I wrote a test-class with only 1 constructor and 1 set-/getter. No additional signal/slots/connects.
-
Can you share a minimal compilable example that shows the behavior ?
Also, what version of Qt and what OS are you running on ?
-
Hi,
i have created some files/projects similar to my real project.
I uploaded a zipfile to a sharing site, because i saw no possiblity to upload files here.
The zipfile contains:
- 1 designer lib
- 1 shared lib
- 1 main-program
- 1 ui-file
- 1 Readme
System:
- Qt-version is 5.2.0
- OS openSuse 12.1
- IDE Eclipse
"Download zip":http://www.fileconvoy.com/dfl.php?id=g6da5f12a22f919f09995252123a96d0dc5e4d0085
Best regards
-
Hi,
can someone reproduce/confirm the behavior?