草庐IT

QT_INSTALL_PREFIX

全部标签

c++ - 为什么不能等待 Qt 进程在静态析构函数中完成?

以下代码启动一个需要一秒钟才能完成的进程,然后等待该进程完成后再退出。出于某种原因,以下代码在p->waitForFinished()中挂起,即使进程已完成。#includeclassA{public:A():p(0){}~A(){p->waitForFinished();deletep;}voidstart(){p=newQProcess(0);p->start("sleep1");}QProcess*p;};intmain(void){staticAa;a.start();return0;}但是,只要a不是静态声明的,而是如下:Aa;waitForFinished()调用成功。这是

c++ - 即使选择了调试构建,Qt Creator 的智能感知也会使#ifdef _DEBUG block 变灰

当我的代码中有这样的#ifdef#ifdef_DEBUGprintf("Thisisadebugbuild");#endifQtCreator将printf变灰,即使它是一个调试版本,当我运行它时“Thisisadebugbuild”被打印出来。智能感知似乎没有看到将通过命令行(即-D_DEBUG)传递给编译器的预处理器定义,而不是在头文件/源文件中定义。 最佳答案 以下内容在我的*.pro文件中运行良好:CONFIG(debug,release|debug):DEFINES+=_DEBUG切换构建类型也会切换灰色区域。不过,我使用

c++ - Qt:如何将两个小部件(比如 QPushButton)添加到状态栏,一个在左侧,另一个在右侧?

我想向状态栏添加两个小部件(比如QPushButton),一个在左侧,另一个在右侧。我正在考虑在两个小部件之间添加水平分隔符,但不知道如何添加。PS:我尝试使用addWidget()添加到左侧,使用addPermanentWidget()添加到右侧,但它看起来不整洁,而且它不'感觉不错。 最佳答案 您可以将两个按钮添加到小部件中的布局,并使用QStatusBar::addWidget将小部件添加到状态栏:QWidget*widget=newQWidget();QPushButton*leftBut=newQPushButton("L

c++ - Qt 图表和数据可视化小部件

我已经安装了Qt5.7以尝试Qt图表和Qt数据可视化,但我在QtDesigner和QtCreator中都找不到新的小部件。有什么建议我应该怎么做才能让新的小部件出现在设计器中? 最佳答案 我今天遇到了完全相同的问题。默认情况下,QTCharts的QTDesigner插件似乎不是包的一部分。我最终从githubhttps://github.com/qtproject/qtcharts/tree/5.7/plugins/designer下载了设计器插件源。这仅包含5个文件。然后您应该能够在QtCreator中打开designer.pro

c++ - Qt 未记录的方法 setSharable

我偶然发现了一种方法,它似乎存在于所有数据对象中,例如QList、QQueue、QHash...到目前为止,我什至可以看到它的源代码,也就是inlinevoidsetSharable(boolsharable){if(!sharable)detach();d->sharable=sharable;}在qlist.h(第117行)。但是它对QList、QQueue、QHash...有什么影响?它是否以任何方式与线程相关(这听起来很合理)?感谢您的回答,请仅在您了解实际知识后才回答。 最佳答案 没有人能说得更清楚了:http://qt.

c++ - Qt - QList 常量正确性

AQList不容易成为常量正确的。考虑函数voidf(QListlist){list[0]->constFunction();}我可以把f改成voidf(QListlist)但是我做不到f(QList());//Compileerror不再,因为编译器不能隐式转换QList至QList.但是,我可以明确地重新解释-转换QList,如下所示:templateinlineQList&constList(constQList&list){return(QList&)list;}这使我能够使用constList用于转换任何QList的模板函数进入QList,如f(constList(QList

C++ Qt 框架 : qmake exits with error code 2, 找不到 project.pro 文件,但它在那里

正如标题所说,我在使用QtCreator时遇到了问题。我开始玩它并创建了一个包含一些代码的main(),当我想编译它以查看它在屏幕上的显示方式时,我无法这样做,我看到以下错误:Cannotfindfile:/Users/Eugene/Documents/Qt/Test/test.pro.Leprocessus"/Users/Eugene/QtSDK/Desktop/Qt/473/gcc/bin/qmake"terminatedwitherrorcade2.ErrorduringthecompilationoftheprojectTest(build:Desktop)duringthes

c++ - 删除小部件后qt调整窗口大小

我在布局中添加小部件ui->horizontalLayout->addWidget(tabwidget);并且qmainwindow会自行调整大小。但后来我做了tabwidget->setVisible(false);qs=sizeHint();resize(qs);我得到的大小就像tabwidget没有从窗口中删除一样。我做了新的按钮voidMainWindow::on_pushButton_2_clicked(){qs=sizeHint();resize(qs);}它给出了正确的尺寸。似乎我需要一些更新功能,但我找不到。请指教 最佳答案

c++ - Qt 5.5.0 找不到 OpenGL 函数

我有一个使用OpenGL的Qt项目,并且可以在Qt5.4.0中正常编译。今天我将我的Qt升级到5.5.0,我的项目停止编译。它会抛出很多unresolvedexternalsymbol错误,您可以在此处看到:link/NOLOGO/DYNAMICBASE/NXCOMPAT/DEBUG/SUBSYSTEM:WINDOWS"/MANIFESTDEPENDENCY:type='win32'name='Microsoft.Windows.Common-Controls'version='6.0.0.0'publicKeyToken='6595b64144ccf1df'language='*'p

c++ - Qt5 : How to hide or remove a QMenu from the QMenuBar?

我在Windows7平台上使用Qt5:QtCreator版本为:v3.3.2.Qt版本5.5.1和MinGW32位。目前,在我的菜单栏中:Configuration-Reports-Help我搜索了SO,我发现这是一个可能的答案:NotpossibletohideaQMenuobjectQMenu::setVisible()?,但没用...因此,我尝试使用以下方法删除“帮助”菜单:ui->menuHelp->setVisible(false);和:ui->menuHelp->menuAction()->setVisible(false);不幸的是,两者都未能隐藏/删除帮助菜单...请问