Articles of qt

Qt – 如何获得编译Mysql驱动程序

我想在Qt中创build一个MySql相关的应用程序。 一段时间后,我才知道我的共享版本没有MySql驱动程序(默认情况下)。 任何人都可以说如何获得它(共享和静态)。 注意:我在Windows平台上使用Qt-4.7.2 编辑:感谢“vrince”。 这是他展示的方式=>我做的。 1)Open qt-command prompt 2)Goto (Qt's installation path)\qt\src\plugins\sqldrivers\mysql in my case: D:\TempInstallationFolder\Qt\dynamic-New\qt\src\plugins\sqldrivers\mysql 3)qmake 4)make or mingw32-make (provided your PATH variable contains "(Qt installation path)\mingw\bin") ("make" should work if you didn't mess up with path variables. It in turn invokes mingw32-make. I messed up this a little bit. So I invoked […]

作为服务运行时,QtService应用程序无法连接到系统总线

我已经重新编译了用于Windows的集成dbus的 Qt 。 此外,我已经实现了一个QtService应用程序,它在系统总线上注册一个服务和一个对象,如下所示: QDBusConnection::systemBus().registerService("com.mycompany.Configuration"); QDBusConnection::systemBus().registerObject("/com/mycompany/Configuration/MySetting", myObject); 现在,当我使用-e参数(作为常规应用程序运行)运行服务应用程序时,它工作正常,并且dbus-monitor和qdbus –system显示注册的服务和对象。 但是,当我将应用程序作为Windows服务运行时,它不会在系统总线上注册任何内容。 debugging服务给我错误消息 没有连接到D-Bus服务器 当调用registerService(…)和registerObject(…) 。 我已经设置了环境variables: DBUS_SYSTEM_BUS_ADDRESS = autolaunch: DBUS_SYSTEM_BUS_DEFAULT_ADDRESS = autolaunch: 我的system.conf文件: <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <type>system</type> <fork/> <pidfile>/pid</pidfile> <listen>autolaunch:</listen> <policy context="default"> <allow user="*"/> <deny own="*"/> <deny send_type="method_call"/> <allow send_type="signal"/> <allow send_requested_reply="true" send_type="method_return"/> <allow send_requested_reply="true" send_type="error"/> <allow receive_type="method_call"/> <allow […]

查找QWidget的单个实例Qt应用程序

我试图创build一个单一的实例Qt应用程序,我在这一点上工作,但现在我想集中已经开始的实例,当第二个启动。 QWidget :: find(g_hWnd)应该返回小部件,但它失败并崩溃w-> show(); 有什么想法吗? #pragma data_seg("Shared") HWND g_hWnd = NULL; #pragma data_seg() #pragma comment(linker,"/section:Shared,rws") int main(int argc, char *argv[]) { if (g_hWnd) { QWidget* w = QWidget::find(g_hWnd); w->show(); return 0; } else { QApplication a(argc, argv); mainWindow w; w.show(); g_hWnd = a.topLevelWidgets().at(0)->winId(); //or w.winId()? return a.exec(); } } 编辑:我现在看到Trolltech发布了LGPL下的QtSingleApplication类。

何时或如何删除Qt中的QThread

我从这里find了这个QThread例子。 它build议使用QObject和QThread而不是子类化QThread。 class Worker : public QObject { Q_OBJECT public slots: void doWork() { /* … */ } }; QThread *thread = new QThread; Worker *worker = new Worker; worker->moveToThread(thread); thread->start(); QMetaObject::invokeMethod(worker, "doWork", Qt::QueuedConnection); 我的第一个问题是何时以及如何删除线程? 我试图连接完成到2插槽,myTest和deleteLater。 我在myTest中设置了一个断点,这从来没有被触发。 所以我怀疑没有完成的信号,这意味着线程不会被删除。 connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); connect(thread, SIGNAL(finished()), this, SLOT(myTest())); 对于工作对象,我发出一个完成的信号作为doWork中的最后一条指令,并将其连接到一个可以删除工作对象的插槽。 这是正确的吗? Qt版本:4.6.2

在C ++应用程序中使用id3lib库时未定义的引用链接器错误

我的操作系统是Windows 7旗舰版x64。 我正在使用Qt 4.8编写将使用id3lib的程序。 我已经下载了Windows二进制文件 。 这是* .pro文件的一部分,显示了如何使用id3lib库: HEADERS += MainWindow.h \ id3lib/id3/sized_types.h \ id3lib/id3/globals.h \ id3lib/id3/tag.h \ id3lib/id3/utils.h \ id3lib/id3/id3lib_frame.h \ id3lib/id3/field.h \ id3lib/id3/id3lib_strings.h \ id3lib/id3/id3lib_streams.h win32: LIBS += -L$$PWD/id3lib/ -lid3lib INCLUDEPATH += $$PWD/id3lib DEPENDPATH += $$PWD/id3lib 你可以猜到,库文件(id3lib.dll和id3lib.lib)在id3lib目录中,所有需要的头文件都在id3lib/id3目录中。 在globals.h中,我定义了以下内容: #define ID3LIB_LINKOPTION LINKOPTION_CREATE_DYNAMIC 并在同一个文件中修改以下部分: # if (ID3LIB_LINKOPTION == LINKOPTION_CREATE_DYNAMIC) //used for creating a dynamic dll […]

BitBlt忽略CAPTUREBLT,似乎总是捕获目标的caching副本

我正在尝试使用BitBlt函数捕获截图。 但是,每次我捕捉屏幕截图时,无论我做什么,非客户端区域都不会改变。 就好像它正在获取一些caching副本。 客户区被正确捕获。 如果我closures然后重新打开窗口,并截图,非客户区将被捕获,因为它是。 移动/调整窗口大小后的任何后续捕获都不会影响捕获的屏幕截图。 再次,客户区将是正确的。 而且,CAPTUREBLT标志似乎完全没有任何作用。 我注意到没有或没有改变。 这是我的捕获代码: QPixmap WindowManagerUtils::grabWindow(WId windowId, GrabWindowFlags flags, int x, int y, int w, int h) { RECT r; switch (flags) { case WindowManagerUtils::GrabWindowRect: GetWindowRect(windowId, &r); break; case WindowManagerUtils::GrabClientRect: GetClientRect(windowId, &r); break; case WindowManagerUtils::GrabScreenWindow: GetWindowRect(windowId, &r); return QPixmap::grabWindow(QApplication::desktop()->winId(), r.left, r.top, r.right – r.left, r.bottom – r.top); case WindowManagerUtils::GrabScreenClient: […]

QtSql应用程序不能在部署的机器上工作

我在Qt / C ++中做了一个软件。 我需要将它部署在Windows 7(64位)上,这也是我开发软件的主机。 问题是我的软件可以与开发的机器上的sqlite数据库进行交互,但是当我尝试在其他机器上部署我的软件时,它不能与数据库交互。 我试图使用“以pipe理员身份运行”,但它没有帮助。 我也尝试使用兼容模式。 数据库位于C:\Users\username\Desktop\db1.sqlite ,因此我的软件无需联网或互联网即可正常运行。 我还用我的软件包括了QtGui4 , QtCore和QtSql4 dll。 有人能指出什么可能会出错吗?

在Win7 64bit上安装Qwt

我在网上search,但没有find解决我的问题。 问题: Qwt安装在nmake -step处失败 我做了什么: – )从qt-website安装Qt 5.1( Qt 5.1.1 for Windows 64位(VS 2012,525 MB) )(Info) – )从这里下载Qwt 6.1.0文件 – )提取的文件到C:/Qt/Qwt-6.1.0 – )在qwtconfig.pri中设置正确的path – )启动了MSVC 2012控制台(与Qt一起)并运行qmake qwt.pro – )尝试nmake在相同的CONSOL(但nmake.exe没有被发现) – >从这里安装Microsoft Visual 2010 Express(自动安装到“Program Files(x86)”) – )再次尝试在上面的CONSOL nmake但现在与链接安装MSVC 2010(但现在来致命错误U1077) – )接下来我试着用MSVC 2010来的CONSOL,并再次运行nmake (现在我得到致命的错误LNK1112,这告诉我的x64PC不兼容目标typesx86) 问题:我怎样才能使它工作?

使用QT的任务计划程序API

我想实现一个基于定期date的任务调度程序,有没有办法使用QT实现它使用API​​? 另一个问题,我应该指定用户名和Windows的当前用户的密码?

在Windows上Qt的dll部署

我在部署Qt应用程序时遇到了一个奇怪的问题。 我在我的Windows XP 32位盒子上创build了一个包含所有必需的dll和我的二进制文件的Zip,其中的应用程序工作得很好, 然后我testing了我的笔记本电脑上运行的Windows 7 64位,给我奇怪的结果。 窗口图标返回到默认的,我的系统托盘图标是不可见的。 其他一切正在工作。 当我从窗口上的相同资源文件中绘制一个标志(并且这在两台机器上都能正常工作)时,资源文件应该加载正常。 然后,我把我的win7机器上的dll(我用相同的安装程序安装)复制到我的二进制文件的目录中,图标再次运行。 我检查了dlls散列,它们是相同的。 我也试过这些DLL在我的XP机器上,这次它不显示图标。 这很奇怪,因为dll是从相同的软件包安装的并且是相同的,但是在其他机器上不工作。 有什么我忽略的吗? 我使用QT 4.7和msvs2008安装程序加上插件。