您的位置:首页 > 运维架构 > Linux

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

2017-10-15 16:59 441 查看
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、运行结果:

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