64,691
社区成员
发帖
与我相关
我的任务
分享
#ifndef MYLINK_H
#define MYLINK_H
#include <QtGui>
class myLink : public QWidget
{
Q_OBJECT
public:
myLink(QWidget *parent = 0);
private slots:
void insetLink();
void loadFile();
void svaeFile();
private:
QTextEdit *textBrowser;
QGridLayout *gridLayout;
QPushButton *saveButton;
QPushButton *loadButton;
QPushButton *insertButton;
QString fileName;
};
#endif
#include "myLink.h"
myLink::myLink(QWidget *parent):QWidget(parent)
{
gridLayout = new QGridLayout(this);
saveButton = new QPushButton(this);
saveButton->setText(tr("svae html"));
gridLayout->addWidget(saveButton,0,0,1,1);
loadButton = new QPushButton(this);
loadButton->setText(tr("load html"));
gridLayout->addWidget(loadButton,0,1,1,1);
insertButton = new QPushButton(this);
insertButton->setText(tr("insert link"));
gridLayout->addWidget(insertButton,0,2,1,1);
textBrowser = new QTextEdit(this);
textBrowser->setReadOnly(false);
textBrowser->setFocus();
gridLayout->addWidget(textBrowser,1,0,1,3);
fileName = QDir::QDir("aaa.html").absolutePath();
loadFile();
connect(saveButton, SIGNAL(clicked()), this, SLOT(svaeFile()));
connect(loadButton, SIGNAL(clicked()), this, SLOT(loadFile()));
connect(insertButton, SIGNAL(clicked()), this, SLOT(insetLink()));
}
void myLink::insetLink()
{
QTextCharFormat tcf;
tcf = textBrowser->currentCharFormat();
tcf.setAnchor(true);
tcf.setAnchorHref("http://www.baidu.com");
if(!textBrowser->textCursor().hasSelection())
textBrowser->textCursor().insertText(trUtf8("百度"),tcf);
else
textBrowser->setCurrentCharFormat(tcf);
}
void myLink::loadFile()
{
if (!QFile::exists(fileName))
return;
QFile file(fileName);
if (!file.open(QFile::ReadOnly))
return;
QByteArray data = file.readAll();
QTextCodec *codec = Qt::codecForHtml(data);
QString str = codec->toUnicode(data);
if (Qt::mightBeRichText(str)) {
textBrowser->setHtml(str);
} else {
str = QString::fromLocal8Bit(data);
textBrowser->setPlainText(str);
}
}
void myLink::svaeFile()
{
if (fileName.isEmpty())
return;
QFile file(fileName);
if (!file.open(QFile::WriteOnly))
return;
QTextStream ts(&file);
ts.setCodec(QTextCodec::codecForName("UTF-8"));
ts << textBrowser->document()->toHtml("UTF-8");
textBrowser->document()->setModified(false);
}
#include <QtGui>
#include "myLink.h"
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QTranslator translator;
translator.load("qt_zh_CN.qm");
app.installTranslator(&translator );
myLink mainWin;
mainWin.show();
return app.exec();
};