小编Nej*_*jat的帖子

在鼠标悬停时显示绘图值. - 检测散点

我试图QCustomPlot在我的线条样式中显示不同点的绘图值lsLine.我知道我可以设置一个鼠标悬停在信号上QCustomPlot但不会真正有用,因为我只需要在鼠标悬停在绘制的线上时得到通知.我的问题是有没有办法找出鼠标是否在我的散点上.是否有可以连接的信号,当鼠标在散点上时会告诉我?

c++ qt point mouseover qcustomplot

10
推荐指数
2
解决办法
1万
查看次数

如何在调试模式下将Qt Creator中的--android-platform更改为不是android-1?

我正试图通过Qt Creator在我的Android设备上运行一个新的Qt Quick应用程序.但是,Qt Creator一直使用Android API版本1,而我希望它能够针对Android API版本10(又名Android 2.3.3).

当我运行调试- >启动调试,然后选择一个armeabiarmeabi-v7a我的物理设备和仿真器上,Qt的神秘继续致力于android--1:

"C:\Qt\5.4\android_armv5\bin\androiddeployqt.exe" --input C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-libqc_mobile.so-deployment-settings.json --output C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-build --deployment bundled --android-platformandroid--1--jdk C:/jdk1.8.0_05 --ant C:/eclipse/plugins/org.apache.ant_1.9.2.v201404171502/bin/ant.bat

如何在调试时将我的项目配置为针对不同的Android版本?

My Qt creator instance is:
Qt Creator 3.3.0 (opensource)
Based on Qt 5.4.0 (MSVC 2010, 32 bit)

Built on Dec 8 2014 at 15:24:21

From revision d36c4d87db
Run Code Online (Sandbox Code Playgroud)

仅供参考,将发布模式APK部署到我的设备上确实有效.我只是希望让调试模式正常工作.

qt android qt-creator android-sdk-tools qt-necessitas

10
推荐指数
1
解决办法
5795
查看次数

Qt代表什么?

我是Qt的粉丝,我越了解它,我就越喜欢它.我不知道为什么它被命名为Qt.我搜索了它,但所有的结果都无关紧要.大多数是缩写,如"质量时间",有些是"可爱"或"安静".

我想可能是它是一个有趣的首字母缩略词,如"GNU",它是GNU不是UNIX.无论哪种方式,它都是如此酷炫可爱的名字.有人知道吗?

qt acronym

9
推荐指数
1
解决办法
3009
查看次数

QWidget :: repaint:更新进度条时检测到递归重绘

我的Qt应用程序有多个线程.其中一个叫ui->SyncUI(),和ui的对象在哪里class Interface : public QMainWindow

void Interface::SyncUI() {
QWidget* bar_widget = ui.tableWidget->cellWidget(0,4);
QProgressBar* bar_widget2 = dynamic_cast <QProgressBar*> (bar_widget);
bar_widget2->setValue( (int)percentage );
}
Run Code Online (Sandbox Code Playgroud)

这会导致运行时错误:

QWidget :: repaint:检测到递归重绘

我发现这个 https://qt-project.org/forums/viewthread/24921 但是我不太明白为什么从另一个线程设置bar widget值是非法的.

谢谢!

c++ qt multithreading

9
推荐指数
1
解决办法
9956
查看次数

在QMake中设置RPATH顺序

我有一个Linux Qt程序.我希望它优先使用可执行文件目录中的(动态)Qt库(如果存在),否则使用系统的Qt库.RPATH来救援.

我将此行添加到qmake的.pro文件中:

QMAKE_LFLAGS    += '-Wl,-rpath,\'\$$ORIGIN\''
Run Code Online (Sandbox Code Playgroud)

readelf查看生成的可执行文件,我看到:

0x000000000000000f (RPATH)              Library rpath: [$ORIGIN:/usr/local/Trolltech/Qt-5.2.0/lib]
0x000000000000001d (RUNPATH)            Library runpath: [$ORIGIN:/usr/local/Trolltech/Qt-5.2.0/lib]
Run Code Online (Sandbox Code Playgroud)

似乎没错,但ldd显示它使用的是系统版本:

libQt5Core.so.5 => /usr/local/Trolltech/Qt-5.2.0/lib/libQt5Core.so.5 (0x00007f2d2fe09000)
Run Code Online (Sandbox Code Playgroud)

如果我手动编辑qmake生成的Makefile来交换两个rpath的顺序,那么$ ORIGIN出现在/ usr/local/...之后,我得到了正确的行为:

0x000000000000000f (RPATH)              Library rpath: [/usr/local/Trolltech/Qt-5.2.0/lib:$ORIGIN]
0x000000000000001d (RUNPATH)            Library runpath: [/usr/local/Trolltech/Qt-5.2.0/lib:$ORIGIN]

libQt5Core.so.5 => ./libQt5Core.so.5 (0x00007fb92aba9000)
Run Code Online (Sandbox Code Playgroud)

我的问题是qmake如何构造最终的LFLAGS变量.我无法弄清楚如何使它在系统库之后添加($ ORIGIN).有任何想法吗?

linux qt qmake rpath

9
推荐指数
2
解决办法
8618
查看次数

QProcess :: start和QProcess :: startDetached有什么区别?

Qt文档给出了这样的解释:

  • QProcess::start:

    如果没有运行,则在新进程中启动给定程序,在参数中传递命令行参数.

  • QProcess::startDetached:

    在新进程中使用参数参数启动程序程序,并从中分离.

两者有什么区别?唯一的区别是你只能使用一个程序的一个实例启动QProcess::start而且许多实例使用QProcess::startDetached

c++ qt qprocess

8
推荐指数
2
解决办法
1万
查看次数

Qt检测计算机何时进入睡眠状态?

如何检测用户计算机何时进入睡眠状态(笔记本电脑盖关闭,睡眠模式由于不活动等)?

我需要这样做来断开用户的TCP连接.基本上我们有一个简单的聊天应用程序,我们希望让用户脱机.

c++ qt sleep

8
推荐指数
2
解决办法
3001
查看次数

QThread :: quit()会立即结束线程还是等到返回事件循环?

有许多Qt多线程教程说明QThread可以使用以下两行安全地停止a .

qthread.quit(); // Cause the thread to cease.
qthread.wait(); // Wait until the thread actually stops to synchronize.
Run Code Online (Sandbox Code Playgroud)

我有很多代码在执行此操作,并且在大多数情况下停止线程,我将始终设置自己的取消标志并在执行期间经常检查它(这是常态).到目前为止,我认为调用quit可能会导致线程不再执行任何等待信号(例如,排队的信号将不再调用其槽),但仍然等待当前正在执行的槽完成.

但我想知道我是对的,还是quit()实际上是停止了它所处的线程的执行,例如,如果某些事情未完成,就像文件描述符尚未关闭一样,它肯定应该是,尽管在大多数情况下我的工作者对象将清理这些资源,如果我确切知道戒烟是如何工作的,我会感觉更好.

我问这个是因为QThread::quit()文档说它"相当于调用QThread :: exit(0)".我相信这意味着线程会立即停在它所在的位置.但是,调用quit的堆栈帧会发生什么?

c++ qt multithreading

8
推荐指数
1
解决办法
1万
查看次数

QTreeView或QTreeWidget

我想在我的程序中实现一个嵌套子级别的树,我正在寻找这两种类型中的哪一种(View/Widget)最适合我的目标.

我有一个任务日期列表,其中包括已完成/错过/失败,每个任务都计算完成/错过/失败的次数,最后是当天的分数.

我想像这样显示它们:

树显示

我在QtCreator中使用QTreeWidget做了这个例子,但是我担心修改元素很难,因为它们存储在其他地方.

我的担忧是否合理,我应该转到模型/视图结构,还是可以轻松使用QTreeWidget?树将记录任务,因此将不断变化.元素只会添加到它,而不是删除.日期将从最高 - 最低(第2天,第1天,第1天)排序

treeview qt design-patterns qtreewidget model-view

8
推荐指数
1
解决办法
7954
查看次数

如何在KDE上的Qt应用程序中禁用自动助记符?

在KDE上的任何Qt应用程序中,当我添加一个QPushButton设计器并通过以下方式检查它的文本时:

void MainWindow::on_pushButton_clicked()
{
    qDebug()<<ui->pushButton->text();
}
Run Code Online (Sandbox Code Playgroud)

输出前面有一个&:

&通过按钮

Windows上不存在此行为.似乎KDE上的Qt应用程序会自动为所有按钮添加快捷方式,这对我来说是不可取的.我应该注意,&符号不是由设计师创建的,你不能在.ui文件中看到它们.实际上,当按钮添加到窗口小部件时,&会将其放置在其文本中的某个位置.

是否可以禁用Qt应用程序的自动助记符?

c++ qt kde shortcut

8
推荐指数
1
解决办法
1782
查看次数