standarddialogs.h
#ifndef STANDARDDIALOGS_H
#define STANDARDDIALOGS_H
#include <QtGui>
class Standarddialogs:public QDialog
{
Q_OBJECT;
public:
Standarddialogs(QWidget *parent=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();
};
#endif
standarddialogscpp
#include "standarddialogs.h"
Standarddialogs::Standarddialogs(QWidget *parent, Qt::WindowFlags f):QDialog(parent,f)
{
setWindowTitle(tr("Standard Dialogs"));
layout=new QGridLayout(this);
filePushButton=new QPushButton();
filePushButton->setText(tr("FileData"));
colorPushButton=new QPushButton();
colorPushButton->setText(tr("Color Dialog"));
fontPushButton=new QPushButton();
fontPushButton->setText(tr("Font Dialog"));
fileLineEdit=new QLineEdit();
colorFrame=new QFrame();
colorFrame->setFrameShape(QFrame::Box);
colorFrame->setAutoFillBackground(true);
fontLineEdit=new QLineEdit();
fontLineEdit->setText(tr("Hello World!"));
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()));
}
Standarddialogs::~Standarddialogs()
{}
void Standarddialogs::slotOpenFileDlg()
{
QString s=QFileDialog::getOpenFileName(
this,"open file dialog",
"/",
"C++ files(*.cpp);;C files(*.c);;Head files(*.h)");
fileLineEdit->setText(s.toAscii());
}
void Standarddialogs::slotOpenColorDlg()
{
QColor color=QColorDialog::getColor(Qt::blue);
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 )
{
QFont font("ZYSong18030",12);
QApplication::setFont(font);
QApplication a( argc, argv );
QTranslator translator(0);
translator.load("standarddialog_zh.qm",".");
a.installTranslator(&translator);
Standarddialogs *standarddialogs = new Standarddialogs();
standarddialogs->show();
return a.exec();
}
standarddialog.pro
######################################################################
# Automatically generated by qmake (2.01a) ?? 5? 12 23:13:30 2012
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
# Input
HEADERS += standarddialogs.h
SOURCES += main.cpp standarddialogs.cpp
TRANSLATIONS += standarddialog_zh.ts
嘿嘿,其它的
不说,主要是汉化这块
1.在pro中加入TRANSLATIONS += standarddialog_zh.ts
2.在shell中输入:lupdate standarddialog.pro 或者 lupate standarddialog_zh.ts
3.输入:linguist standarddialog_zh.ts
4.
如图,选中一个要翻译到,把汉字填上,点对钩,变成绿色对钩就对了,不是就好好改。
全完成后保存 在file->选发布。OK
5.ls 后发现有了.qm文件就对了
运行。。。。OK
我还有一些问题就是用QTcreator运行还是英文,但是在shell运行就是汉化的,求大家讲解,谢谢