Articles of qt

QSqlDatabase:QMYSQL驱动程序未在Ubuntu 15.04 64位上加​​载

在Ubuntu 15.04 64位中,我安装了Qt5.6(在线安装程序),并试图将我的开发环境从Windows 7迁移到Linux,但是我遇到了以下情况: SqlDatabase: QMYSQL driver not loaded 在这之后,我设法find~/Qt/5.6/gcc_64/plugins/sqldrivers/libqsqlmysql.so ,然后: $ ldd libqsqlmysql.so linux-vdso.so.1 => (0x00007ffffd571000) libmysqlclient_r.so.16 => not found libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe94ef24000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fe94ecec000) libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fe94ead2000) libssl.so.10 => not found libcrypto.so.10 => not found libQt5Sql.so.5 => /home/user/Qt/5.6/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007fe94e88d000) libQt5Core.so.5 => /home/user/Qt/5.6/gcc_64/plugins/sqldrivers/../../lib/libQt5Core.so.5 (0x00007fe94e17a000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe94df5c000) libstdc++.so.6 => […]

如何强制我的应用程序只能打开一个exe文件? qt,linux

我希望我的应用程序只打开一个进程,即如果一个进程已经打开,并且用户想要再次打开该exe文件 – 它不会打开另一个进程。 我怎么能在Qt – Linux? 10倍!

从后台工作线程修改Qt GUI

我在Qt中工作,当我按下GObutton时,我需要不断地将包发送到networking,并使用我收到的信息修改接口。 问题是,我有一段while(1)在button,所以button永远不会完成,所以接口永远不会更新。 我想在button中创build一个线程,并把while(){}代码放在那里。 我的问题是我怎样才能从线程修改接口? (例如,我怎样才能从线程修改文本框?

获得最顶层窗口的pid和细节

有谁知道如何获得顶部活动窗口的PID,然后如何使用PID获得窗口的属性? 我的意思是像进程名称,程序名称等属性 我在Linux下使用Qt(Ubuntu 9.10)。

命令在terminal中工作,但不通过QProcess

ifconfig | grep 'inet' 通过terminal执行时正在工作。 但不通过QProcess 我的示例代码是 QProcess p1; p1.start("ifconfig | grep 'inet'"); p1.waitForFinished(); QString output(p1.readAllStandardOutput()); textEdit->setText(output); 没有什么是显示在textedit。 但是当我在qprocess的开始只使用ifconfig时,输出显示在textedit上。 我有没有想过构build命令ifconfig | grep 'inet'任何技巧? ifconfig | grep 'inet' ,就像用' \| '和\| 为| ? 为特殊字符? 但我也试过,以及:(

在Windows上Qt的dll部署

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

在构build时部署所有Qt依赖项

我创build了一个CMakeLists.txt来创build一个简单的Qt应用程序(实际上它只有一个文件main.cpp显示一个空的主窗口): cmake_minimum_required (VERSION 3.7.0) project(guitest) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) find_package(Qt5Widgets REQUIRED) include_directories (${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}) file (GLOB_RECURSE WSIMGUI_SRC *.cpp) add_executable(${PROJECT_NAME} ${WSIMGUI_SRC}) target_link_libraries(${PROJECT_NAME} Qt5::Widgets) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Widgets> $<TARGET_FILE_DIR:${PROJECT_NAME}>) 项目构build和add_custom_command将Qt5Widgets.dll文件复制到输出目录。 但是当我尝试运行该程序时,出现以下错误: 此应用程序无法启动,因为它无法find或加载“”中的Qt平台插件“窗口”。 我一直在寻找这个问题,我注意到我也必须从我的Qt安装中复制platform文件夹。 我怎样才能在我的CMakeLists.txt文件中做到这一点?

我应该复制哪个Qt DLL来使我的程序独立?

我试图用我的应用程序做一个分配目录。 我已经复制了几个Qt DLL到该目录,程序似乎正在工作,有一个例外:它似乎没有findSQLite的SQL插件。 复制qtsqlite.dll到目录,不允许我的应用程序打开或创buildSQLite文件。 什么是必须的direcotry结构或哪些其他文件需要复制,以便程序可以读取数据库?

QWinTaskbarProgress将不会显示

我使用Windows7和Qt5.3.0我下面添加到我的MainWindow的构造函数,但没有任何显示在我的任务栏上。 我错过了什么? QWinTaskbarProgress * pTaskbarProgress = new QWinTaskbarProgress(this); pTaskbarProgress->setMinimum(0); pTaskbarProgress->setMaximum(100); pTaskbarProgress->setValue(50); pTaskbarProgress->show();

奇怪的Qt SSL问题 – 错误“没有错误”出现,没有别的,如果我忽略它,一切正常

问题如下:在我的Qt应用程序中,我有一个QWebView,我用它来加载HTTPS页面。 在我的开发机器上一切正常,所以我现在试图让它在testing机器上运行。 我运行的应用程序,但页面没有加载(QWebView是空白的)。 经过多次debugging,我发现问题是出现SSL错误,sslErrors()信号被触发。 这是我的sslErrors()处理代码: void blah::sslErrors(QNetworkReply *reply, const QList<QSslError> &errors) { foreach(QSslError error, errors) { qDebug() << error.errorString() << endl; } reply->ignoreSslErrors(); } 上面的代码打印的唯一的是: "No error" 所以没有错误,但除非我调用reply->ignoreSslErrors() ,否则页面不会加载(在testing机器上,在我的开发人员计算机上没有错误报告)。 咦? 这是一个错误? 如果确定它是“没有错误”的types,忽略错误是安全的吗?