linux窗口程序设计-Qt4精彩实例分析2

来源:互联网 发布:胸痛中心数据填报平台 编辑:程序博客网 时间:2024/06/05 22:48

1、new project,选择applications,qt widgets application,choose。

2、命名,存储路径,next。

3、next。

4、类名,头文件,源文件,选择基类为对话框,generate form不选,next,finish。

5、程序代码如下:

standarddialogs.h文件

#include<QDialog>#include<QGridLayout>#include<QPushButton>#include<QLineEdit>#include<QFrame>class StandardDialogs:public QDialog{    Q_OBJECTpublic:    StandardDialogs(QWidget *paremt=0,Qt::WindowFlags f=0);    //~StandardDialogs();public:    QGridLayout *layout;    QPushButton *filePushButton;    QPushButton *colorPushButton;    QPushButton *fontPushButton;    QLineEdit *fileLineEdit;    QLineEdit *fontLineEdit;    QFrame *colorFrame;private slots:    void slotOpenFileDlg();    void slotOpenColorDlg();    void slotOpenFontDlg();};

standarddialogs.cpp文件

#include "standarddialogs.h"#include <QFileDialog>#include <QColorDialog>#include <QFontDialog>StandardDialogs::StandardDialogs( QWidget *parent,Qt::WindowFlags f )    :QDialog( parent,f ){    setWindowTitle(tr("标准对话框"));    layout = new QGridLayout(this);    filePushButton = new QPushButton;    filePushButton->setText(tr("文件对话框"));    colorPushButton = new QPushButton;    colorPushButton->setText(tr("颜色对话框"));    fontPushButton = new QPushButton;    fontPushButton->setText(tr("字体对话框"));    fileLineEdit = new QLineEdit;    fontLineEdit = new QLineEdit;    fontLineEdit->setText(tr("hello world"));    colorFrame = new QFrame;    colorFrame->setFrameShape(QFrame::Box);    colorFrame->setAutoFillBackground(true);    layout->addWidget( filePushButton ,0,0);    layout->addWidget(fileLineEdit ,0,1);    layout->addWidget(colorPushButton ,1,0);    layout->addWidget(colorFrame ,1,1);    layout->addWidget(fontPushButton ,2,0);    layout->addWidget(fontLineEdit,2,1);    layout->setMargin(15);    layout->setSpacing(10);    connect(filePushButton,SIGNAL(clicked()),this,SLOT(slotOpenFileDlg()));    connect(colorPushButton,SIGNAL(clicked()),this,SLOT(slotOpenColorDlg()));    connect(fontPushButton,SIGNAL(clicked()),this,SLOT(slotOpenFontDlg()));}void StandardDialogs::slotOpenFileDlg(){    QString s = QFileDialog::getOpenFileName(                this,                "open file dialog",                "~/",                "C++ files(*.cpp);;C files(*.c);;Head files(*.h)"                );    fileLineEdit->setText( s.toLatin1() );}void StandardDialogs::slotOpenColorDlg(){    QColor color = QColorDialog::getColor(Qt::red);    if(color.isValid())    {        colorFrame->setPalette(QPalette(color));    }}void StandardDialogs::slotOpenFontDlg(){    bool ok;    QFont font = QFontDialog::getFont(&ok);    if(ok)    {        fontLineEdit->setFont(font);    }}

main.cpp文件

#include "standarddialogs.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    StandardDialogs w;    w.show();    return a.exec();}

6、编译运行:点击锤子,点击绿色三角。

7、运行结果:


原创粉丝点击