欢迎使用 WordPress。这是系统自动生成的演示文章。编辑或者删除它,然后开始您的博客!
Kate dNA安装时的注意事项
Qt4.7.0文档翻译:QDesktopServices类参考,QDesktopServices Class Reference
Qt4.7.0文档翻译:QDesktopServices类参考,QDesktopServices Class Reference
详细描述
QDesktopServices类提供咯一些方法用来使用常规的桌面服务。
很多桌面系统都提供一些可被程序用来进行常规工作的服务,例如打开一个网页,并且是使用一种一致的却又兼顾到用户的偏好设置的方式。
这个类就包含咯一些为这些服务提供咯简单的接口的函数,它们还会告诉你的代码那些服务是成功咯还是失败咯。
openUrl()函数用来在外部程序中打开位于任意URL的文件。对于那些指向本地文件系统的URL(那种情况下URL 的模式是”file”),会使用一个适当的程序来打开;否则的话,就会使用一个网页浏览器来下载并且显示那个文件。
用户的桌面设置选项控制的是某些特定的可执行文件是应该打开来浏览还是应该直接执行。某些桌面环境会阻止用户执行从外部URL下载来的文件,或者在执行之前要求用户确认权限。
URL处理器
openUrl()函数的行为可针对单个URL 模式而定制,以便允许程序针对特定类型的URL来替换掉默认的处理行为。
分发机制只允许对每个URL 模式有一个自定义的处理器;这个东西是使用setUrlHandler()函数来设置的。每个处理器都被实现成一个信号槽,它接收一个QUrl作为参数。
针对每个模式的已有的处理器可使用unsetUrlHandler()函数来去除。这将会使得针对给定的模式的处理行为恢复成默认的行为。
举个例子,这个系统使得实现一个帮助系统非常容易。帮助信息可以在文本标签和文本浏览器中提供,使用help://myapplication/mytopic这样的URL,再注册一个处理器,这样就可以在程序内部显示帮助信息咯。
class MyHelpHandler : public QObject
{
Q_OBJECT
public:
…
public slots:
void showHelp(const QUrl &url);
};
QDesktopServices::setUrlHandler(“help”, helpInstance, “showHelp”);
如果你在处理器中认为你无法打开某个URL 的话,那么你可以只管再次带着相同的参数调用QDesktopServices::openUrl(),那样的话它会使用用户的桌面环境中的合适的机制来尝试打开那个URL。参考QSystemTrayIcon和QProcess。
成员函数文档
bool QDesktopServices::openUrl ( const QUrl & url ) [静态]
使用用户的桌面环境中的适当的网页浏览器打开指定的url,如果成功则返回真;否则返回假。
如果那个URL 是指向一个本地文件的话(也就是说,URL 模式是”file”),那么会使用一个适当的程序打开它,而不是使用网页浏览器。
下面这个例子打开Windows 文件系统中某个包含空格的路径中的一个文件:
QDesktopServices::openUrl(QUrl(“file:///C:/Documents and Settings/All Users/Desktop”, QUrl::TolerantMode));
如果指定的是一个mailto URL 的话,那么就会使用用户的电子邮件客户端来处理,它会打开一个编写窗口,其中会包含URL 中指定的那些选项。这一切与一个网页浏览器处理一个mailto链接的过程是何等的类似。
例如,下面的URL 中包含一个收件人(user@foo.com)、一个主题(Test)和一个邮件正文(Just a test):
mailto:user@foo.com?subject=Test&body=Just a test
警告:尽管很多邮件客户端都可以发送附件并且能识别Unicode,但是用户可能会在设置中取消这些特性。另外,某些邮件客户端(比如Lotus Notes)在处理长 URL时会有问题。
参考setUrlHandler()。
Qt4.7.0文档翻译:QWidget类参考,QWidget Class Reference
Qt4.7.0文档翻译:QWidget类参考,QWidget Class Reference
属性文档
visible : 逻辑值
这个属性管理的是这个部件是否可见.
在这个窗口的全部亲代部件都可见的情况下,调用setVisible(true)或者show()会将这个部件设置为可见状态.如果某个祖先部件不可见的话,那么这个部件不会变成可见状态,直到所有的祖先都显示出来才会变成可见状态.如果它的大小或者位置发生咯改变,那么Qt会确保它在显示之前接收到移动和改变大小事件.如果这个部件还没有改变过大小的话,那么Qt 会使用adjustSize()来将它的大小调整成一个适当的默认值.
调用setVisible(false)或者hide()会显式地将一个部件隐藏起来.对于一个显式隐藏的部件来说,除非你显示(show)它,否则,即使它的全部祖先部件都可见的话它也不会变得可见.
当一个部件的可见性发生改变时,会接收到显示和隐藏事件.在一个隐藏事件和一个显示事件之间,没必要浪费 CPU 时间片来准备或者向用户显示信息咯.比如说,一个视频程序在这个时候就可以简单地停止生成新的帧.
一个偶然被屏幕上其它窗口挡住的部件仍然被认为是可见的.对于图标化的窗口和位于其它(在支持这个概念的平台上)虚拟桌面上的窗口也是一样.当一个部件的映射状态被窗口系统改变时,它会接收到自然的显示和隐藏事件.例如,当用户将窗口最小化时,窗口会接收到一个自然的隐藏事件,当窗口被恢复时,又会接收到一个自然的显示事件.
你几乎不需要重载setVisible()函数.如果你需要在一个部件显示出来之前改变某些设置的话,就使用showEvent().如果你需要做一些延迟性的初始化的话,那么就使用传递给event()函数的光泽(Polish)事件.
访问函数:
|
bool |
isVisible () const |
|
virtual void |
setVisible ( bool visible ) |
参考show()、hide()、isHidden()、isVisibleTo()、isMinimized()、showEvent()和hideEvent()。