草庐IT

c++ - 在Qt中释放文件锁

我有一个Qt程序可以在Linux上运行但不能在Windows上运行。它逐渐从Internet下载某些内容,将其写入文件,然后尝试使用QDesktopServices::openUrl打开该文件。这在Linux(Fedora)下运行良好,但当我在Windows下运行时,没有任何反应-文件从未打开,但也没有报告错误。但是,如果我尝试在Windows上手动打开下载的文件,我会找到原因。我收到错误消息Anotherprogramiscurrentlyusingthisfile,这意味着Qt尚未释放对该文件的锁定。但是我已经在上面调用了file->close()。如何确保QFile上的所有锁都已

c++ - 在 Debug模式下构建 Qt 5.10 时 MSVC 编译器崩溃

使用MSVC++2017x64编译器在Debug模式下编译Qt5.10失败。在Release模式下,不会出现该错误。错误本身是:```C:\Qt\5.10\build\qtbase\bin\moc.exe-DUNICODE-D_UNICODE-DWIN32-DWIN64-DQT_NO_USING_NAMESPACE-DQT_NO_FOREACH-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT-DQT_BUILD_CORE_LIB-DQT_BUILDING_QT-D_CRT_SECURE_NO_WARNINGS-D_USE_MATH_DEFINES-DQT

c++ - 如何伪造键盘换档键。 Qt,Windows 10

我为基于触摸的平板电脑开发了一些软件。该装置没有键盘,只有触摸屏(触摸屏模拟鼠标)。操作系统是Windows10,我们使用Qt作为图形用户界面框架。我们依赖于一个类库点云库,它有一个组件需要按下SHIFT键才能在我们单击鼠标左键时发生某些事情。我需要让底层软件组件相信已经按下了SHIFT键。我试图通过“Qt方法”将按键事件发送到Qt小部件,但假的SHIFT按键似乎没有到达底层sw。成分。可能是因为它位于与Qt无关的类库中,并且该软件类库可能以不同方式检查关键事件(例如通过操作系统调用、c++std方式或类似方式)。尝试“Qt方式”时这似乎不起作用:QKeyEventkey_press(

c++ - 尝试在 Windows 上运行 Qt 应用程序的发布版本时出错

我正在尝试构建我的应用程序的Windows版本。该程序在QtCreator上编译和运行良好,但当我尝试独立运行它时,它会抛出以下错误:Theprocedureentrypoint_Z17qt_message_output9QtMsgTypePKccouldnotbelocatedinthedynamiclinklibraryQtCore4.dll我的应用程序文件夹中有所有必需的dll,它们与我从Qt网站下载的二进制文件附带的相同。这个错误让我发疯,因为我似乎找不到任何原因。该应用程序在Linux和MACOSX上运行良好。 最佳答案

windows - Windows下纯Qt应用使用KDE风格

我如何在Windows下的纯Qt应用程序中使用KDE风格?谢谢 最佳答案 从命令行,您可以指定样式:YourApp.exe-styleplastique我相信plastique是在KDE下运行的Qt/X11应用程序的默认样式。在代码中,您还可以使用QApplication::setStyle。 关于windows-Windows下纯Qt应用使用KDE风格,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

windows - Qt 跨平台 Windows & Mac : Font size

我正在使用Qt框架在Windows和OSX上开发应用程序。问题是我已经手动设置了一些小部件的字体大小(在ui设计器中)。在windows下,字体完美,但在osx上,它们太大了。事实上,字体系列会被转换(MSShellDlg2到LucidaGrande),但字体大小不会被转换,如果它们是手动设置的话。所以我决定减小代码中的字体大小,使用一些#ifdef,例如:#ifdefQ_OS_MACQFontfont=ui->button->font();font.setPixelSize(12);ui->button->setFont(font);#endif它可以工作,但是当你有很多小部件时它会

c++ - 在 Windows 上部署 Qt 应用程序?

我是Qt新手,不知道如何在Windows上部署简单的Qt应用程序。在QtCreator中运行时它运行良好,但在直接执行时它不会运行。我安装了最新版本的QtSDK,并使用所有默认设置。我已经阅读了数十份“操作方法”指南,所有这些指南都提供了相互矛盾的信息,此外还有数十个论坛主题、博客帖子和此处的问题。我根本找不到能清楚解释如何在Windows上部署Qt应用程序的说明。我尝试将我能找到的所有DLL都放在应用程序目录中,但这没有用。我也尝试过静态构建Qt,但这也没有用。谁能帮帮我?编辑:谢谢你们的回复。以下是一些附加信息:我正在使用“QtCreator2.4.1,基于Qt4.7.4”我在不同

c++ - 用Qt播放特定的系统声音

我希望我的应用程序发出标准的通知声音,在Windows上称为“默认提示音”的声音。我看不到使用QSound引用系统声音的方法。没有分配声音的QSound实例用于播放此声音,但它在Qt5中已修复。有什么办法吗?如果该解决方案仅适用于Windows也没关系(但我希望它能在任何受支持的操作系统上编译并且不想使用#ifdef和WinAPI)。 最佳答案 使用Phonon(http://qt-project.org/doc/qt-4.8/phonon-overview.html),一个Qt库,可以播放声音/视频,...文件的路径应该使用WIN

windows - QTableView:如何将鼠标悬停在整行上?

我继承了QTableView、QAbstractTableModel和QItemDelegate。我可以将鼠标悬停在单个单元格上:voidSchedulerDelegate::paint(QPainter*painter,constQStyleOptionViewItem&option,constQModelIndex&index)const{...if(option.showDecorationSelected&&(option.state&QStyle::State_Selected)){QColorcolor(255,255,130,100);QColorcolorEnd(255

c++ - QDesktopServices::openUrl() 无法在 Windows 上的 chrome 中打开页面。解决方法?

QDesktopServices::openUrl(QUrl("http://google.com"));在默认浏览器ie9、ie8、firefox或opera下工作如果默认浏览器是chrome什么都不会发生QtCreator调试器日志我可以看到像这样的行ModLoad:00000000`0525000000000000`05308000iexplore.exe或ModLoad:00000000`04db000000000000`04ef8000chrome.exe所以它确实有效,但ie,ff等。打开具有指定url的新选项卡,而chrome不会我想这是错误前段时间它运行良好会不会是我的