You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.6 KiB
48 lines
1.6 KiB
15 years ago
|
/*
|
||
|
* To use this fuction provide the ui file name, the parent
|
||
|
* that will handle the slots of the form, and the parent
|
||
|
* widget that will handle the UI portion.
|
||
|
*
|
||
|
* var form = kjsuic("EnvelopeMakerUI.ui", this, this);
|
||
|
* println(dump(form));
|
||
|
*
|
||
|
* This will then return you a widget object that has properties
|
||
|
* that are the main child widgets in the UI file. So if you have
|
||
|
* a KLineEdit called "myLineEdit" in the UI file then there would
|
||
|
* be a member of the form called myLineEdit. (ex: form.myLineEdit )
|
||
|
*
|
||
|
* If there are container widgets present then the children will show
|
||
|
* up as properties of those widgets. So if you have a groupbox called
|
||
|
* "Group" and a KLineEdit inside of it called "editor" you would address
|
||
|
* this as "Group.editor".
|
||
|
*
|
||
|
* An important note: Take care when using UI files with this that have
|
||
|
* widget names that do not conflict with current Qt properties as the Qt
|
||
|
* properties will take precident over the added widgets.
|
||
|
*/
|
||
|
|
||
|
function kjsuic(uifile, slotParent, parent)
|
||
|
{
|
||
|
var widget = Factory.loadui(uifile, slotParent, parent);
|
||
|
var lst = widget.children();
|
||
|
addChildren( widget )
|
||
|
return widget;
|
||
|
}
|
||
|
|
||
|
function addChildren( widget )
|
||
|
{
|
||
|
var lst = widget.children();
|
||
|
for( var idx = 0; idx < lst.length; ++idx)
|
||
|
{
|
||
|
var str = "widget." + lst[idx] + " = widget.child('" + lst[idx] + "');";
|
||
|
eval(str);
|
||
|
var typeName = widget.child(lst[idx]).className();
|
||
|
|
||
|
if( typeName == "QGroupBox" || typeName == "QButtonGroup" || typeName == "QFrame")
|
||
|
{
|
||
|
eval("addChildren( widget." + lst[idx] + ");");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|