StupidBeauty
Read times:294Posted at:Thu Jul 7 19:09:05 2011
- no title specified

Wt3.1.9文档翻译:Wt::WDialog类参考,Wt::WDialog Class Reference

详细描述

WDialog显示出一个对话框

默认情况下,对话框是 模态的(modal) 。模态对话框会冻结用户界面 ,并且在对话框关闭之前不允许用户与用户界面的任何其它部分进行交互 (这是由服务器端控制的 ,所以你可以依赖它的行为 )。

有两种截然不同的使用WDialog 窗口的方法

WDialog可以像任何其它部件一样使用。在这种情况下WDialog只是简单地像另一个部件一样实例化。可通过调用 accept() reject() done() (或者将一个信号连接到其中一个方法)来关闭对话框。这个动作会将对话框隐藏并且发射 finished() 信号,你可以监听那个信号以 便处理对话框的结果并且删除那个对话框。与其它部件不同的是 ,对话框不需要添加到亲代部件中 ,而且默认情况下是隐藏的。你必须使用 show() 方法或者setHidden(true)来显示那个对话框

最简单的显示一个模态对话框的方法就是使用exec():在创建咯一个WDialog 窗口之后,调用 exec() 就会阻塞 住(挂起线程),直到对话框 被关闭,并且返回对话框的结果 。典型地 ,会有一个确定(OK)按钮被连接到 accept() ,并且在某些情况下会有一个取消 (Cancel)按钮被连接到 reject() 。这种解决方案有一个弊端 ,它不适合处理多个并行的会话,因为对于每个位于递归 (recursive)的事件循环中(在 exec() 方法中运行)的会话来说, 都有一个线程被阻塞。从实用的角度来说 ,这就意味着它只适合于那种带有严格的访问限制或者是部署在一个内部网 (intranet)或外联网(extranet)上的软件。

使用setModal(false)来创建一个非模态(non-modal)对话框。非模态的对话框不阻塞下层的用户界面 :用户不需要在与用户界面的其它部分交互之前先处理对话框

通过添加东西到contents()部件中来创建对话框的内容

使用示例,使用exec()方法

Wt::WDialog dialog("Personalia");

new Wt::WText("Enter your name: ", dialog.contents());

Wt::WLineEdit edit(dialog.contents());

new Wt::WBreak(dialog.contents());

Wt::WPushButton ok("Ok", dialog.contents());

//这些事件会使得对话框接受(accept())

edit.enterPressed().connect(&dialog, &Wt::WDialog::accept);

ok.clicked().connect(&dialog, &Wt::WDialog::accept);

if (dialog.exec() == Wt::WDialog::Accepted)

setStatus("Welcome, " + edit.text());

对话框是这样的(标准外观):

一个简单的自定义对话框 (默认主题)

一个简单的自定义对话框 (漂亮主题)

CSS

对话框拥有Wt-dialog Wt-outset 样式类。外观可使用以下样式类选择器来替换

.Wt-dialog .titlebar : 标题栏

.Wt-dialog .body : 窗口主体(要求 4像素 的竖向填充间距 (padding) )。

注意

为咯使对话框(或者准确地说 ,覆盖下面的用户界面的屏幕内容 silkscreen )在IE中正确地显示 ,"html body"间距 (margin)会被设置成0(如果还没这麽设置的话)。

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4