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

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_OBJECT
public:
    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、运行结果:


猜你喜欢

转载自blog.csdn.net/cocoiehl/article/details/78241888
qt4