QT学习 第一章:基本对话框(2)

操作系统:Fedora Linux 14

创建文件夹StandardDialogs,以下是代码(三个文件)

/** Object: StandardDialogs 
 ** Desc:   标准对话框的使用  
 ** File:   main.cpp  
 ** Compile:qmake-qt4 -project;qmake-qt4;make;  
 ** Note:  编译说明:  
 **      qmake-qt4 -prject 自动生成程序的项目文件(*.pro);   
 **      qmake-qt4 用于生成程序的Makefile文件;  
 **      make 编译 Makefile 文件得到可执行文件。  
 ** */    
#include <QApplication> // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。    
#include "StandardDialogs.h" // 自定义类头文件,StandardDialogs是包含标准通用文件对话框使用、标准通用颜色对话框使用和标准通用字体对话框使用的类。  
int main(int argc, char *argv[]){  
    QApplication app(argc, argv);  
    StandardDialogs *stddia = new StandardDialogs();  
    stddia->show();  
    return app.exec();  

================================

/** Object: StandardDialogs 
 ** Desc:   标准对话框的使用  
 ** File:   StandardDialogs.h 
 ** Class:  StandardDialogs标准对话框使用类 头文件  
 ** Compile:qmake-qt4 -project;qmake-qt4;make;  
 ** Note:  编译说明:  
 **      qmake-qt4 -prject 自动生成程序的项目文件(*.pro);   
 **      qmake-qt4 用于生成程序的Makefile文件;  
 **      make 编译 Makefile 文件得到可执行文件。  
 ** */    
#ifndef STANDARDDIALOGS_H  
#define STANDARDDIALOGS_H  
#include <QtGui> // 包含了QT基本头文件和GUI头文件。GUI:图形用户界面。  
class StandardDialogs: public QDialog {  
    Q_OBJECT // QT对象派生类必须使用的宏。  
public:  
    StandardDialogs(QWidget *parent=0, Qt::WindowFlags f=0); // 构造函数  
    ~StandardDialogs(); // 析构函数  
public:  
    QGridLayout *m_pGLayout; // 表格布局控件  
      
    QPushButton *m_pPBFile;  // 按钮控件  
    QPushButton *m_pPBColor;  
    QPushButton *m_pPBFont;  
      
    QLineEdit *m_pLEFile;    // 文本框控件  
    QLineEdit *m_pLEFont;  
    QFrame    *m_pFrameColor;// 基本框架控件  
private slots: // 槽处理函数  
    void SlotOpenFileDlg();  
    void SlotOpenColorDlg();  
    void SlotOpenFontDlg();  
      
};  
 
#endif // STANDARDDIALOGS_H 

================================

/** Object: StandardDialogs 
 ** Desc:   标准对话框的使用  
 ** File:   StandardDialogs.cpp 
 ** Class:  StandardDialogs标准对话框使用类 源文件  
 ** Compile:qmake-qt4 -project;qmake-qt4;make;  
 ** Note:  编译说明:  
 **      qmake-qt4 -prject 自动生成程序的项目文件(*.pro);   
 **      qmake-qt4 用于生成程序的Makefile文件;  
 **      make 编译 Makefile 文件得到可执行文件。  
 ** */    
#include "StandardDialogs.h"  
/* 构造函数 */ 
StandardDialogs::StandardDialogs(QWidget *parent, Qt::WindowFlags f):QDialog(parent, f){  
    setWindowTitle(tr("Standard Dialogs"));// 设置对话窗口标题,tr:多语言转换函数。        
      
    m_pGLayout = new QGridLayout(this);  
      
    m_pPBFile = new QPushButton();  
    m_pPBFile->setText(tr("File Dialog"));  
      
    m_pPBColor = new QPushButton();  
    m_pPBColor->setText(tr("Color Dialog"));  
      
    m_pPBFont = new QPushButton();  
    m_pPBFont->setText(tr("Font Dialog"));  
    m_pLEFile = new QLineEdit();  
    m_pFrameColor = new QFrame();  
    m_pFrameColor->setFrameShape(QFrame::Box);// 设置外形为盒子外形  
    m_pFrameColor->setAutoFillBackground(true); // 设置自动填充背景色  
    m_pLEFont = new QLineEdit();  
    m_pLEFont->setText(tr("Hello World"));  
    m_pGLayout->addWidget(m_pPBFile, 0, 0); // 布局表格中加入元素,第一行,第一列  
    m_pGLayout->addWidget(m_pLEFile, 0, 1);  
    m_pGLayout->addWidget(m_pPBColor, 1, 0);  
    m_pGLayout->addWidget(m_pFrameColor, 1, 1);  
    m_pGLayout->addWidget(m_pPBFont, 2, 0);  
    m_pGLayout->addWidget(m_pLEFont, 2, 1);  
      
    m_pGLayout->setMargin(15); // 设置布局表格四周边空白为15像素。  
    m_pGLayout->setSpacing(10); // 设置布局表格内部元素间空白为10像素。  
      
    /* 绑定按键单击事件处理函数 */    
    connect(m_pPBFile, SIGNAL(clicked()), this, SLOT(SlotOpenFileDlg()));  
    connect(m_pPBColor, SIGNAL(clicked()), this, SLOT(SlotOpenColorDlg()));  
    connect(m_pPBFont, SIGNAL(clicked()), this, SLOT(SlotOpenFontDlg()));  
      
}  
/* 析构函数 */ 
StandardDialogs::~StandardDialogs(){  
}  
/* */ 
void StandardDialogs::SlotOpenFileDlg(){  
    /* 打开文件选择对话框,返回选择文件绝对路径 */ 
    QString s = QFileDialog::getOpenFileName(this, tr("open file dialog"),   
        "./", tr("C++ files (*.cpp);;C files (*.c);;Head files (*.h)"));  
    m_pLEFile->setText(s);     
}  
/* */ 
void StandardDialogs::SlotOpenColorDlg(){  
    /* 打开颜色选择对话框,返回颜色对象 */ 
    QColor color = QColorDialog::getColor(Qt::blue);  
    if (color.isValid()){  
        m_pFrameColor->setPalette(QPalette(color));  
    }  
}  
/* */ 
void StandardDialogs::SlotOpenFontDlg(){  
    bool bOk = false;  
    /* 打开字体选择对话框,返回字体对象 */ 
    QFont font = QFontDialog::getFont(&bOk);  
    if (bOk){  
        m_pLEFont->setFont(font);  
    }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwfpdg.html