def
addPluginPath
(path)
def
availableLayouts
()
def
availableWidgets
()
def
clearPluginPaths
()
def
errorString
()
def
isLanguageChangeEnabled
()
def
isTranslationEnabled
()
def
load
(arg__1[, parentWidget=None])
def
load
(device[, parentWidget=None])
def
pluginPaths
()
def
registerCustomWidget
(customWidgetType)
def
setLanguageChangeEnabled
(enabled)
def
setTranslationEnabled
(enabled)
def
setWorkingDirectory
(dir)
def
workingDirectory
()
def
createAction
([parent=None[, name=””]])
def
createActionGroup
([parent=None[, name=””]])
def
createLayout
(className[, parent=None[, name=””]])
def
createWidget
(className[, parent=None[, name=””]])
In addition, you can customize or create your own user interface by deriving your own loader class.
If you have a custom component or an application that embeds Qt Designer , you can also use the QFormBuilder class provided by the QtDesigner module to create user interfaces from UI files.
QUiLoaderclass provides a collection of functions allowing you to create widgets based on the information stored in UI files (created with Qt Designer ) or available in the specified plugin paths. The specified plugin paths can be retrieved using thepluginPaths()function. Similarly, the contents of a UI file can be retrieved using theload()function. For example:MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { QUiLoader loader; QFile file(":/forms/myform.ui"); file.open(QFile::ReadOnly); QWidget *myWidget = loader.load(&file, this); file.close(); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(myWidget); setLayout(layout); }
availableWidgets()function returns aQStringListwith the class names of the widgets available in the specified plugin paths. To create these widgets, simply use thecreateWidget()function. For example:QWidget *loadCustomWidget(QWidget *parent) { QUiLoader loader; QWidget *myWidget; QStringList availableWidgets = loader.availableWidgets(); if (availableWidgets.contains("AnalogClock")) myWidget = loader.createWidget("AnalogClock", parent); return myWidget; }To make a custom widget available to the loader, you can use the
addPluginPath()function; to remove all available widgets, you can call theclearPluginPaths()函数。
createAction(),createActionGroup(),createLayout(),和createWidget()functions are used internally by theQUiLoaderclass whenever it has to create an action, action group, layout, or widget respectively. For that reason, you can subclass theQUiLoaderclass and reimplement these functions to intervene the process of constructing a user interface. For example, you might want to have a list of the actions created when loading a form or creating a custom widget.For a complete example using the
QUiLoaderclass, see the Calculator Builder Example.另请参阅
Qt UI Tools
QFormBuilder
QUiLoader
(
[
parent=None
]
)
¶
- param parent
QObject
Creates a form loader with the given
parent
.
PySide2.QtUiTools.QUiLoader.
addPluginPath
(
path
)
¶
path – unicode
添加给定
path
to the list of paths in which the loader will search when locating plugins.
PySide2.QtUiTools.QUiLoader.
availableLayouts
(
)
¶
字符串列表
Returns a list naming all available layouts that can be built using the
createLayout()
function
另请参阅
PySide2.QtUiTools.QUiLoader.
availableWidgets
(
)
¶
字符串列表
Returns a list naming all available widgets that can be built using the
createWidget()
function, i.e all the widgets specified within the given plugin paths.
PySide2.QtUiTools.QUiLoader.
clearPluginPaths
(
)
¶
Clears the list of paths in which the loader will search when locating plugins.
PySide2.QtUiTools.QUiLoader.
createAction
(
[
parent=None
[
,
name=""
]
]
)
¶
parent
–
QObject
name – unicode
QAction
创建新的动作采用给定
parent
and
name
.
The function is also used internally by the
QUiLoader
class whenever it creates a widget. Hence, you can subclass
QUiLoader
and reimplement this function to intervene process of constructing a user interface or widget. However, in your implementation, ensure that you call
QUiLoader
‘s version first.
PySide2.QtUiTools.QUiLoader.
createActionGroup
(
[
parent=None
[
,
name=""
]
]
)
¶
parent
–
QObject
name – unicode
QActionGroup
Creates a new action group with the given
parent
and
name
.
The function is also used internally by the
QUiLoader
class whenever it creates a widget. Hence, you can subclass
QUiLoader
and reimplement this function to intervene process of constructing a user interface or widget. However, in your implementation, ensure that you call
QUiLoader
‘s version first.
PySide2.QtUiTools.QUiLoader.
createLayout
(
className
[
,
parent=None
[
,
name=""
]
]
)
¶
className – unicode
parent
–
QObject
name – unicode
QLayout
Creates a new layout with the given
parent
and
name
using the class specified by
className
.
The function is also used internally by the
QUiLoader
class whenever it creates a widget. Hence, you can subclass
QUiLoader
and reimplement this function to intervene process of constructing a user interface or widget. However, in your implementation, ensure that you call
QUiLoader
‘s version first.
另请参阅
PySide2.QtUiTools.QUiLoader.
createWidget
(
className
[
,
parent=None
[
,
name=""
]
]
)
¶
className – unicode
parent
–
QWidget
name – unicode
QWidget
Creates a new widget with the given
parent
and
name
using the class specified by
className
. You can use this function to create any of the widgets returned by the
availableWidgets()
函数。
The function is also used internally by the
QUiLoader
class whenever it creates a widget. Hence, you can subclass
QUiLoader
and reimplement this function to intervene process of constructing a user interface or widget. However, in your implementation, ensure that you call
QUiLoader
‘s version first.
另请参阅
PySide2.QtUiTools.QUiLoader.
errorString
(
)
¶
unicode
Returns a human-readable description of the last error occurred in
load()
.
另请参阅
PySide2.QtUiTools.QUiLoader.
isLanguageChangeEnabled
(
)
¶
bool
Returns true if dynamic retranslation on language change is enabled; returns false otherwise.
PySide2.QtUiTools.QUiLoader.
isTranslationEnabled
(
)
¶
bool
Returns true if translation is enabled; returns false otherwise.
PySide2.QtUiTools.QUiLoader.
load
(
device
[
,
parentWidget=None
]
)
¶
device
–
QIODevice
parentWidget
–
QWidget
QWidget
Loads a form from the given
device
and creates a new widget with the given
parentWidget
to hold its contents.
PySide2.QtUiTools.QUiLoader.
load
(
arg__1
[
,
parentWidget=None
]
)
¶
arg__1 – unicode
parentWidget
–
QWidget
QWidget
PySide2.QtUiTools.QUiLoader.
pluginPaths
(
)
¶
字符串列表
Returns a list naming the paths in which the loader will search when locating custom widget plugins.
PySide2.QtUiTools.QUiLoader.
registerCustomWidget
(
customWidgetType
)
¶
customWidgetType
–
PyObject
loading a
.ui
file. The custom widget type is passed via the
customWidgetType
argument. This is needed when you want to override a virtual method of some widget in the interface, since duck punching will not work with widgets created by QUiLoader based on the contents of the
.ui
文件。
(Remember that duck punching virtual methods is an invitation for your own demise! )
Let’s see an obvious example. If you want to create a new widget it’s probable you’ll end up overriding
QWidget
’s
paintEvent()
方法。
class Circle(QWidget):
def paintEvent(self, event):
painter = QPainter(self)
painter.setPen(self.pen)
painter.setBrush(QBrush(self.color))
painter.drawEllipse(event.rect().center(), 20, 20)
# ...
loader = QUiLoader()
loader.registerCustomWidget(Circle)
circle = loader.load('circle.ui')
circle.show()
# ...
PySide2.QtUiTools.QUiLoader.
setLanguageChangeEnabled
(
enabled
)
¶
enabled
–
bool
若
enabled
is true, user interfaces loaded by this loader will automatically retranslate themselves upon receiving a language change event. Otherwise, the user interfaces will not be retranslated.
PySide2.QtUiTools.QUiLoader.
setTranslationEnabled
(
enabled
)
¶
enabled
–
bool
若
enabled
is true, user interfaces loaded by this loader will be translated. Otherwise, the user interfaces will not be translated.
注意
This is orthogonal to languageChangeEnabled.
PySide2.QtUiTools.QUiLoader.
setWorkingDirectory
(
dir
)
¶
dir
–
QDir
Sets the working directory of the loader to
dir
. The loader will look for other resources, such as icons and resource files, in paths relative to this directory.
另请参阅
PySide2.QtUiTools.QUiLoader.
workingDirectory
(
)
¶
QDir
Returns the working directory of the loader.