DtkWidget
DTK Widget module
|
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类. 更多...
Public 类型 | |
enum | SingleScope { UserScope , SystemScope } |
信号 | |
void | newInstanceStarted () |
该信号会在程序的一个新实例启动的时候被触发. | |
void | iconThemeChanged () |
该信号在系统图标主题发生改变的时候被触发. | |
void | screenDevicePixelRatioChanged (QScreen *screen) |
该信号在对应屏幕 screen 的缩放比可能发现变化时触发. | |
Public 成员函数 | |
DApplication (int &argc, char **argv) | |
constructs an instance of DApplication. | |
bool | setSingleInstance (const QString &key) |
returns name of the theme that the application is currently using. | |
bool | setSingleInstance (const QString &key, SingleScope singleScope) |
一个重写函数,增加了控制单实例范围的 singleScope 参数。 | |
bool | loadTranslator (QList< QLocale > localeFallback=QList< QLocale >()<< QLocale::system()) |
loads translate file from system or application data path. | |
QString | productName () const |
returns the product name of this application. | |
void | setProductName (const QString &productName) |
sets the product name of this application. | |
const QIcon & | productIcon () const |
returns the product icon of this application. | |
void | setProductIcon (const QIcon &productIcon) |
sets the product icon of this application. | |
QString | applicationLicense () const |
returns the license used by this application. | |
void | setApplicationLicense (const QString &license) |
sets the license of this application. | |
QString | applicationDescription () const |
returns the long description of the application. | |
void | setApplicationDescription (const QString &description) |
sets the description of the application. | |
QString | applicationHomePage () const |
程序的主页地址. | |
void | setApplicationHomePage (const QString &link) |
QString | applicationAcknowledgementPage () const |
returns the acknowlegement page of the application. | |
void | setApplicationAcknowledgementPage (const QString &link) |
sets the acknowlegement page of the application. | |
bool | applicationAcknowledgementVisible () const |
是否显示关于对话框中的鸣谢地址显示. | |
void | setApplicationAcknowledgementVisible (bool visible) |
设置是否显示关于对话框中的鸣谢地址显示. | |
DAboutDialog * | aboutDialog () |
returns the about dialog of this application. | |
void | setAboutDialog (DAboutDialog *aboutDialog) |
sets the aboutDialog of this application. | |
DFeatureDisplayDialog * | featureDisplayDialog () |
void | setFeatureDisplayDialog (DFeatureDisplayDialog *featureDisplayDialog) |
bool | visibleMenuShortcutText () const |
void | setVisibleMenuShortcutText (bool value) |
bool | visibleMenuCheckboxWidget () const |
void | setVisibleMenuCheckboxWidget (bool value) |
bool | visibleMenuIcon () const |
void | setVisibleMenuIcon (bool value) |
bool | autoActivateWindows () const |
void | setAutoActivateWindows (bool autoActivateWindows) |
void | acclimatizeVirtualKeyboard (QWidget *window) |
用于窗口中可输入控件自适应虚拟键盘. | |
void | ignoreVirtualKeyboard (QWidget *window) |
恢复虚拟键盘的自适应操作. | |
bool | isAcclimatizedVirtualKeyboard (QWidget *window) const |
是否自适应虚拟键盘 | |
QString | applicationCreditsFile () const |
void | setApplicationCreditsFile (const QString &file) |
QByteArray | applicationCreditsContent () const |
void | setApplicationCreditsContent (const QByteArray &content) |
QString | licensePath () const |
void | setLicensePath (const QString &path) |
void | setCustomHandler (DAppHandler *handler) |
设置 app 的处理程序. | |
DAppHandler * | customHandler () |
获取设置的 app 定制化处理程序 | |
bool | notify (QObject *obj, QEvent *event) Q_DECL_OVERRIDE |
静态 Public 成员函数 | |
static DApplication * | globalApplication (int &argc, char **argv) |
返回一个DApplicatioin实例. | |
static bool | isDXcbPlatform () |
强制程序使用的平台插件到dxcb. | |
static int | buildDtkVersion () |
返回编译时的dtk版本. | |
static int | runtimeDtkVersion () |
返回运行时的dtk版本. | |
static void | registerDDESession () |
用于跟 startdde 进行通信,告知 startdde 进程已经启动成功. | |
static void | customQtThemeConfigPathByUserHome (const QString &home) |
根据用户家目录设置Qt主题配置文件的目录. | |
static void | customQtThemeConfigPath (const QString &path) |
自定义 Qt 主题配置文件的路径。 | |
static QString | customizedQtThemeConfigPath () |
自定义 Qt 主题配置文件路径. | |
static QString | buildVersion (const QString &fallbackVersion) |
Protected 成员函数 | |
virtual void | handleHelpAction () |
DApplication::handleHelpAction | |
virtual void | handleAboutAction () |
用于处理菜单中关于按钮的点击 | |
virtual void | handleQuitAction () |
用于处理菜单中退出按钮的点击 | |
属性 | |
bool | visibleMenuShortcutText |
菜单项快捷键文本的可视化属性 | |
bool | visibleMenuCheckboxWidget |
菜单项内 CheckBox 控件的可视化属性 | |
bool | visibleMenuIcon |
菜单按钮的可视化属性. | |
bool | autoActivateWindows |
QString | applicationCreditsFile |
QByteArray | applicationCreditsContent |
QString | licensePath |
友元 | |
class | DTitlebarPrivate |
class | DMainWindowPrivate |
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
\inmodule dtkwidget
继承自 QApplication ,并在此之上添加了一些特殊的设定,如:
Dtk::Widget::DApplication::DApplication | ( | int & | argc, |
char ** | argv | ||
) |
constructs an instance of DApplication.
用于构建 DApplication 实例的构造函数
argc is the same as in the main function. argc 作用同 QApplication::QApplication 参数 argc。 argv is the same as in the main function. argv 作用同 QApplication::QApplication 参数 argv。
对象构造时会判断环境变量 DTK_FORCE_RASTER_WIDGETS 的值,如果为 TRUE 则开启 Qt::AA_ForceRasterWidgets,为 FALSE 则不开启,当没有设置此环境变量时,如果 编译时使用了宏 FORCE_RASTER_WIDGETS(龙芯和申威平台默认使用),则开启 Qt::AA_ForceRasterWidgets,否则不开启。
DAboutDialog * Dtk::Widget::DApplication::aboutDialog | ( | ) |
returns the about dialog of this application.
返回一个基于当前程序信息的关于对话框.
If the about dialog is not set, it will automatically construct one. 此对话框可以通过 DApplication::setAboutDialog 进行设置,如果没有设置就使用此函数进行获取, 系统会创建一个新的关于对话框。
void Dtk::Widget::DApplication::acclimatizeVirtualKeyboard | ( | QWidget * | window | ) |
用于窗口中可输入控件自适应虚拟键盘.
为窗口的可输入控件添加自动适应虚拟键盘输入法的功能。开启此功能后,当 监听到 QInputMethod::keyboardRectangleChanged 后,会判断当 前的可输入(不仅仅是处于焦点状态)控件是否为此 window 的子控件, 如果是,则将通过 QWidget::setContentsMargins 更新 window 的布局区域,以此确保可输入控件处于可见区域。如果可输入控件处于一个 QAbstractScrollArea 中,将会压缩 window 的布局空间,促使 可滚动区域缩小,再使用 QAbstraceScrollArea::scrollContentsBy 将可输入控件滚动到合适的区域,否则将直接把 window 的内容向上移动为虚拟键盘 腾出空间。
window 必须是一个顶层窗口
QString Dtk::Widget::DApplication::applicationAcknowledgementPage | ( | ) | const |
returns the acknowlegement page of the application.
记录程序的鸣谢信息网址,主要用于在关于对话框中进行展示.
It's mainly used to construct an about dialog of the application.
bool Dtk::Widget::DApplication::applicationAcknowledgementVisible | ( | ) | const |
QString Dtk::Widget::DApplication::applicationDescription | ( | ) | const |
returns the long description of the application.
属性记录了程序的描述信息,主要用于关于对话框中的信息展示.
It's mainly used to construct an about dialog of the application.
QString Dtk::Widget::DApplication::applicationHomePage | ( | ) | const |
程序的主页地址.
该属性记录程序的主页网址,主要用于在关于对话框中进行展示。 默认情况下,该地址为 Uos 或者 Deepin 官方网站地址。
QString Dtk::Widget::DApplication::applicationLicense | ( | ) | const |
returns the license used by this application.
It's mainly used to construct an about dialog of the application.
applicationLicense 属性是程序所使用的授权协议; 主要用于在关于对话框中进行展示,默认值为 GPLv3。
|
static |
|
static |
自定义 Qt 主题配置文件的路径。
默认文件通常为 "~/.config/deepin/qt-theme.ini" 其中包含应用的图标主题、字体、、屏幕缩放等相关的配置项。可应用于以root用户启动的 应用,需要跟随某个一般用户的主题设置项。 path 中不包含 "/deepin/qt-theme.ini" 部分,如:path = "/tmp", 则配置文件路径为:"/tmp/deepin/qt-theme.ini"。 path 不要以 "/" 结尾
|
static |
|
static |
返回一个DApplicatioin实例.
如果在执行此函数之前DApplication已经被创建则返回已存在的实例,否则直接创建一个 新的DApplication实例并返回。主要用于与deepin-trubo服务相配合,用于共享 deepin-turbo dtkwidget booster中已经创建的DApplication对象,以此节省初始化时间。
argc 传递给DApplication的构造函数 argv 传递给DApplication的构造函数
|
protectedvirtual |
用于处理菜单中关于按钮的点击
Triggered when user clicked the about menu item of this window's titlebar, default action is to show the about dialog of this window(if there is one), override this method if you want to change the default action.
该函数在用户点击窗口标题栏的关于按钮时触发,默认实现为打开程序关于对话框, 子类可以重现实现此函数以覆盖其默认行为。
|
protectedvirtual |
DApplication::handleHelpAction
Triggered when user clicked the help menu item of this window's titlebar, default action is to open the user manual of this program, override this method if you want to change the default action.
用于处理菜单中帮助按钮的点击.
该函数在用户点击窗口标题栏的帮助按钮时触发。 默认实现为打开当前程序的帮助手册,子类可以重现实现此函数以覆盖其默认行为。
|
protectedvirtual |
用于处理菜单中退出按钮的点击
Triggered when user clicked the exit menu item of this window's titlebar, default action is to quit this program, you can try to save your data before the program quitting by connecting to the aboutToQuit signal of this application. override this method if you want to change the default action.
该函数在用户点击窗口标题栏的关闭按钮时触发,默认行为是退出整个程序, 子类可以重写此函数以覆盖其行为。
void Dtk::Widget::DApplication::ignoreVirtualKeyboard | ( | QWidget * | window | ) |
恢复虚拟键盘的自适应操作.
该函数用于恢复虚拟键盘到默认状态,将不会为虚拟键盘的环境做任何自适应操作。
bool Dtk::Widget::DApplication::isAcclimatizedVirtualKeyboard | ( | QWidget * | window | ) | const |
是否自适应虚拟键盘
|
static |
强制程序使用的平台插件到dxcb.
这个函数的工作原理是通过设置 QT_QPA_PLATFORM 来影响平台插件的加载,所以此函数 必须在 DApplication 实例创建前进行调用。
检查当前程序是否使用了dxcb平台插件.
bool Dtk::Widget::DApplication::loadTranslator | ( | QList< QLocale > | localeFallback = QList<QLocale>() << QLocale::system() | ) |
loads translate file from system or application data path.
加载程序的翻译文件.
You must name the file correctly; if the program is dde-dock, then the qm file for English locale would be dde-dock_en.qm. Translation files must be placed in correct directories as well. The lookup order is as follows:
\list
APPNAME is the name of program executable. localeFallback, a list of fallback locale you want load.
使用这个函数需要保证翻译文件必须正确命名: 例如程序名叫 dde-dock, 那么翻译文件在中文locale下的名称必须是 dde-dock_zh_CN.qm;翻译文件还需要放置 在特定的位置,此函数会按照优先级顺序在以下目录中查找翻译文件:
\list
APPNAME 即可执行文件的名称。
localeFallback 指定了回退的locale列表,默认只有系统locale。
const QIcon & Dtk::Widget::DApplication::productIcon | ( | ) | const |
returns the product icon of this application.
It's mainly used to construct an about dialog of the application.
productIcon 属性是程序的产品图标, 主要用于在关于对话框中进行展示。
QString Dtk::Widget::DApplication::productName | ( | ) | const |
returns the product name of this application.
程序的产品名称.
It's mainly used to construct an about dialog of the application.
产品名称不同与 applicationName ,应该是类似如“深度终端”,而不是 deepin-terminal, 这个名称主要用于在程序的关于对话框中进行展示。 如果没有手动通过 setProductName 来设置,会尝试使用 QApplication::applicationDisplayName 来充当产品名称。
|
static |
用于跟 startdde 进行通信,告知 startdde 进程已经启动成功.
|
signal |
该信号在对应屏幕 screen 的缩放比可能发现变化时触发.
依赖于 deepin 平台主题插件(dde-qt5integration 包中提供),实时更改 屏幕缩放比是通过更改配置文件 ~/.config/deepin/qt-theme.ini 实现,与此相关的 配置项有三个: \list
未设置此值时,默认会在 ScreenScaleFactors 值改变后将屏幕逻辑dpi更改为主屏默认值,一般情况下,不需要设置此值。 ScreenScaleFactors 和 ScaleFactor 的值改变后,会触发所有屏幕的 QScreen::geometryChanged, 且会根据当前缩放 更新所有QWindow的geometry(更新时保持窗口的真实大小不变,新窗口大小=窗口真实大小/新的缩放比)。另外,可在构造 DApplication 对象之前设置 Qt::AA_DisableHighDpiScaling 为 true,或添加环境变量 D_DISABLE_RT_SCREEN_SCALE 禁用实时缩放的支持。
void Dtk::Widget::DApplication::setAboutDialog | ( | DAboutDialog * | aboutDialog | ) |
sets the aboutDialog of this application.
为当前程序设置一个关于对话框.
It's mainly used to override the auto-constructed about dialog which is not a common case, so please do double check before using this method.
void Dtk::Widget::DApplication::setApplicationAcknowledgementPage | ( | const QString & | link | ) |
sets the acknowlegement page of the application.
link is the acknowlegement page link to be shown in the about dialog.
void Dtk::Widget::DApplication::setApplicationAcknowledgementVisible | ( | bool | visible | ) |
设置是否显示关于对话框中的鸣谢地址显示.
visible 为 true 显示鸣谢地址,为 false 隐藏鸣谢地址。
void Dtk::Widget::DApplication::setApplicationDescription | ( | const QString & | description | ) |
sets the description of the application.
description is description to be set.
void Dtk::Widget::DApplication::setApplicationLicense | ( | const QString & | license | ) |
sets the license of this application.
license is the license to be set.
void Dtk::Widget::DApplication::setCustomHandler | ( | DAppHandler * | handler | ) |
设置 app 的处理程序.
如果要设置,必须对 help、about、quit 都进行处理。 handler 用于特定 App 中的自定义处理逻辑,需要继承实现。
void Dtk::Widget::DApplication::setProductIcon | ( | const QIcon & | productIcon | ) |
sets the product icon of this application.
productIcon is the product icon to be set.
void Dtk::Widget::DApplication::setProductName | ( | const QString & | productName | ) |
sets the product name of this application.
productName is the product name to be set.
bool Dtk::Widget::DApplication::setSingleInstance | ( | const QString & | key | ) |
returns name of the theme that the application is currently using.
theme name can be one of light, dark, semidark or semilight. theme 属性表示当前程序使用的主题名称,目前可选的主题名称有 light、dark、semidark 和 semilight。
set theme for the application to use the theme we provide.
theme is the name of the theme we want to set.
用于将程序设置成单实例.
key 是确定程序唯一性的ID,一般使用程序的二进制名称即可。
bool Dtk::Widget::DApplication::setSingleInstance | ( | const QString & | key, |
SingleScope | singleScope | ||
) |
一个重写函数,增加了控制单实例范围的 singleScope 参数。
在Linux环境下默认使用DBus的方式实现单例判断,在其它环境或者设置了环境变量 DTK_USE_SEMAPHORE_SINGLEINSTANCE 时使用系统信号量的方式实现单例判断。
key 是确定程序唯一性的ID,一般使用程序的二进制名称即可。 singleScope 用于指定单实例的影响范围,具体见 DApplication::SingleScope 。
|
readwrite |
菜单项内 CheckBox 控件的可视化属性
该属性代表了程序中菜单项是否显示Checkbox控件。 默认地,该属性为 false.
|
readwrite |
菜单按钮的可视化属性.
visibleMenuIcon 属性代表了程序中菜单项是否显示图标。 默认地,该属性为 false.
|
readwrite |
菜单项快捷键文本的可视化属性
该属性代表了程序中菜单项是否显示对应的快捷键。 默认地,该属性为 false.