Articles of qt

如何将QString转换为LPCSTR(Unicode)

我怎样才能将QString转换为LPCSTR? 当#ifdef UNICODE被定义时,我怎么做? 非常感谢 :)

无法find或加载Qt平台插件“窗口”

首先,为了防止重复的报告,我尝试了多种解决scheme, 在这里 , 在这里 , 这里和这里 。 我在Visual Studio 2012中使用Qt 5.5.1,并在Windows 10 x64(不使用Qt Creator)上开发我的应用程序。 应用程序在发布模式下编译。 其实,我的应用程序正在我的电脑上工作 ,没有任何问题,我需要在我的目录中唯一的库是: Qt5Core.dll Qt5Gui.dll Qt5WinExtras.dll Qt5Widgets.dll Qt5Network.dll msvcp110.dll msvcr110.dll 现在,当我试图启动我的应用程序全新安装的Windows 7 x86时,我收到以下错误信息: 此应用程序无法启动,因为它无法find或加载Qt平台插件“窗口”。 重新安装应用程序可能会解决此问题。 现在我无法摆脱它。 根据以前提出的问题,这可能是qwindows.dll文件(或更确切地说,应用程序无法find它)的问题,首先,我做了我的发布目录的部署,如下所示: [..]\msvc2012\bin>windeployqt.exe <PATH> 它已经生成了我的应用程序启动所需的所有文件,包括platforms/qwindows.dll因此我只是简单地将它们全部复制到Windows 7目录而没有任何影响 – 仍然会出现错误。 我也尝试从msvc2012\plugins\platforms手动复制一个qwindows.dll – 没有效果, 我做的最后一步是在Dependency Walker中检查我的应用程序 – qwindows.dll是,没有qwindows.dll相关的依赖关系: 图片 所以我现在没有想法,这里有什么问题?

在一个qt项目中,如何在包含空间的path下的窗口中添加包含path

我想将这个C:\ Program Files \ MySQL \ MySQL Server 5.5 \ include添加到我的.pro文件中。 我怎么能实现这个目标? 谢谢 :)

如何将Crypto ++库添加到Qt项目

我下载了Crypto ++源代码,并在Visual Studio 2013中编译了cryptlib项目,然后将生成的.lib文件添加到我的Qt项目中,这使得我的.pro文件如下所示: QT += core gui QT += sql greaterThan(QT_MAJOR_VERSION, 4):QT += widgets TARGET = untitled TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h \ databasecontrol.h \ test.h FORMS += mainwindow.ui win32:CONFIG(release, debug|release): LIBS += -L$$PWD/ -lcryptlib else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/ -lcryptlibd else:unix: LIBS += -L$$PWD/ -lcryptlib INCLUDEPATH += $$PWD/ […]

如何让我的Qt C ++程序在Windows中打开控制台?

我在Qt Creator中创build一个应用程序,用cmake和MinGW作为编译器。 我已经看到这个问题被其他人回答,但他们使用.pro文件常规Qt项目,而我使用CMakeLists.txt文件。 所以这些post对我没有任何帮助。 问题是我的应用程序在启动时会打开一个控制台,和往常一样,closures这个控制台也会closures应用程序。 我想让应用程序不要打开一个控制台,这样对于那些不需要任何debugging信息的用户来说更方便用户。

QTableView:如何将鼠标hover在整个行上?

我subclassed QTableView,QAbstractTableModel和QItemDelegate。 我可以将鼠标hover在单个单元格上: void SchedulerDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { … if(option.showDecorationSelected &&(option.state & QStyle::State_Selected)) { QColor color(255,255,130,100); QColor colorEnd(255,255,50,150); QLinearGradient gradient(option.rect.topLeft(),option.rect.bottomRight()); gradient.setColorAt(0,color); gradient.setColorAt(1,colorEnd); QBrush brush(gradient); painter->fillRect(option.rect,brush); } … } …但我无法弄清楚,如何hover整行。 有人可以帮助我的示例代码?

Windows-Autostart:应用程序目录似乎是C:/ Windows / system32 /

当我的应用程序从Windows的自动启动开始时,Qt无法打开它。 导致这种错误的原因是即使我的文件位于我的工作目录中, QDir().absoluteFilePath("settings.cnf")也会返回pathC:/Windows/system32/settings.cnf 。 有人知道我必须调用什么方法才能find正确的path吗?

根据字体句柄(HFONT)获取字体文件名

我遇到了一种情况,我们需要知道QFont正在使用的字体的文件名。 知道一个QFont可以给我们的字体家族和Windows的HFONT句柄。 字体系列是不够的,因为操纵样式像Bold或Italic可以导致Windowsselect不同的字体文件。 (fe arial.ttf,arialbd.ttf,arialbi.ttf,ariali.ttf)。 这个代码示例应该给我们<path>\arial.ttf : QFont font("Arial", 12); FindFontFileName(font.handle()); 而这个代码示例应该给我们<path>\arialbi.ttf QFont font("Arial", 12); font.setStyle(QFont::StyleItalic); font.setWeight(QFont::Bold); FindFontFileName(font.handle());

在Qt中显示一个控制台

我想添加一个控制台到我的应用程序,这是我的问题。 在Qt Creator中,我创build一个新的项目,select'Qt控制台应用程序',将它从使用QCoreApplication转换为QApplication ,将core gui widgets添加到项目文件中的QTconfiguration标志,并且工作。 我有一个控制台窗口可以创build窗口。 所以项目文件看起来像这样… QT += core gui widgets TARGET = ConsoleApp CONFIG += console CONFIG -= app_bundle TEMPLATE = app #sources… 这是完美的,我可以开发一个完整的GUI应用程序, 但是,该应用程序已经build成。 当我为应用程序创build项目时,我select了“Qt Widgets Application”。 所以我想我可以将ConsoleApp的项目文件的configuration复制到我的应用程序的项目文件中。 所以我的应用程序项目文件看起来像这样 QT += core gui widgets TARGET = GuiApp CONFIG += console CONFIG -= app_bundle TEMPLATE = app #sources… 但是这不是给我一个控制台,我不明白为什么。 我知道我可以创build一个控制台应用程序,只是转移我的源代码解决了我的问题,但我想知道…为什么控制台不显示在我的GUI应用程序,尽pipe使用完全相同的configuration作为控制台应用程序在项目文件中? 我正在编译与Qt 5.3.1 […]

安装和注册win32 OpenSSL库

我的应用程序依赖于OpenSSL库(通过Qtnetworking模块;由于法律问题,您无法静态编译为Qt) 有这个项目 – Win32 OpenSSL 似乎所有我需要的是将这两个DLL复制到System32并注册它们。 copy ssleay32.dll %WINDIR%\System32\ssleay32.dll copy libeay32.dll %WINDIR%\System32\libeay32.dll regsvr32.exe /s %WINDIR%\System32\ssleay32.dll regsvr32.exe /s %WINDIR%\System32\libeay32.dll 事实上,这已经在办公室的几台机器上工作(我的应用程序在操作之后开始使用https正确工作)。 那些东西安装了很多,所以可能会干扰。 在VMWare下,它仍然不能在干净的虚拟机上运行。 虽然我在它下面安装了Tortoise SVN(随OpenSSL一起发布),但一切都很顺利。 安装openssl到系统的正确方法是什么? 注意:Qtnetworking模块有自己的证书权限列表。