The QDesignerFormWindowInterface class allows you to query and manipulate form windows appearing in Qt Designer's workspace. 更多...
头: | #include <QDesignerFormWindowInterface> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer) |
qmake: | QT += designer |
继承: | QWidget |
flags | Feature |
enum | FeatureFlag { EditFeature, GridFeature, TabOrderFeature, DefaultFeature } |
enum | ResourceFileSaveMode { SaveAllResourceFiles, SaveOnlyUsedResourceFiles, DontSaveResourceFiles } |
QDesignerFormWindowInterface (QWidget * parent = nullptr, Qt::WindowFlags flags = {}) | |
virtual | ~QDesignerFormWindowInterface () |
virtual QDir | absoluteDir () const = 0 |
QStringList | activeResourceFilePaths () const |
virtual void | addResourceFile (const QString & path ) = 0 |
virtual QString | author () const = 0 |
virtual QStringList | checkContents () const = 0 |
virtual QString | comment () const = 0 |
virtual QString | contents () const = 0 |
virtual QDesignerFormEditorInterface * | core () const |
virtual QDesignerFormWindowCursorInterface * | cursor () const = 0 |
virtual void | emitSelectionChanged () = 0 |
virtual QString | exportMacro () const = 0 |
virtual QDesignerFormWindowInterface::Feature | features () const = 0 |
virtual QString | fileName () const = 0 |
virtual QWidget * | formContainer () const = 0 |
virtual QPoint | grid () const = 0 |
virtual bool | hasFeature (QDesignerFormWindowInterface::Feature feature ) const = 0 |
virtual QStringList | includeHints () const = 0 |
virtual bool | isDirty () const = 0 |
virtual bool | isManaged (QWidget * widget ) const = 0 |
virtual void | layoutDefault (int * margin , int * spacing ) = 0 |
virtual void | layoutFunction (QString * margin , QString * spacing ) = 0 |
virtual QString | pixmapFunction () const = 0 |
virtual void | removeResourceFile (const QString & path ) = 0 |
virtual QDesignerFormWindowInterface::ResourceFileSaveMode | resourceFileSaveMode () const = 0 |
virtual QStringList | resourceFiles () const = 0 |
virtual void | setAuthor (const QString & author ) = 0 |
virtual void | setComment (const QString & comment ) = 0 |
virtual bool | setContents (QIODevice * device , QString * errorMessage = 0) = 0 |
virtual void | setExportMacro (const QString & exportMacro ) = 0 |
virtual void | setIncludeHints (const QStringList & includeHints ) = 0 |
virtual void | setLayoutDefault (int margin , int spacing ) = 0 |
virtual void | setLayoutFunction (const QString & margin , const QString & spacing ) = 0 |
virtual void | setMainContainer (QWidget * mainContainer ) = 0 |
virtual void | setPixmapFunction (const QString & pixmapFunction ) = 0 |
virtual void | setResourceFileSaveMode (QDesignerFormWindowInterface::ResourceFileSaveMode behavior ) = 0 |
void | activateResourceFilePaths (const QStringList & paths , int * errorCount = nullptr, QString * errorMessages = nullptr) |
virtual void | clearSelection (bool update = true) = 0 |
virtual void | manageWidget (QWidget * widget ) = 0 |
virtual void | selectWidget (QWidget * widget , bool select = true) = 0 |
virtual bool | setContents (const QString & contents ) = 0 |
virtual void | setDirty (bool dirty ) = 0 |
virtual void | setFeatures (QDesignerFormWindowInterface::Feature features ) = 0 |
virtual void | setFileName (const QString & fileName ) = 0 |
virtual void | setGrid (const QPoint & grid ) = 0 |
virtual void | unmanageWidget (QWidget * widget ) = 0 |
void | aboutToUnmanageWidget (QWidget * widget ) |
void | activated (QWidget * widget ) |
void | changed () |
void | featureChanged (QDesignerFormWindowInterface::Feature feature ) |
void | fileNameChanged (const QString & fileName ) |
void | geometryChanged () |
void | mainContainerChanged (QWidget * mainContainer ) |
void | objectRemoved (QObject * object ) |
void | resourceFilesChanged () |
void | selectionChanged () |
void | widgetManaged (QWidget * widget ) |
void | widgetRemoved (QWidget * widget ) |
void | widgetUnmanaged (QWidget * widget ) |
QDesignerFormWindowInterface * | findFormWindow (QWidget * widget ) |
QDesignerFormWindowInterface * | findFormWindow (QObject * object ) |
QDesignerFormWindowInterface provides information about the associated form window as well as allowing its properties to be altered. The interface is not intended to be instantiated directly, but to provide access to Qt Designer 's current form windows controlled by Qt Designer 's form window manager .
If you are looking for the form window containing a specific widget, you can use the static QDesignerFormWindowInterface::findFormWindow () 函数:
auto *formWindow = QDesignerFormWindowInterface::findFormWindow(myWidget);
But in addition, you can access any of the current form windows through Qt Designer 's form window manager: Use the QDesignerFormEditorInterface::formWindowManager () function to retrieve an interface to the manager. Once you have this interface, you have access to all of Qt Designer 's current form windows through the QDesignerFormWindowManagerInterface::formWindow () 函数。例如:
QList<QDesignerFormWindowInterface *> forms; auto *manager = formEditor->formWindowManager(); for (int i = 0; i < manager->formWindowCount(); ++i) forms.append(manager->formWindow(i));
The pointer to
Qt Designer
's current
QDesignerFormEditorInterface
object (
formEditor
in the example above) is provided by the
QDesignerCustomWidgetInterface::initialize
() function's parameter. When implementing a custom widget plugin, you must subclass the
QDesignerCustomWidgetInterface
class to expose your plugin to
Qt Designer
.
Once you have the form window, you can query its properties. For example, a plain custom widget plugin is managed by Qt Designer only at its top level, i.e. none of its child widgets can be resized in Qt Designer 's workspace. But QDesignerFormWindowInterface provides you with functions that enables you to control whether a widget should be managed by Qt Designer , or not:
if (formWindow->isManaged(myWidget)) formWindow->manageWidget(myWidget->childWidget);
The complete list of functions concerning widget management is: isManaged (), manageWidget () 和 unmanageWidget (). There is also several associated signals: widgetManaged (), widgetRemoved (), aboutToUnmanageWidget () 和 widgetUnmanaged ().
In addition to controlling the management of widgets, you can control the current selection in the form window using the selectWidget (), clearSelection () 和 emitSelectionChanged () functions, and the selectionChanged () 信号。
You can also retrieve information about where the form is stored using absoluteDir (), its include files using includeHints (), and its layout and pixmap functions using layoutDefault (), layoutFunction () 和 pixmapFunction (). You can find out whether the form window has been modified (but not saved) or not, using the isDirty () function. You can retrieve its author (),其 contents (),其 fileName (), associated comment () 和 exportMacro (), its mainContainer(), its features (),其 grid () and its resourceFiles ().
The interface provides you with functions and slots allowing you to alter most of this information as well. The exception is the directory storing the form window. Finally, there is several signals associated with changes to the information mentioned above and to the form window in general.
另请参阅 QDesignerFormWindowCursorInterface , QDesignerFormEditorInterface ,和 QDesignerFormWindowManagerInterface .
This enum describes the features that are available and can be controlled by the form window interface. These values are used when querying the form window to determine which features it supports:
常量 | 值 | 描述 |
---|---|---|
QDesignerFormWindowInterface::EditFeature
|
0x01
|
Form editing |
QDesignerFormWindowInterface::GridFeature
|
0x02
|
Grid display and snap-to-grid facilities for editing |
QDesignerFormWindowInterface::TabOrderFeature
|
0x04
|
Tab order management |
QDesignerFormWindowInterface::DefaultFeature
|
EditFeature | GridFeature
|
Support for default features (form editing and grid) |
The Feature type is a typedef for QFlags <FeatureFlag>. It stores an OR combination of FeatureFlag values.
另请参阅 hasFeature () 和 features ().
This enum describes how resource files are saved.
常量 | 值 | 描述 |
---|---|---|
QDesignerFormWindowInterface::SaveAllResourceFiles
|
0
|
Save all resource files. |
QDesignerFormWindowInterface::SaveOnlyUsedResourceFiles
|
1
|
Save resource files used by form. |
QDesignerFormWindowInterface::DontSaveResourceFiles
|
2
|
Do not save resource files. |
[explicit]
QDesignerFormWindowInterface::
QDesignerFormWindowInterface
(
QWidget
*
parent
= nullptr,
Qt::WindowFlags
flags
= {})
Constructs a form window interface with the given parent and the specified window flags .
[虚拟]
QDesignerFormWindowInterface::
~QDesignerFormWindowInterface
()
Destroys the form window interface.
[signal]
void
QDesignerFormWindowInterface::
aboutToUnmanageWidget
(
QWidget
*
widget
)
This signal is emitted whenever a widget on the form is about to become unmanaged. When this signal is emitted, the specified widget is still managed, and a widgetUnmanaged () signal will follow, indicating when it is no longer managed.
另请参阅 unmanageWidget () 和 isManaged ().
[pure virtual]
QDir
QDesignerFormWindowInterface::
absoluteDir
() const
Returns the absolute location of the directory containing the form shown in the form window.
[slot]
void
QDesignerFormWindowInterface::
activateResourceFilePaths
(const
QStringList
&
paths
,
int
*
errorCount
= nullptr,
QString
*
errorMessages
= nullptr)
Activates the resource (.qrc) file paths paths , returning the count of errors in errorCount and error message in errorMessages . Qt Designer loads the resources using the QResource class, making them available for form editing.
In IDE integrations, a list of the project's resource (.qrc) file can be activated, making them available to Qt Designer .
另请参阅 activeResourceFilePaths () 和 QResource .
[signal]
void
QDesignerFormWindowInterface::
activated
(
QWidget
*
widget
)
This signal is emitted whenever a widget is activated on the form. The activated widget is specified by widget .
Returns the active resource (.qrc) file paths currently loaded in Qt Designer .
另请参阅 activateResourceFilePaths ().
[pure virtual]
void
QDesignerFormWindowInterface::
addResourceFile
(const
QString
&
path
)
Adds the resource file at the given path to those used by the form.
另请参阅 resourceFiles () 和 resourceFilesChanged ().
[pure virtual]
QString
QDesignerFormWindowInterface::
author
() const
Returns details of the author or creator of the form currently being displayed in the window.
另请参阅 setAuthor ().
[signal]
void
QDesignerFormWindowInterface::
changed
()
This signal is emitted whenever a form is changed.
[pure virtual]
QStringList
QDesignerFormWindowInterface::
checkContents
() const
Performs checks on the current form and returns a list of richtext warnings about potential issues (for example, top level spacers on unlaid-out forms).
IDE integrations can call this before handling starting a save operation.
[pure virtual slot]
void
QDesignerFormWindowInterface::
clearSelection
(
bool
update
= true)
Clears the current selection in the form window. If update is true, the emitSelectionChanged () function is called, emitting the selectionChanged () 信号。
另请参阅 selectWidget ().
[pure virtual]
QString
QDesignerFormWindowInterface::
comment
() const
Returns comments about the form currently being displayed in the window.
另请参阅 setComment ().
[pure virtual]
QString
QDesignerFormWindowInterface::
contents
() const
Returns details of the contents of the form currently being displayed in the window.
另请参阅 setContents ().
[虚拟]
QDesignerFormEditorInterface
*QDesignerFormWindowInterface::
core
() const
Returns a pointer to Qt Designer 's current QDesignerFormEditorInterface 对象。
[pure virtual]
QDesignerFormWindowCursorInterface
*QDesignerFormWindowInterface::
cursor
() const
Returns the cursor interface used by the form window.
[pure virtual]
void
QDesignerFormWindowInterface::
emitSelectionChanged
()
Emits the selectionChanged () 信号。
另请参阅 selectWidget () 和 clearSelection ().
[pure virtual]
QString
QDesignerFormWindowInterface::
exportMacro
() const
Returns the export macro associated with the form currently being displayed in the window. The export macro is used when the form is compiled to create a widget plugin.
另请参阅 setExportMacro () 和 创建自定义 Widget 为 Qt Designer .
[signal]
void
QDesignerFormWindowInterface::
featureChanged
(
QDesignerFormWindowInterface::Feature
feature
)
This signal is emitted whenever a feature changes in the form. The new feature is specified by feature .
另请参阅 setFeatures ().
[pure virtual]
QDesignerFormWindowInterface::Feature
QDesignerFormWindowInterface::
features
() const
Returns a combination of the features provided by the form window associated with the interface. The value returned can be tested against the Feature enum values to determine which features are supported by the window.
另请参阅 setFeatures () 和 hasFeature ().
[pure virtual]
QString
QDesignerFormWindowInterface::
fileName
() const
Returns the file name of the UI file that describes the form currently being shown.
另请参阅 setFileName ().
[signal]
void
QDesignerFormWindowInterface::
fileNameChanged
(const
QString
&
fileName
)
This signal is emitted whenever the file name of the form changes. The new file name is specified by fileName .
另请参阅 setFileName ().
[static]
QDesignerFormWindowInterface
*QDesignerFormWindowInterface::
findFormWindow
(
QWidget
*
widget
)
Returns the form window interface for the given widget .
[static]
QDesignerFormWindowInterface
*QDesignerFormWindowInterface::
findFormWindow
(
QObject
*
object
)
Returns the form window interface for the given object .
[pure virtual]
QWidget
*QDesignerFormWindowInterface::
formContainer
() const
Returns the form the widget containing the main container widget.
[signal]
void
QDesignerFormWindowInterface::
geometryChanged
()
This signal is emitted whenever the form's geometry changes.
[pure virtual]
QPoint
QDesignerFormWindowInterface::
grid
() const
Returns the grid spacing used by the form window.
另请参阅 setGrid ().
[pure virtual]
bool
QDesignerFormWindowInterface::
hasFeature
(
QDesignerFormWindowInterface::Feature
feature
) const
Returns true if the form window offers the specified feature ;否则返回 false。
另请参阅 features ().
[pure virtual]
QStringList
QDesignerFormWindowInterface::
includeHints
() const
Returns a list of the header files that will be included in the form window's associated UI file.
Header files may be local, i.e. relative to the project's directory,
"mywidget.h"
, or global, i.e. part of Qt or the compilers standard libraries:
<QtGui/QWidget>
.
另请参阅 setIncludeHints ().
[pure virtual]
bool
QDesignerFormWindowInterface::
isDirty
() const
Returns true if the form window is "dirty" (modified but not saved); otherwise returns false.
另请参阅 setDirty ().
[pure virtual]
bool
QDesignerFormWindowInterface::
isManaged
(
QWidget
*
widget
) const
返回 true 若指定 widget is managed by the form window; otherwise returns false.
另请参阅 manageWidget ().
[pure virtual]
void
QDesignerFormWindowInterface::
layoutDefault
(
int
*
margin
,
int
*
spacing
)
Fills in the default margin and spacing for the form's default layout in the margin and spacing variables specified.
另请参阅 setLayoutDefault ().
[pure virtual]
void
QDesignerFormWindowInterface::
layoutFunction
(
QString
*
margin
,
QString
*
spacing
)
Fills in the current margin and spacing for the form's layout in the margin and spacing variables specified.
另请参阅 setLayoutFunction ().
[signal]
void
QDesignerFormWindowInterface::
mainContainerChanged
(
QWidget
*
mainContainer
)
This signal is emitted whenever the main container changes. The new container is specified by mainContainer .
另请参阅 setMainContainer ().
[pure virtual slot]
void
QDesignerFormWindowInterface::
manageWidget
(
QWidget
*
widget
)
Instructs the form window to manage the specified widget .
另请参阅 isManaged (), unmanageWidget (),和 widgetManaged ().
[signal]
void
QDesignerFormWindowInterface::
objectRemoved
(
QObject
*
object
)
This signal is emitted whenever an object (such as an action or a QButtonGroup ) is removed from the form. The object that was removed is specified by object .
[pure virtual]
QString
QDesignerFormWindowInterface::
pixmapFunction
() const
Returns the name of the function used to load pixmaps into the form window.
另请参阅 setPixmapFunction ().
[pure virtual]
void
QDesignerFormWindowInterface::
removeResourceFile
(const
QString
&
path
)
Removes the resource file at the specified path from the list of those used by the form.
另请参阅 resourceFiles () 和 resourceFilesChanged ().
[pure virtual]
QDesignerFormWindowInterface::ResourceFileSaveMode
QDesignerFormWindowInterface::
resourceFileSaveMode
() const
Returns the resource file save mode behavior.
另请参阅 setResourceFileSaveMode ().
[pure virtual]
QStringList
QDesignerFormWindowInterface::
resourceFiles
() const
Returns a list of paths to resource files that are currently being used by the form window.
另请参阅 addResourceFile () 和 removeResourceFile ().
[signal]
void
QDesignerFormWindowInterface::
resourceFilesChanged
()
This signal is emitted whenever the list of resource files used by the form changes.
另请参阅 resourceFiles ().
[pure virtual slot]
void
QDesignerFormWindowInterface::
selectWidget
(
QWidget
*
widget
,
bool
select
= true)
若 select 为 True,给定 widget is selected; otherwise the widget is deselected.
另请参阅 clearSelection () 和 selectionChanged ().
[signal]
void
QDesignerFormWindowInterface::
selectionChanged
()
This signal is emitted whenever the selection in the form changes.
另请参阅 selectWidget () 和 clearSelection ().
[pure virtual]
void
QDesignerFormWindowInterface::
setAuthor
(const
QString
&
author
)
Sets the details for the author or creator of the form to the author 指定。
另请参阅 author ().
[pure virtual]
void
QDesignerFormWindowInterface::
setComment
(const
QString
&
comment
)
Sets the information about the form to the comment specified. This information should be a human-readable comment about the form.
另请参阅 comment ().
[pure virtual]
bool
QDesignerFormWindowInterface::
setContents
(
QIODevice
*
device
,
QString
*
errorMessage
= 0)
Sets the form's contents using data obtained from the given device and returns whether loading succeeded. If it fails, the error message is returned in errorMessage .
Data can be read from QFile objects or any other subclass of QIODevice .
另请参阅 contents ().
[pure virtual slot]
bool
QDesignerFormWindowInterface::
setContents
(const
QString
&
contents
)
Sets the contents of the form using data read from the specified contents string and returns whether the operation succeeded.
另请参阅 contents ().
[pure virtual slot]
void
QDesignerFormWindowInterface::
setDirty
(
bool
dirty
)
若 dirty is true, the form window is marked as dirty, meaning that it is modified but not saved. If dirty is false, the form window is considered to be unmodified.
另请参阅 isDirty ().
[pure virtual]
void
QDesignerFormWindowInterface::
setExportMacro
(const
QString
&
exportMacro
)
Sets the form window's export macro to exportMacro . The export macro is used when building a widget plugin to export the form's interface to other components.
另请参阅 exportMacro ().
[pure virtual slot]
void
QDesignerFormWindowInterface::
setFeatures
(
QDesignerFormWindowInterface::Feature
features
)
Enables the specified features for the form window.
另请参阅 features () 和 featureChanged ().
[pure virtual slot]
void
QDesignerFormWindowInterface::
setFileName
(const
QString
&
fileName
)
Sets the file name for the form to the given fileName .
另请参阅 fileName () 和 fileNameChanged ().
[pure virtual slot]
void
QDesignerFormWindowInterface::
setGrid
(const
QPoint
&
grid
)
Sets the grid size for the form window to the point specified by grid . In this function, the coordinates in the QPoint are used to specify the dimensions of a rectangle in the grid.
另请参阅 grid ().
[pure virtual]
void
QDesignerFormWindowInterface::
setIncludeHints
(const
QStringList
&
includeHints
)
Sets the header files that will be included in the form window's associated UI file to the specified includeHints .
Header files may be local, i.e. relative to the project's directory,
"mywidget.h"
, or global, i.e. part of Qt or the compilers standard libraries:
<QtGui/QWidget>
.
另请参阅 includeHints ().
[pure virtual]
void
QDesignerFormWindowInterface::
setLayoutDefault
(
int
margin
,
int
spacing
)
设置默认 margin and spacing for the form's layout.
另请参阅 layoutDefault ().
[pure virtual]
void
QDesignerFormWindowInterface::
setLayoutFunction
(const
QString
&
margin
, const
QString
&
spacing
)
设置 margin and spacing for the form's layout.
The default layout properties will be replaced by the corresponding layout functions when
uic
generates code for the form, that is, if the functions are specified. This is useful when different environments requires different layouts for the same form.
另请参阅 layoutFunction ().
[pure virtual]
void
QDesignerFormWindowInterface::
setMainContainer
(
QWidget
*
mainContainer
)
Sets the main container widget on the form to the specified mainContainer .
另请参阅 mainContainerChanged ().
[pure virtual]
void
QDesignerFormWindowInterface::
setPixmapFunction
(const
QString
&
pixmapFunction
)
Sets the function used to load pixmaps into the form window to the given pixmapFunction .
另请参阅 pixmapFunction ().
[pure virtual]
void
QDesignerFormWindowInterface::
setResourceFileSaveMode
(
QDesignerFormWindowInterface::ResourceFileSaveMode
behavior
)
Sets the resource file save mode behavior .
另请参阅 resourceFileSaveMode ().
[pure virtual slot]
void
QDesignerFormWindowInterface::
unmanageWidget
(
QWidget
*
widget
)
Instructs the form window not to manage the specified widget .
另请参阅 aboutToUnmanageWidget () 和 widgetUnmanaged ().
[signal]
void
QDesignerFormWindowInterface::
widgetManaged
(
QWidget
*
widget
)
This signal is emitted whenever a widget on the form becomes managed. The newly managed widget is specified by widget .
另请参阅 manageWidget ().
[signal]
void
QDesignerFormWindowInterface::
widgetRemoved
(
QWidget
*
widget
)
This signal is emitted whenever a widget is removed from the form. The widget that was removed is specified by widget .
[signal]
void
QDesignerFormWindowInterface::
widgetUnmanaged
(
QWidget
*
widget
)
This signal is emitted whenever a widget on the form becomes unmanaged. The newly released widget is specified by widget .
另请参阅 unmanageWidget () 和 aboutToUnmanageWidget ().