是否有可能在Windows 7,64位上用Qt4获得本地菜单?
在Windows 7,64位上运行时,用QT(4)编写的应用程序没有本地菜单.对于众所周知的vlc,lyx等,这是正确的 QT菜单不像本地菜单一样表现出来,这可能很烦人.例如,考虑下面的屏幕截图. 如果鼠标沿红路径迅速移动,则子菜单将立即关闭.对于Windows(和Macs)中的本地菜单,有一个延迟.这可能会使在菜单中进行导航很难,因为它们不会像用户期望的那样行事. 可以在Windows中获取本地菜单吗? 解决方案 在QT5中,菜单有一个QPA API - 用于创建本机MAC菜单.它可能很快就会在Android上使用,并且Windows实现将是完全可能的.将QT4的后移植将很复杂,因为本机Mac-Menus支持是通过#IFDEFS 实现的
0 2023-12-07
编程技术问答社区
在Windows的Qt Creator中编译Cuda代码
我已经尝试了几天,以使QT项目文件在32位Windows 7系统上运行,其中我希望/需要包含CUDA代码.事物的结合是如此简单,以至于没有人愿意在网上举一个榜样,或者很难以至于没有人成功.无论如何,我发现的唯一有用的论坛主题是Linux或Mac上的同一问题,或者在Windows上使用Visual Studio. 但是,所有这些都给出了各种不同的错误,无论是由于链接还是冲突库,或在CUDA SDK的Windows版本中的文件名或不存在的文件夹中的空格. 是否有人提供清晰的.pro文件可以提供技巧? 我的目标是用QT样式的普通C ++代码编译一个简单的程序,并使用QT 4.8库,其中引用了.cu文件中的几个CUDA模块.形式: TestCUDA \ TestCUDA.pro main.cpp test.cu 解决方案 因此,我终于设法组装了一个在我的Windows系统上使用的.pro文件.以下是一个简单的测试程序,可能应该解决问题.以下是一个小型项目
2 2023-12-07
编程技术问答社区
复制目录和文件的 Qmake 命令
我想将目录中的内容复制到" DD" BINARY_DESTINATION_PATH = $$PWD$$SEPARATOR/dd/ RESOURCE_SOURCE_PATH = $$PWD$$SEPARATOR/temp EXPORTED_DESTINATION_PATH = $${BINARY_DESTINATION_PATH} EXPORTED_DESTINATION_PATH ~= s,/,\\,g EXPORTED_SOURCE_PATH = $${RESOURCE_SOURCE_PATH} EXPORTED_SOURCE_PATH ~= s,/,\\,g QT += core QT -= gui CONFIG += c++11 TARGET = sample CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp win32 { QMAKE_POST_LINK +=
0 2023-12-07
编程技术问答社区
改变可见的应用程序名称(Windows)
我正在寻找一种更改我的应用程序名称的方法(右键单击Windows 7任务栏): 更有益的东西: 我该怎么做? 我正在使用:QT 4.7(mingw),Windows 我找到了一些有关使用证书并签署可执行文件的信息,但是我不确定是否是我需要的信息.我知道如何更改图标.预先感谢. 解决方案 从实验5分钟开始,它似乎来自
0 2023-12-06
编程技术问答社区
为什么QString::localeAwareCompare()不能正确工作?
芬兰的客户告诉我,芬兰语的正确(语言环境意识)为:A-Z,Å,ä,Ö. 但是qString :: localeawarecompare()返回为:a,ä,Å,Å,b-o,Ö,Ö,p-z,QT 4.4.2在Windows Vista上. #include #include #include #include int main( int argc, char* argv[] ) { QLocale::setDefault ( QLocale( QLocale::Finnish ) ); QApplication app( argc, argv ); QString s1 = "a"; QString s2 = "ä"; QString s3 = "å"; QString s4 = "b"; QString s5
0 2023-12-06
编程技术问答社区
已部署的Qt5应用程序不能打印或显示打印对话框
我正在遇到QT4到QT5麻烦.在我的应用程序中,当用户单击打印按钮时,应发生两件事,一个是将PDF写入磁盘(在新版本中仍然可以正常工作,所以我知道某些打印功能正常工作)是qprintdialog应该exec(),然后发送到连接的打印机. 从开发机器启动时,我会看到对话框.该应用程序在已部署的机器上启动,但是QprintDialog从未显示,文档永远不会打印. 我包括打印支持. QT += core gui network webkitwidgets widgets printsupport 我一直在使用Process Explorer来查看应用程序在我的开发机上使用的DLL,我相信一切都存在.我的应用程序包包括: {myApppath} \ myApp [myapp.exe,qt5printsupport.dll,...] {myApppath} \ plugins \ printsupport \ windowsprintersupport.dll {m
0 2023-12-06
编程技术问答社区
有办法在 Windows 上使用 Qt 列出当前进程吗?
是否可以知道使用QT 4运行哪些过程?我正在寻找一种等待的方法,直到用户关闭应用程序进行操作. 解决方案 我也不知道QT解决方案.但是,使用CreateToolhelp32Snapshot(),Process32FirstW()和Process32NextW()函数并不难.只需搜索MSDN即可.在 上还有一个(IMO太复杂)的示例 进行快照和观看过程 其他解决方案 不是真正的QT4解决方案,但是您可以启动 wmic wmic wmic 在 qprocess 中,并评估结果. 类似: wmic process get name /every:5
0 2023-12-06
编程技术问答社区
像 Office 2007 中的 Qt4 自定义窗口框架?
有没有办法强制QT4绘制类似于Office 2007/2010的窗框? 我希望我的应用程序在所有Windows版本中看起来都一样,而不仅仅是Vista/7. 也许QmainWindow有一些扩展? 感谢您的帮助. 解决方案 您必须删除标题栏并自己实施.它是窗口管理器的一部分.根据您在下面运行的操作系统(Windows,OSX,Linux ...)提供.可以通过设置WindowFlags http://doc.trolltech.com/4.2/qwidget.html#windowflags-prop 其他解决方案 如果您在谈论主题,则从2007年开始的办公室功能区接口 在qt中,尚无准备解决方案,如线程: http://www.qtcentre.org/threads/14376-is-is-there-ane-way-any-any-way-to-create-new-new-style-tyle-tyle-toolbar-in-mso-in-
0 2023-12-06
编程技术问答社区
在清洁安装Qt SDK和Visual C++ 2008时,LNK4099链接器警告。
在新的Windows 7计算机上进行了干净的安装: Visual Studio 2008 SP1 QT SDK 1.1.4 然后我在QT创建者中创建了一个新项目.我在" QT Widget Project"下选择了" QT GUI应用程序",并将其定位为带有Visual C ++ 2008的桌面,包括调试和发布(基本上是默认设置). 然后我按构建,然后得到.. qtmaind.lib(qtmain_win.obj):-1: warning: LNK4099: PDB 'vc90.pdb' was not found with 'c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\qtmaind.lib' or at 'C:\Users\JamesJ\Desktop\QtTest-build-desktop-Qt_4_7_4_for_Desktop_- _MSVC2008__Qt_SDK__Debug\debug\vc90.pdb'; l
0 2023-12-06
编程技术问答社区
以程序方式重置Windows XP的IDLE时间
Windows每次触摸键盘或鼠标时,请重置空闲时间.我的应用程序需要在特定时刻重置空闲时间,但是我无法弄清楚如何以编程方式进行此操作. 以下没有使用VB,C#或QT4重置空闲时间. - 编程鼠标运动/单击. - 编程击键. 窗口以某种方式知道这些动作是模拟的. 如何重置空闲时间?任何想法都将不胜感激! 解决方案 使用 setThreadExecutionState() >. es_system_required选项(2)重置系统空闲计时器.请访问pinvoke.net以获取所需的声明. 其他解决方案 如果您需要显示显示,例如,您会致电在2000/xp上,您可以使用es_user_present标志(在Vista+上不起作用) 要禁用屏幕保护程序,您可以处理wm_syscommand的sc_screensave(您必须是前景窗口,否则使用SystemParameterSinfo) 其他解决方案 原则上setThreadExecutionSta
0 2023-12-06
编程技术问答社区
PyQt4中Exe的窗口图标
我在PYQT4中有一个小程序,我想将程序编译为EXE.我正在使用py2exe来做到这一点.我可以使用以下代码在Windows标题栏中成功设置图标,但是当我将其编译到EXE中时,丢失了图标,我会看到默认的Windows应用程序.这是我的程序: import sys from PyQt4 import QtGui class Icon(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Icon') self.setWindowIcon(QtGui.QIcon('c:/python26_/repy26/icons/iqor1.ico')) app = QtGui.QAppl
0 2023-12-06
编程技术问答社区
异常处理在Windows上不能与Qt一起工作
我面临奇怪的问题.也就是说,QT以某种方式关闭了我的程序中的例外处理.我无法捕获任何例外,当我投掷异常时,应用程序崩溃了. 我正在使用Windows 7(64位)上的QT SDK V2010.05的QT 4.7.0(32位),G ++(GCC)4.5.1,来自Netbeans 6.9.1. 但是我也用G ++ 3.4.5(也来自Mingw)和Qt Creator 2.0.1-相同的奇怪行为. 例如(最简单的情况): #include #include #include #include using namespace std; int main(int argc, char* argv[]) { QApplication app(argc, argv); try { cout
0 2023-12-06
编程技术问答社区
Qt Painter外面的paintEvent-不可能的解决方法?
因此,QT4似乎不允许您在油漆事件外面的窗户上绘制窗户.我有很多代码可以绘制橡皮筋线(用于特定专有界面的通用绘图代码,然后在给定的UI中实现).我已经阅读了有关PixMap方法的信息,这将是很多工作,我认为这确实是我想要的. 有能力使我能够做我想做的事吗?我只需要在屏幕上绘制XOR频段. 尝试了WA_PAINTOUTSIDEPAINTEVENT标志.然后我看到了说它在Windows上不起作用的位. 解决方案 在现代合成桌面中,需要由窗口管理器同步,以便可以将alpha混合和其他效果应用于正确的后退缓冲区 - 然后将其结果翻转到该结果上屏幕以允许无泪的窗户动画. 在此过程中调用绘画操作 - 虽然由于基础平台上的遗产而受到支持,但会颠覆此过程并导致许多非常非最佳代码路径. 基本上,当您在窗户上有绘画要做:致电无效的功能以安排绘画,并在油漆事件中进行绘画. 其他解决方案 似乎您可以访问有问题的窗口的HWND,您可以在该表面上绘画.否则,我不确定.如果通过
0 2023-12-05
编程技术问答社区
Qmake中win64配置的标识符
QMAKE项目文件中是否有" Win64"标识符? qt qt qmake Advanced 文档除了UNIX/MACX/WIN32外没有提及的文档. 到目前为止,我尝试使用: win32:message("using win32") win64:message("using win64") amd64:message("using amd64") 结果始终是"使用win32". 我必须在X32和X64项目中使用单独的项目文件,以便它们会针对正确的库进行编译吗?还有其他方法可以识别32位和64位环境之间吗? 解决方案 我像这样做 win32 { ## Windows common build here !contains(QMAKE_TARGET.arch, x86_64) { message("x86 build") ## Windows x86 (32bit) specific build he
0 2023-12-05
编程技术问答社区
Qt GUI应用中的控制台输出?
我在Windows上运行了一个QT GUI应用程序,允许通过命令行选项,在某些情况下,我想将消息输出到控制台,然后退出,例如: int main(int argc, char *argv[]) { QApplication a(argc, argv); if (someCommandLineParam) { std::cout
0 2023-12-05
编程技术问答社区
在Windows的Qt可执行文件中设置应用程序信息
有人从qt? 设置应用程序信息(即右键单击.exe->属性)的提示 我可以将任意版本字符串添加到QT资源文件(QRC)并显示它们. 但是大多数Windows安装程序都会检查版本编号,除了手动维护单独的.rc文件 外,我找不到设置这些字段的QT方式 某种方式使您可以从自动化构建中更新此信息也很不错! 解决方案 这是我做的... IDI_ICON1 ICON DISCARDABLE "res/app.ico" #include #include "version.h" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" BEGIN
0 2023-12-05
编程技术问答社区
Qt4: 调整哪个部件在启动时被关注
如果我不重新实现QMainWindow::showEvent()(它将包含该小部件的setFocus()方法),是否有任何方法可以让某个窗口小部件在加载窗口时首先聚焦?我使用QT4的Form Editor,但未能找到配置的地方. 解决方案 您可以设置 tab sorde 在QT设计师或QT创建者中的设计师组件中.标签顺序中的第一个小部件应重点放在负载上. 许多用户期望能够在小部件和控件之间导航 仅使用键盘. QT让用户在输入之间导航 带有选项卡的小部件和 shift+tab 键盘快捷键.默认选项卡 顺序基于构造小部件的顺序.虽然 对于许多用户,此订单可能就足够了,通常最好 明确指定标签订单,以使您的应用程序更易于 使用. 设置标签顺序 要输入选项卡订单编辑模式,请打开 edit 菜单,然后选择编辑 标签顺序.在此模式下,显示了表单中的每个输入小部件 数字表示其在标签顺序中的位置.因此,如果用户给出 第一个输入小部件输入焦点,然后按选项卡键, 焦点将移至第二个输入
0 2023-12-04
编程技术问答社区
Qt 4: 移动窗口不需要标题栏
我有一个Qt::Popup标记的窗口(没有标题栏和关闭的按钮),并且想通过拖动\单击非标题栏区域来移动.... 在win32上,该解决方案可以是 解决方案 尝试此操作以手动移动窗口: void PopupWindow::mousePressEvent(QMouseEvent *event){ mpos = event->pos(); } void PopupWindow::mouseMoveEvent(QMouseEvent *event){ if (event->buttons() & Qt::LeftButton) { QPoint diff = event->pos() - mpos; QPoint newpos = this->pos() + diff; this->move(newpos); } } 和声明QPoint mpos 其他解决方案 if (event->button
0 2023-12-04
编程技术问答社区
qt创建者调试缓慢
我在Windows 7 64位上基于QT 4.7.4的QT Creator 2.3.0.当我从QT Creator(CTRL+R)运行该应用程序时,一切都很好.但是,当我调试(F5)时,执行每行需要永远 - 有时在2分钟内执行一行代码. 我在"调试器日志"窗口中注意到此行:debugger:c:\ program文件(x86)\ windows(x86)\ cdb.exe的debugging工具.我以为自从运行Windows 7 X64以来,我应该使用64位调试器.因此,我下载并安装了Windows 7和.NET Framework 3.5 SP1的Microsoft Windows SDK. . 现在,我在工具中看到了这一点.如果我为Windows选择了任何一个Microsoft Windows SDK -X86,X64,IA64或任何Microsoft Visual C ++编译器9.0- X86,AMD64,X64,IA64-调试器设置为" C:\ Program Fil
0 2023-12-04
编程技术问答社区
如何让Qt Creator与CDB一起工作?
我正在使用 qt创建者7 64位.我使用Microsoft Visual C ++ 2010编辑了QT库.现在我想使用 gdb ,或者最好的选择).我到底需要做什么才能与CDB进行调试(我可以设置断点并查看符号)? 请不要仅仅指我指向 编辑: 另外,我应该澄清一下,我认为调试器的作品是因为我可以击中F5,然后我的应用程序开始,然后我可以选择" debug->中断",并且似乎停止了.但是在呼叫堆叠中,功能名称看起来被弄乱,编辑器中设置的断点不会断开.如果我击中 f10 ,则它在看起来像"汇编"中逐步浏览代码.也许是因为我正在构建DLL,并且我设置了 f5 运行父级的应用程序,该应用程序又加载并调用我的DLL. 解决方案 由于您的QT已与MSVC编译,因此最好的选择确实是CDB(对于GDB,您需要的是MingW编译版本). 调试应该开箱即用.我想到的第一点是,出于某种原因,QT创建者是否没有看到Windows的调试工具.您是否确保在CDB选项页面中正确指定了该路径(和版本
0 2023-12-04
编程技术问答社区