草庐IT

c++ - Qt 拆分 QString 一次

我想拆分一个QString,但是根据文档,拆分函数只允许在出现要拆分的字符时进行拆分。我想要的是只在字符第一次出现的地方分割。例如:5+6+7默认split()将以包含["5","6","7"]我想要的:只有两个元素的列表->["5","6+7"]提前感谢您的回答! 最佳答案 有多种方法可以实现这一点,但是thisis可能而且可以说是最简单的:main.cpp#include#includeintmain(){QStringstring("5+6+7");qDebug()主程序TEMPLATE=appTARGET=mainQT=co

c++ - 如何在Ubuntu的Qt Creator中集成chromium浏览器项目

我已经设法理解chromium浏览器的结构,现在我想使用IDE对UbuntuTrusty机器(14.04)上的个人项目进行一些更改.它已经编译好了,我只想使用一个IDE让我的生活更轻松。我尝试使用选项openproject将chromium添加到QtCreator但没有成功。您能指导我实现这一目标吗?有些步骤真的很有帮助。更多,可以从QtCreator编译/构建chromium吗?(避免每次都在控制台ninja-Cout/Debugchromechrome_sandbox和out/Debug/chrome中输入)如果你们能给我推荐另一个你们习惯的IDE,请指导我,我会更改帖子的标题。/

c++ - 替换 Qt 中的小部件

我有一个基类,它有一些gui项目,我已经设置了在Qtcreator中使用设计器的位置。这些项目是:QWidget*w1;QWidget*w2;QWidget*w3;现在在继承该基类的类中,我想将这些小部件“转换”为lineEdit项目,这将保留该小部件的所有几何参数。所以我做了这样的事情:QLineEdit*leAmplitude;leAmplitude=newQLineEdit(ui->w1);leAmplitude->setGeometry(ui->w1->geometry());ui->glControls->addWidget(leAmplitude);但是添加的QLineEd

c++ - 如何用Qt显示图像

翻了一下Qt提供的widgets,好像没有显示图片的。在Qt中显示图像的正确方法是什么? 最佳答案 没有专门用于显示图像的小部件,但这可以通过标签小部件来完成。我们使用像素图属性来做到这一点。在你的代码中,确保包含#include然后,无论你想在哪里设置图像,都包括以下内容QPixmappic("/path/to/your/image");ui->label->setPixmap(pic);我们在这里做的是创建一个用作图像的QPixmap对象,然后将该对象设置为标签的pixmap属性。

c++ - Qt Designer 中按钮的回调?

我今晚才开始使用QtCreator,它似乎将所有界面内容都放在了ui文件中。我按照教程为我的图标创建资源,然后将它们添加到顶部的菜单栏。虽然我需要在点击其中一个时建立连接,但不知道如何为它进行回调。我是否必须通过代码完全创建它们,或者有什么方法可以为它们添加回调(而不是仅仅让它们与其他对象交互)。 最佳答案 菜单栏项是操作对象。要在单击它们时执行某些操作,您需要从操作中捕获triggered()signal。阅读有关信号和槽的更多信息here.为此,您需要在MainWindow类中声明一个新的slot。Qt还支持自动执行此操作,无需

c++ - Qt C++初始化列表困惑

我刚开始使用Qt(和C++,在较小程度上),我想确保在继续之前完全理解基本代码。我了解初始化列表中的第一个元素用于选择非默认继承的构造函数。ui(newUi::TestAppMain)的目的是什么?在我看来,这将是一个无限循环,因为在构造函数中将ui设置为TestAppMain的新实例,但事实并非如此。namespaceUi{classTestAppMain;}classTestAppMain:publicQMainWindow{public:explicitTestAppMain(QWidget*parent=0);private:Ui::TestAppMain*ui;};TestA

c++ - Qt 用户调整大小事件结束(stops)

我有一个QWidget,我需要在调整大小事件结束时执行一些操作(刷新小部件中的图片)。我怎样才能捕获这个Action?我需要捕捉用户通过释放鼠标按钮结束所有调整大小操作的时刻。在我的应用程序中,在每个像素调整大小后刷新图像并不是一个好习惯。它应该仅在鼠标释放和调整大小操作结束时调用。我只是试图重新实现QMouseReleaseEvent来捕捉它,但是当用户按下小部件的边框以调整它的大小时它不起作用。这意味着在我们的情况下不起作用。然后我尝试创建自己的QSizeGrip并将其插入到我的小部件的底部,但是重新实现的事件QMouseReleaseEvent再次在其中不起作用。事件不会在用户释

c++ - 为什么 Qt 不应用这个样式表类型选择器?

我有这个小测试用例,它应该显示两个小部件,一个完全重叠另一个。一个是半透明的,所以另一个小部件应该透过它发光。为此,我使用类型选择器Menu(这是它的类名)在一个小部件上设置了样式表。但是,它并没有使小部件不透明200/255,而是使其完全透明,就好像类型选择器根本不适用于菜单对象一样,所以我看不到任何亮点的蓝色了。如果我改为使用*选择器,它会按预期工作。我测试了metaObject()->className()的值,它正确地报告了Menu。有人可以提示我我犯的错误吗?这是一个真实程序的缩减测试用例,它显示了更奇怪的行为,我首先想让这个缩减测试用例工作。#include#include

C++/Qt 编码风格——#define 应该放在哪里

我正尝试在Qt中构建一个突破性的游戏克隆。我需要弄清楚我的球与哪种类型的QGraphicsItem发生碰撞。例如,如果我的球与墙壁碰撞,球就会弹开,如果它与砖碰撞,它必须反弹并摧毁砖。要找出它是什么类型的QGraphicsItem,我认为最好的方法可能是覆盖QGraphicsItem::type()(如果这是,请告诉我方法不对!)。在brick.h的以下代码中,我将“Brick”的类型设置为3。现在,值3看起来很难跟踪。相反,我宁愿用“#define”来声明一些东西#include//shouldthis#definebehere?//#defineBRICK_SPRITE3class

c++ - Qt:实现平移(拖动)的正确方法

QGraphicsview有一个方法setDragMode(ScrollHandDrag)来启用鼠标左键的平移。但我想在单击鼠标滚轮(中间按钮)时启用平移,并创建了以下自定义实现来平移://WithinacustomderivedclassofQGraphicsView//panistruewhenwheelisclickedandfalsewhenreleased//lastPosisdefinedsomewhereelseintheclassvoidGridView::mouseMoveEvent(QMouseEvent*event){if(pan){QPointFcurrentP