随笔 - 70, 文章 - 0, 评论 - 9, 引用 - 0
数据加载中……

Qt

Qt vlc视频开发libvlc_new返回空的问题

posted @ 2012-12-22 08:59 seahouse 阅读(4335) | 评论 (2)  编辑

Qt中根据拼音搜索汉字的问题
     摘要: 解决思路:
1 在数据库中增加一个“汉字--拼音”的数据表;
2 在QLineEdit输入框中监听到textChanged时,对于输入的字母进行判断处理:
1)根据最后一个字母搜索到匹配的汉字;
2)如果这个是第一个字母,那么根据这些汉字去查询数据结果,如果查询到,则计入内存(Hash表)中;如果不是第一个字母,就要根据前面的内存表再连接这个汉字列表来查询数据结果,如果查询到结果大于0个,则计入内存中。
3 对于内存中已存在的结果,直接匹配数据库,直接查询数据库结果。

注意:如果遇到字符格式问题,请使用toLocal8Bit()方法。  阅读全文

posted @ 2012-04-09 09:49 seahouse 阅读(2845) | 评论 (0)  编辑

Qt中针对Qt控件的中文翻译

posted @ 2012-02-29 12:35 seahouse 阅读(955) | 评论 (0)  编辑

xTuple ERP: PostBooks 环境搭建
     摘要: 前提:已下载安装了Qt
1 下载源码
xtuple,openrpt,csvimp

2 编译
先编译openrpt,再编译csvimp,最后编译xtuple
尽管global.pri里允许openrpt和csvimp在xtuple目录的../,../../,../../../,仍然建议将他们并列放置。
注:请勿修改这3个文件夹名称,否则需要修改global.pri
编译时间超过1小时

3 安装PostgresSQL
编译完成后运行,当然连不上数据库。安装PostgresSQL 9.0,请不要在目录中包含空格。

4 编译Qt对PostgresSQL的驱动插件
编译方法:http://www.qtcentre.org/wiki/index.php?title=Building_the_QPSQL_plugin_on_Windows_using_MinGW
步骤进行简单描述:
1)在支持mingw编译器的命令行中输入。
command:默认  阅读全文

posted @ 2011-11-07 19:41 seahouse 阅读(2619) | 评论 (3)  编辑

QSettings

posted @ 2011-07-18 10:05 seahouse 阅读(1387) | 评论 (0)  编辑

log4qt

posted @ 2011-04-25 17:14 seahouse 阅读(1654) | 评论 (2)  编辑

QDialog之accept

posted @ 2011-04-22 11:05 seahouse 阅读(3981) | 评论 (0)  编辑

QDateEdit的dataChanged信号槽执行2次问题
     摘要: 要实现修改日期,当不是指定条件时(今天),报错,并将其值设置有效(今天)
结果:当不满足条件时,弹出框弹了2次。
修改代码如下
void TestUI::date1(const QDate & date)
{
ui->dateEdit->blockSignals(true);
if (b)
{
QMessageBox::warning(this, "a", QString::number(b));
ui->dateEdit->setDate(QDate::currentDate());
b = false;
}
else
{
ui->dateEdit->setDate(QDate::currentDate());
b = true;
}
ui->dateEdit->blockSignals(false); 阅读全文

posted @ 2011-04-13 17:16 seahouse 阅读(3298) | 评论 (0)  编辑

Qt 之 stylesheet 用法, QSS实例

posted @ 2011-03-29 09:53 seahouse 阅读(45217) | 评论 (0)  编辑

通过QPoint确定框框位置
     摘要: 点击某个按钮后,在该按钮的下面或者右边弹出菜单或者弹出框。那么就需要对框框的位置进行定位。

QPoint point;
point.setX(btnMenu->x());
point.setY(btnMenu->y() + btnMenu->height());
point = mapToGlobal(point);

QAction *action = menu->exec(point);  阅读全文

posted @ 2011-03-25 17:40 seahouse 阅读(751) | 评论 (0)  编辑

QTableView, QTableWidget 用法整理
     摘要: 1 根据数据内容设定宽
  阅读全文

posted @ 2011-03-24 09:58 seahouse 阅读(5542) | 评论 (0)  编辑

使用qInstallMsgHandler将日志保存到文件
     摘要: void myMessageOutput(QtMsgType type, const char *msg)
{
QString text;
switch (type)
{
case QtDebugMsg:
text = QString("Debug: %1").arg(msg);
break;
case QtWarningMsg:
text = QString("Warning: %1").arg(msg);
break;
case QtCriticalMsg:
text = QString("Critical: %1").arg(msg);
break;
case QtFatalMsg:
text = QString("Fatal: %1").arg(msg);
abort()  阅读全文

posted @ 2011-03-22 17:25 seahouse 阅读(2226) | 评论 (0)  编辑

QTableWidget, QItemDelegate, QPushButton, QSignalMapper 删除处理
     摘要: 问题:QTableWidget,最后一列为删除按钮,点击时删除当前行。

QPushButton *editor = new QPushButton(tr("删除"), parent);
connect(editor, SIGNAL(clicked()), signalMapper, SLOT(map()));
signalMapper->setMapping(editor, index.data(Qt::UserRole + 2).toString());
return editor;  阅读全文

posted @ 2011-03-10 11:26 seahouse 阅读(2881) | 评论 (0)  编辑

Qt常见问题01
     摘要: 1 加上Q_OBJECT后出现undefined reference to错误。
2 如何弹出对话框。
3 std::string与QString转换。
4 QLabel根据字符的长度决定是否显示省略号"..."。
5 QGridLayout与控件的高度问题
  阅读全文

posted @ 2011-03-01 17:06 seahouse 阅读(1499) | 评论 (0)  编辑

Qt 之 QSS
     摘要: 1 将QSS代码写入.qss文件中;(calendar.qss)
2 在qrc中加入该.qss文件;
3 在代码中进行读取使用
QFile file(":/calendar.qss");
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());

qApp->setStyleSheet(styleSheet);
file.close();
  阅读全文

posted @ 2011-02-24 10:55 seahouse 阅读(1604) | 评论 (0)  编辑

Qt Plugin简单示例
     摘要: 快速示例步骤
主程序
1 新建一个类(PlugInterface),里面有一组纯虚的接口函数(只有纯虚函数);
2 在这个类后加上Q_DECLARE_INTERFACE宏;宏的第一个参数为PlugInterface类名
3 在主程序中需要的地方用QPluginLoader加载plugins;
4 执行plugin里的函数。

plugin实现
1 声明一个plugin的类(PluginInstance),它继承QObject和主程序的接口类PlugInterface;
2 在该类中使用Q_OBJECT和Q_INTERFACES宏;Q_INTERFACES的参数为PlugInterface
3 在PluginInstance实现结束后(PluginInstance.cpp最后)用Q_EXPORT_PLUGIN2导出;Q_EXPORT_PLUGIN2的第二个参数为类名PluginInstance
  阅读全文

posted @ 2011-02-17 15:38 seahouse 阅读(9684) | 评论 (0)  编辑

Qt 之 多语言支持
     摘要: 1 在pro文件中加入
TRANSLATIONS = Language_Chn.ts # 1个或者多个ts文件名

2 在命令行执行
lupdate xxx.pro # 生成qm文件

3 用Qt自带的Qt Linguist进行编辑qm文件:语言转换

4 编译程序,允许程序。
需要将qm文件放置在运行目录下
  阅读全文

posted @ 2011-01-30 13:56 seahouse 阅读(1079) | 评论 (0)  编辑

qthread QNetworkAccessManager QEventLoop
     摘要: 当主进程开辟线程来执行http请求时,会出现程序运行崩溃、没有执行http请求任务等情况。
1 线程中的run函数返回后线程即结束,根本无法等到reply的finished信号。因此需要加入QEventLoop来挂起线程。

2 通过connect设置信号槽,需要QObject的支持,因此在构造函数里与头文件中需要修改代码。  阅读全文

posted @ 2011-01-04 09:28 seahouse 阅读(3625) | 评论 (0)  编辑

QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
     摘要: 经查,是由于在数据库使用过程中,又再次调用QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 造成了问题。
因此在其他地方的数据库操作中修改此代码。  阅读全文

posted @ 2010-12-31 09:29 seahouse 阅读(12460) | 评论 (1)  编辑