• 8666阅读
  • 0回复

【摘录】《KDE2/Qt编程金典》第四章:显示弹出式对话框——4.4 KDialogBase [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-15
  KDialoBase部件是一种对话框工具包,大多朔对话框采用基本粮食的形式:一组数据输入的部件,下面有一排按钮。针对这一点,KDialogBase部件设计了一排嵌入式的按钮。
Mainline

1 /* kdbsimple.cpp */
2 #include <kapp.h>
3 #include "mainwidget.h"
5 int main(int argc,char **argv)
6 {
7 KApplication app(argc,argv,”kdbsimple”);
8 MainWidget mainwidget;
9 mainwidget.show();
10 app.setMainWidget(&mainwidget);
11 return(app.exec());
12 }

第8行创建了mainwidget ,在第10行被设计为应用程序主窗口。
MainWidget Header

1 /* mainwidget.h */
2 #ifndef MAINWIDGET_H
3 #define MAINWIDGET_H
4
5 #include <qwidget.h>
6
7 class MainWidget: public QWidget
8 {
9 Q_OBJECT
10 public:
11 MainWidget(QWidget *parent=0,const char *name=0);
12 private slots:
13 void popupKdb();
14 };
15
16 #endif

主窗口只有两个方法。一个是构造函数,另一个是将要连接到按钮的slot。popupKdb()的作用是为了显示KDialogBase窗口。
MainWidget

1 /* mainwidget.cpp */
2 #include “mainwidget.h”
3 #include <qpushbutton.h>
4 #include <kdialogbase.h>
5
6 MainWidget::MainWidget(QWidget *parent,const char *name)
7 : QWidget(parent,name)
8 {
9 setMinimumSize(200,80);
10 setMaximumSize(200,80);
11
12 QPushButton *button =
13 new QPushButton(“Popup”,this);
14 button->setGeometry(50,20,100,40);
15 connect(button,SIGNAL(clicked()),
16 this,SLOT(popupKdb()));
17 }
18
19 void MainWidget::popupKdb()
20 {
21 KDialogBase *dialog = new KDialogBase(this,
22 “kdbwidget”,TRUE);
23 dialog->exec();
24 delete dialog;
25 }

  这个部件来作为这个例子的主窗口。它只包含了Popup按钮,而无论何时点击按钮都将执行slot。
  无论何时点击按钮,KDialogBase widget就被构造出来。第23行的调用exec()引起对话框显示出来。当第一次显示时,点击OK按钮,简单地按回车键和点击OK是一样的。而且,也可以看到,每一个按钮都被指定了空间键——例如,键入Alt-C和选择Cancel是一样的。
  除非把一个slot和Apply按钮连接起来,否则此按钮什么也不做。Cancel键和OK键都可以关闭对话框。如果想要使用按钮,过程也很简单,把OK按钮和Apply按钮连接到将要接收和处理的对话框数据的slot按钮即可。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个