如何在 "click "槽中使用 QApplication::mouseButtons() 显示鼠标按钮?
我有一个qmainwindow,并想从其中处理较小的小部件(例如tableview)的"点击"信号. 最初,我将信号连接到此QMainWindow的一个插槽,这是最常见的方法. 现在,我需要告诉单击哪个鼠标按钮,并为左和右键做不同的事情,我发现"单击"信号没有鼠标事件信息. 我试图实现" Mousepressevent"功能,但仍然存在一些问题.如果鼠标动作作用于较小的小部件,则MainWindow将不会进入其Mousepressevent. 一些文档说我们可以通过QQApplication :: MouseButtons() 告诉按钮 我还找到了一些示例代码.但是,这是用于"新闻事件",但我想获取"单击事件"的鼠标按钮. 以下是示例代码: connect(moduleTree,SIGNAL(itemPressed(QTreeWidgetItem *, int)),this,SLOT(SlotItemClicked(QTreeWidgetItem *, int
22 2024-04-22
编程技术问答社区
如何制作一个可调整大小的矩形选择工具?
我正在尝试使用C#2008或QT4编写非常简单的照片编辑器. 如何像Photoshop一样制作可重复的矩形选择工具? 解决方案 如果您在谈论"经典""橡皮筋"选择矩形类型,请查看其他解决方案 WPF代码示例:这涉及图像裁剪,因为它涉及图像,但是如果您向下滚动到选择矩形,则可以看到用于计算矩形的基本公式: http://69.10.233.10/kb/wpf/imagecropper.aspx 最后,另一种使用gdi: http://codelog.blogial.com/2008/10/31/rubber-band-selection-rection-rectangle-in-c/ 如果您提供更多的细节,我相信我们可以为您提供更多帮助. 其他解决方案 QT有一个类:
12 2024-04-15
编程技术问答社区
在QtCreator中找不到-lrt的库 [mac os]
我遇到了QT的一些麻烦,它与选项" -lrt" 构建 我将Mac OS 10.6与QT Creator 1.2.1一起使用,HeeeeeeEelp! 这是完整的构建命令: g ++ -headerpad_max_install_names -o AminingCoreTest Main.o Tokenizer.o dictionnarytoolbox.o mysql.o btree.o btreedatabable.o tcaccess.o -l/library/Frameworks -l/usr/lib/mysql -lmysqlclient -l/usr/locar/locar/lib/lib/-ltokyocabinet -lz -lbz2 -lrt -lrt -lrt -lpthread -lm -lm -lc -lc 它以 结尾 ld:未找到-lrt的库 Collect2:LD返回1个退出状态 解决方案 为什么程序需要库? 我知道,某
14 2024-04-06
编程技术问答社区
在QML中检测按钮的按下和保持情况
当用户按下并按钮时,我想打开上下文菜单(为方便起见,我使用按钮).如果我做 Button { text: model.ualabel MouseArea { preventStealing: true anchors.fill: parent onPressAndHold: uaContextMenu.open() } ContextMenu { id: uaContextMenu MenuLayout { MenuItem { /**/ } } } } 然后,负责新闻界的Mousearea窃取了所有手势,即使无法单击该按钮.我究竟做错了什么
52 2024-04-05
编程技术问答社区
如何在 QT 中设计具有自定义形状的按钮
我试图在qt中order dester deste dester oster on arrow形状的自定义按钮序列,但我找不到道路.我需要在下一张图片中可以看到的按钮之类的东西,以管理程序的工作流程并指导用户浏览它. 图像的文本应为"步骤1","步骤2"和"步骤3".对不起,错误. 欢迎任何帮助或建议. 感谢您的帮助. 解决方案 标题文件: public: void paintEvent(QPaintEvent* event); //--> drawing triangles void createPushButtons(); const static int firstButtonX = 0; //--> topleft corner x value of first button const static int firstButtonY = 0; //--> topleft corner y value of first button const static
8 2024-04-05
编程技术问答社区
在Ubuntu 10.04 LTS中的QDevelop Qt IDE Lucid Lynx qwt
我在Ubuntu 10.04 Lts Lucid Lynx中使用QDevelop,QT IDE(QT版本4.6.2)遇到问题.我试图使用的代码从新的64位笔记本电脑转移到了我的32位笔记本电脑.这两个系统都运行了相同版本的Ubuntu和QT IDE.当我尝试构建代码时,我会收到一长串错误列表,我真的不想在这里发布,但我会在文本结尾处.任何帮助将不胜感激.无论出于何种原因,我的文字块被切断了.我正在使用" 插入文本 white space retainer trick,我在做什么错?好吧,我的构建文本的构建片段没有使用pre slashpre html thicke正确格式化..全部混乱!:| 电子邮件我发送了我的大学: I installed the 32bit version of qwt-5.2.1 and it still isn’t building, I get the same errors. Attached are my .pro and make fi
18 2024-04-05
编程技术问答社区
如何在Mac上设置Qt Creator与CMake一起使用Qt 4.7 SDK?
我正在MacOS X 10.6.8下使用QT Creator 2.2.1,CMAKE 2.8.5和QT SDK版本1.1.2于6月21日发布(QT 4.7.3库). 我的cmakelists.txt在qt4的find_package中失败 - 下面的第二行: set (CMAKE_MODULE_PATH /Applications/CMake 2.8-5.app/Contents/share/cmake-2.8/Modules) find_package (Qt4 REQUIRED HINTS /Users/myname/QtSDK) 我添加了第一个只是为了确保它知道findqt4.cmake的居住地点,但是无论有没有该行,都有相同的错误. CMAKE的错误如下: -- Configuring incomplete, errors occurred! CMake Error at CMakeLists.txt:30 (find_package
16 2024-04-04
编程技术问答社区
在Qt中设置断点后,gdb说:"访问内存地址错误"
我在这里写了一个非常简单的QT程序: int main(int argc, char* argv[]) { QApplication app(argc, argv); QTableView table(&frame); table.resize(100, 100); table.show(); return app.exec(); } ,当我尝试设置单击表的断点时,我会从GDB中获得此错误: (gdb) symbol-file /usr/lib/libQtGui.so.4.4.3.debug Load new symbol table from "/usr/lib/libQtGui.so.4.4.3.debug"? (y or n) y Reading symbols from /usr/lib/libQtGui.so.4.4.3.debug...done. (gdb) br 'QAbstractItemView::click
16 2024-04-03
编程技术问答社区
如何将Boost.Asio主循环集成到Qt4或GTK等GUI框架中?
有什么方法可以将boost.asio与qt4(首选)或GTK主循环集成? GTK提供了像API这样的民意调查(2),因此应该可以从技术上讲. QT提供了自己的网络层,但是我更喜欢使用为boost.asio编写的现有代码. 我想在不使用其他线程的情况下整合它们 . 是否有任何参考如何为qt4(首选)或gtkmm执行此操作? 谢谢. 编辑 我想清除几件事,以使答案更容易. QT和GTKMM都提供 "选择"功能: http://qt-project 5.0/qtcore/qsocketNotifier.html docs/glibmm-2.4/docs/reference/html/group__mainloop.html 因此,问题是,如何将现有的"选择器/调查器"整合为反应堆 boost.asio io_service.今天,BOOST.ASIO可以将Select,Kqueue,Epoll,/Dev/Poll和IOCP用作反应器/PROACTOR服务.
12 2024-04-02
编程技术问答社区
将多个可执行文件变形为一个单一的应用程序
我有三个共享大量源代码和数据的旧应用程序.这些应用程序中的每个应用程序的多个实例都由用户随时执行,例如十几个混合的应用程序执行可以一次活动.这些应用程序当前通过共享内存和消息传递技术进行通信,以便它们可以维持共同的光标定位等.这些应用程序主要用C ++编写,使用QT并总共运行到约500万行代码.只有某些现有代码为threadSafe. 我想将这三个可执行文件合并到一个可执行文件中,并使用多线程功能允许同时执行三个功能分支中的每个实例.有人建议我研究Boost提供的一些功能,例如共享指针,并使用OpenMP来协调多个线程的总体执行. 对如何进行进行的任何评论都将不胜感激,尤其是关于解决这种重构问题的最佳方法的参考. 解决方案 我对您的建议是设计所需的解决方案(首先假设要求是相同的),然后从现有代码碱基于第三方功能可能引入的要求构建一个分阶段迁移路径. 重构应该一次是一小步 - 但是知道您要去哪里. 有效地使用旧版代码(Robert C. Martin C.
22 2024-04-02
编程技术问答社区
使用提升信号而不是qt
这是一个漫长的镜头,但是遇到了QT信号形式的限制,无法将插槽放置,我只是想用增压信号代替它们,这是可行的选择吗? 解决方案 您没有被迫使用QT的信号和插槽.来自 可以将QT与第三方信号/插槽机构一起使用.你 甚至可以在同一项目中使用这两种机制.只需添加 以下到您的QMAKE项目(.pro)文件. CONFIG += no_keywords 它告诉qt不要定义MOC关键字信号,插槽和emit, 因为这些名称将由第三方库使用,例如促进. 然后继续使用no_keywords标志使用QT信号和插槽, 只需使用 相应的qt宏q_signals(或q_signal),q_slots(或 q_slot)和q_emit. 有一个 >如何将Boost信号连接到QT信号. 我在网上某处找到了这个适配器,但不知道在哪里: #ifndef _QT_2_FUNC_3_H_ #define _QT_2_FUNC_3_H_ #include #include
14 2024-04-02
编程技术问答社区
如何在Kivy中使用封锁的MessgeBox
我有一个Kivy应用程序. 从主gui中,我想打开一个新的消息框,并强迫主GUI等待动作盒互动的结果. 我看到QT4消息框对这种阻止呼叫类型有支持,但是我在Kivy中没有找到等效功能.这样的功能是否存在? 解决方案 弹出窗口小部件用于创建模态弹出窗口.默认情况下,弹出窗口将涵盖整个"父"窗口.当您创建弹出窗口时,必须至少设置一个弹出式. 模态表示阻塞:) http://kivy.org/docs/api-kivy.uix. popup.html 其他解决方案 这是一个代码片段,尽管实际上并没有真正阻止该作业. 您需要定义一个或两个替代方案才能继续使用 该程序.多数民众赞成伪阻挡的技巧. import kivy from kivy.uix.popup import Popup from kivy.uix.button import Button from kivy.uix.gridlayout import GridLayout from kivy
16 2024-04-01
编程技术问答社区
在ImageView黑莓10中动态设置imageSource
请帮助我.我坚持了一个多星期以上.我正在使用CPP文件中的image发出信号.我需要使用此发射映像替换我在qml imageView中放置的默认映像. 这是我的完整代码. postttp.hpp /* Copyright (c) 2012 Research In Motion Limited. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, s
12 2024-03-31
编程技术问答社区
如何将flex和bison与Qt项目集成?
我正在使用QT4制定GUI程序,在Git源控制下( github page ).项目的一小部分需要扫描和解析.因此,我想对该项目使用Flex和Bison.我能想到3种方法 - 将Flex和Bison Files放在项目和源控制之外.生成C源文件并将其添加到项目中. 将Flex和Bison Files添加到项目中,但分别运行Flex和Bison命令. 与IDE(Ubuntu 12.04上的QT创建者)和源控件正确集成,因此,当我构建Flex和Bison时,请呼唤燃烧和解析器. 我显然想要第三种选择,但不知道该怎么做. 请提出最佳选择和方法.还是还有其他方法可以做? 注意 - 我希望该项目是跨平台,也可以为Windows构建. 解决方案 通过遵循 @Bort的评论中的链接,我可以很好地将Flex和Bison与我的QT项目集成在一起.我在项目设置中添加了自定义构建步骤.以下是QT创建者中的屏幕截图. 我问了一个相关的问题 - 即使存在功能,即使存在
32 2024-03-31
编程技术问答社区
带有64位整数的PyQt4 spinbox
是否可以修改PYQT Spinbox与大于32位(-2147483648-2147483647)的整数一起使用?我知道可以使用64位int数据类型在C ++中编写一个新的Spinbox,但这会变得复杂. 解决方案 您可以使用顾名思义,这将为您提供双重(即浮点)值,最多为2 ** 53(9,007,199,254,740,992).如果需要整数值,只需通过使用如果您想要大于2 ** 53的值,则子类 qabsTractspractspinbox ,,重新实现相关方法( stepby ,其他解决方案 非常感谢您的提示.我尝试了QDoubleSpinbox,但没有尝试手动设置值.因为它不符合我的目的,所以我写了自己的自旋框.在代码下方.也许对别人有帮助.有关子分类QABSTRAFTSPINBOX的文档有点罕见. 默认最大值与numpy.uint64的最大值一致.从理论上讲,应该没有限制,因为qlineedit用于表示.如果您需要超过20个符号的数字,则只需调整验证器的正则表达式.
16 2024-03-30
编程技术问答社区
Qt4中的USB条形码阅读器
我想知道如何将USB条形码扫描仪集成到QT应用程序以及条形码打印机中. 我在寻找教程,但没有发现任何有趣的东西.有什么想法吗? 预先感谢. 解决方案 大多数条形码扫描仪,IIRC基本上是从应用程序的角度来看,就像键盘一样工作.您只需提供一个文本字段,而条形码读取器"类型"它所读的内容.因此,除了验证输入,如果您不想要显示的输入,您实际上不需要担心这一点. 或模态对话框,说"扫描项目",重点放在隐藏的文本区域上. 就条形码打印机而言,如果您知道要输出的标准,则可以很好地创建SVG或PDF并将其导出到打印.这样,您的应用程序可以处理打印尺寸等等. 您不要说您正在使用的是什么语言,所以我找不到条形码写作库. 其他解决方案 这不是一个真正的问题. 大多数扫描仪都像AUSB键盘一样行为,只需输入数字,就好像您输入了数字一样,其他IWSE将带有您像其他任何其他库一样使用的库. 其他解决方案 这看起来像是一个取决于USB条形码扫描仪功能的答案
12 2024-03-27
编程技术问答社区
为QPushButton设置背景图片
我正在努力为qpushbutton设置背景图像.迄今为止没有成功.以下是我的代码. appsWidget::appsWidget(QWidget *parent) :QWidget(parent) { QPushButton *button1 = new QPushButton("SETTINGS",this); QPushButton *button2 = new QPushButton("TEST",this); QPushButton *button3 = new QPushButton("IE",this); button1->setStyleSheet("background-image:url(config.png)"); -> No success qDebug("appWidget initialized."); QHBoxLayout *layout = new QHBoxLayout; la
26 2024-03-26
编程技术问答社区
为什么我错过了Qt多媒体功能?
我是QT的新手,我正在创建一个简单的应用程序,该应用程序将播放音频文件. 我意识到我写信时缺少QT多媒体API: #include ..我知道没有这样的文件. 我下载了最新的QT SDK框架,我找不到添加这些API的方法.我正在使用QT Creator IDE. 是否有一种方法可以使多媒体功能可以作为附加方式或其他方式工作? 谢谢. 解决方案 尝试包括这样的包括: #include 其他解决方案 没有更多信息,很难说,但是您的包括路径可能只是不完整.阅读QT += multimedia 到您的项目文件. 其他解决方案 尝试 sudo apt-get install qtmultimedia5-dev
20 2024-03-19
编程技术问答社区
Qt: 如何在不阻塞主线程的情况下播放声音?
我想知道QT中是否有一种简单的方法可以播放声音而不阻止主线程? 我知道我应该启动一个单独的线程来执行此操作.但是也许有捷径? :) 感谢您的帮助. 解决方案 http://doc.qt.nokia.com/latest/latest/qssound .html QT在GUI应用程序中提供了最常见的音频操作:异步播放声音文件.这是使用静态play()函数最容易完成的: QSound::play("mysounds/bells.wav"); 似乎这是一个异步操作,因此不应阻止您的主线程. 其他解决方案 标准Qsound和声子库在播放声音方面都有很大的问题.他们都需要主邮件循环,这意味着主线程中有一个轻微的块或播放声音的延迟.最终,他们都使用背景线程,但是滞后很容易注意到.更不用说声子在许多平台上都有可疑的支持. 我已经使用了一段时间,并尝试构建一个简单的声音系统来播放用户界面声音(只是偶尔出现哔哔声和流行音乐).使用标准QT库不可能.
32 2024-03-19
编程技术问答社区
Qt为一个按钮制作动画
任何人都可以在QT中提供或指向一个简单的示例,如果单击另一个按钮,我们可以向下或向上滑动一个按钮.例如,一个简单的对话框,该对话框垂直定位了三个按钮.当我们单击上部按钮时,中间和下按钮应滑下20-30像素,在上部和其他两个按钮之间留出空间. 同样,如果单击中间按钮,则按钮应达到其初始位置,并且在中间和最低按钮之间应发生类似的动画.也就是说,较低的按钮应滑下,在其之间和中间按钮之间留出空间. 我在Win7上使用MINGW使用QT 4.8.4. 解决方案 这是用Python编写的动画按钮的示例: #!/usr/bin/env python #-*- coding:utf-8 -*- from PyQt4 import QtCore, QtGui class StateSwitchEvent(QtCore.QEvent): StateSwitchType = QtCore.QEvent.User + 256 def __init__(self,
18 2024-02-26
编程技术问答社区