您的位置:首页 > 编程语言 > Qt开发

学习笔记之qt4程序中引入自定义窗口部件之单一继承方式

2016-12-06 20:00 597 查看
1、用qt creator创建一个名为singleinherit的empty qt project工程并把这个工程存放在一个名为findfile的文件夹中(用qt designer创建的findfileform.ui文件也存放在这个文件夹中)。

2、右击该工程将已有的findfileform.ui文件添加到该工程中。
3、在该工程中添加文件findfileform.cpp,findfileform.h,singleinherit.cpp,代码如下:

findfileform.h

#ifndef FINDFILEFORM_H
#define FINDFILEFORM_H

#include"ui_findfileform.h"

class CFindFileForm:public QWidget
{
Q_OBJECT
public:
CFindFileForm(QWidget *parent=0);
private:
Ui_FindFileForm ui;
};

#endif // FINDFILEFORM_H

注:类Ui_FindFileForm是由uic工具根据findfileform.ui文件创建的,它的功能是在构造函数中初始化、加载、管理GUI用户界面。

findfileform.cpp

#include<QtGui>
#include"findfileform.h"

CFindFileForm::CFindFileForm(QWidget *parent)
:QWidget(parent)
{
//对qt disigner绘制的GUI用户界面进行初始化和加载
ui.setupUi(this);
//对用户界面中的一些窗口部件的状态进行初始化
ui.statusLabel->setText(tr("就绪"));
ui.resultLabel->setText(tr("找到0个文件"));
ui.nameComboBox->setEditText("*");
ui.dirComboBox->setEditText(QDir::currentPath());
ui.dirComboBox->addItem(QDir::currentPath());
ui.sensitiveCheckBox->setEnabled(false);
ui.stopPushButton->setEnabled(false);
}

代码解析:

1、静态函数QDir::currentPath()返回应用程序所在目录的绝对路径;

2、 QCheckBox::setEnabled(false)设置“区分大小写”复选框的初始状态为不可用;

3、QPushButton::setEnabled(false)设置“停止查找”按钮为不可用的;

4、单一继承方式通过成员ui来引用qt disigner中部署的窗口部件;

       单一继承方式将qt disigner绘制的GUI用户界面对象包含在自定义类中,作为一个私有成员来使用。这种方式的优点是,应用程序能后控制用户界面的外观和显示方式,并能够与用户进行交互;

   此外,还可以使用同样的一个ui文件来生成多个不同的自定义界面类,可以重复使用qt disigner绘制的GUI用户界面。

singleinherit.cpp

#include<QtGui/QApplication>

#include<QtCore/QTextCodec>

#include"findfileform.h"


int main(int argc,char *argv[])

{

QApplication app(argc,argv);

QTextCodec::setCodecForTr(QTextCodec::codecForName("gb2312"));

Q_INIT_RESOURCE(findfile);


CFindFileForm form;

form.show();


return app.exec();

}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐