version password
Paradox 7 jIGGAe or cupcdvum
Paradox 5 jIGGAe or cupcdvum
Paradox 4 nx66ppx
月度归档:2009年09月
osx下编译firebird
$ export LIBTOOLIZE=glibtoolize $ export LIBTOOL=glibtool
$ ./autogen.sh$ make
qt中保存图片数据到数据库
转自:http://www.qtcn.org/bbs/read.php?tid=13674
继续我的SQLite学习,这次的任务是存取大字段。
一,创建数据库
create table iconTable(icon blob);
二,QtDesigner设计界面
dlgIconDB.ui
dlgIconDB.ui
三,编写代码如下:
(dlgIconDB.h)
#ifndef H_DLGICONDB_H
#define H_DLGICONDB_H
#include <QDialog>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QSqlField>
#include <QPixmap>
#include <QMessageBox>
#include <QVariant>
#include <QBuffer>
#include <QFileDialog>
#include “ui_dlgIconDB.h”
class CDlgIconDB: public QDialog
{
Q_OBJECT;
public slots:
void next()
{
query->next();
//对我来说,这里至少有以下几个知识点
//1。QLabel显示图标setPixmap
//2。QVariant和QPixmap转换,通过QVariant的toByteArray转换
//3。读取Query的字段值 Query.record().field(“fieldname”)
//4。如何调用父类的析构函数?
//5。Query如何新增记录?
//这期间我犯了几个错误
//1。以this.的方式访问类成员,
//2。没有以public的方式继承QDialog
QPixmap pixmap;
pixmap.loadFromData(query->record().field(“icon”).value().toByteArray());
ui_dialog.lblView->setPixmap(pixmap);
};//查看后一个
void prev()
{
query->previous();
QPixmap pixmap;
pixmap.loadFromData(query->record().field(“icon”).value().toByteArray());
ui_dialog.lblView->setPixmap(pixmap);
};//查看前一个
void browse()
{
QString filename = QFileDialog::getOpenFileName(this, tr(“打开图标”), “”,tr(“图标文件(*.ico)”));
ui_dialog.lblBrowse->setPixmap(QIcon(filename).pixmap(16,16));
};//浏览,打开图标
void add()
{
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::ReadWrite);
ui_dialog.lblBrowse->pixmap()->save(&buffer,”BMP”);
//这里默认传递的是NULL指针,导致save返回false。
QVariant variant(ba);
QSqlQuery qryInsert;
qryInsert.prepare(“insert into iconTable(icon) values(?)”);
qryInsert.bindValue(0, variant);
qryInsert.exec();
};//添加图标
public:
CDlgIconDB(QWidget * parent = 0):QDialog(parent)
{
ui_dialog.setupUi(this);
db = QSqlDatabase::addDatabase(“QSQLITE”);
db.setDatabaseName(“iconDB”);
db.open();
query = new QSqlQuery(“select * from iconTable”);
connect(ui_dialog.btnBrowse, SIGNAL(clicked()),this,SLOT(browse()));
connect(ui_dialog.btnAdd, SIGNAL(clicked()),this,SLOT(add()));
connect(ui_dialog.btnPrev,SIGNAL(clicked()),this,SLOT(prev()));
connect(ui_dialog.btnNext,SIGNAL(clicked()),this,SLOT(next()));
}
~CDlgIconDB(){delete query;};
private:
Ui_Dialog ui_dialog;
QSqlDatabase db;
QSqlQuery * query;
};
#endif
(main.cpp)
#include <QApplication>
#include <QTextCodec>
#include “dlgIconDB.h”
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName(“UTF-8”));
CDlgIconDB dialog;
dialog.show();
return app.exec();
}
ubuntu下lazarus中文界面的乱码问题
sudo cp /etc/gtk/gtkrc.zh_CN /etc/gtk/gtkrc.zh_CN.utf-8
cdr转iso
hdiutil makehybrid -iso -joliet -o FILENAME.iso FILENAME.cdr