小编sco*_*nov的帖子

如何检测QWidget的关闭按钮被按下?

我创建了一个新的QWidget对象,我想知道何时按下关闭按钮。

我尝试了以下代码:

pWindow = new QWidget();
connect(pWindow , SIGNAL(triggered()), this, SLOT(processCloseButtonWindowsClicked()));
Run Code Online (Sandbox Code Playgroud)

但它给出了一个错误:

pWindow 无信号触发

如何实现这一目标?

c++ qt

5
推荐指数
1
解决办法
3160
查看次数

如何在启动时自动在Eclipse中运行插件代码?

我想创建一个Eclipse插件,只要用户打开Eclipse IDE,它就会在后台自动运行.

例如,我正在构建一个获取当前活动文件地址的Java Eclipse插件,但我希望此插件始终在后台运行,而无需用户手动运行它.

怎么做到这一点?

eclipse eclipse-plugin

4
推荐指数
1
解决办法
2233
查看次数

在 64 位机器上构建 32 位 Qt 应用程序

我使用 Windows 7 64 位 QT 5.9.1 和编译器 MSCV 2017 64 位。

我正在尝试在此环境中构建 32 位应用程序并链接到 32 位库,但我似乎无法通过正确的选项组合来实现此目的,我也不知道这是否可能。

我见过一些解决方案使用

目标= 32位二进制

QMAKE_CXXFLAGS += -m32

但我似乎不知道如何使其适应这种环境。有小费吗?

编辑:我还应该提到,我没有互联网访问权限,也没有我正在使用的计算机的管理员权限,因此不可能安装新版本。

我的项目也是一个包含 3 个不同 .pro 文件的子目录项目。当我对一个专业文件进行一项更改时,我通常会将更改应用到所有文件。

编辑2:这是为了解决错误

LNK4272:库机器类型“x86”与目标机器类型“x64”冲突

LNK2019:函数中引用的外部符号无法解析

我相信一旦我可以在 32 位中编译它,这些错误就会消失,但我不确定情况是否如此。

编辑3:我确实有一个32位版本的qt,但它在MINGW中,所以它无法正确找到QMAKE_MSC_VER等等。如果有任何关于如何使其与 MSCV2017 一起工作的提示,我们将不胜感激。

c++ qt

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

如何替换字符串中的 QRegExp?

我有一个字符串。例如:

QString myString = "Today is Tuesday";
Run Code Online (Sandbox Code Playgroud)

要求是:当用户键入一个字符串时,如果该字符串包含在 中myString,则该部分myString应为粗体,不区分大小写(Qt::CaseInsensitive),但myString应保留的格式(大写字符应为大写和小写字符)应该是小写)。

例如:

  • 用户类型:tu- >今天是esday
  • 用户类型:ES- >今天是屠ES
  • 用户类型:aY- >托德AY就是Tuesd AY

这是我的功能:

void myClass::setBoldForMatching( const QString &p_text )
{
  QRegExp regExp( p_text, Qt::CaseInsensitive, QRegExp::RegExp );
  if ( !p_text.isEmpty() )
  {       
    if ( myString.contains( regExp ) )
    {
      myString = myString.replace( p_text, QString( "<b>" + p_text + "</b>" ), Qt::CaseInsensitive );
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个函数是错误的,因为 …

c++ qstring qt qregexp

4
推荐指数
1
解决办法
1401
查看次数

为什么SDL窗口立即关闭?

这是我的 C++ 文件:

#include <iostream>
#include "window.h"
#include <SDL2/SDL.h>

int main(int argc, char* argv[]) {

   if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
     std::cout << "Something went wrong" << std::endl;
}
  else { 
   SDL_CreateWindow("Neptune's Limit", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1024, 768, SDL_WINDOW_OPENGL);
   }

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会闪烁半秒钟,然后立即关闭。我看过有关此问题的其他帖子,但他们的答案是关于SDL_EVENT. 我的程序中没有任何地方。

可能出什么问题了?

c++ sdl

4
推荐指数
1
解决办法
3234
查看次数

如何在QUrl中设置主机路径?

我正在使用 QUrl 构建字符串 url。假设我需要获取“rtsp://camera.lan/stream”网址。

下面的代码给出了“rtsp://camera.lan”url:

QUrl url; 
url.setScheme("rtsp"); 
url.setHost("camera.lan"); 
auto url_str = url.toString().toStdString();  // "rtsp://camera.lan"
Run Code Online (Sandbox Code Playgroud)

这给出了“rtsp:camera.lan”网址:

url.setScheme("rtsp"); 
url.setPath("camera.lan"); 
auto url_str = url.toString().toStdString();  // "rtsp:camera.lan"
Run Code Online (Sandbox Code Playgroud)

但如果我设置主机路径,则它无效:

url.setScheme("rtsp"); 
url.setHost("camera.lan"); 
url.setPath("stream"); 
auto url_str = url.toString().toStdString();  // gives ""
bool url_is_valid = url.isValid();  // false
Run Code Online (Sandbox Code Playgroud)

文档

对于非分层方案,路径将是方案声明之后的所有内容

但是如果我需要指定路径权限怎么办?

c++ url qt

4
推荐指数
1
解决办法
1982
查看次数

qt中的占位符

我想在 QLineEdit 中设置占位符文本。我正在使用以下代码来执行此操作:

QLineEdit *q = new QLineEdit;
q->setPlaceholderText("Enter number");
Run Code Online (Sandbox Code Playgroud)

但是在执行时,占位符没有设置。这里可能有什么问题?

c++ qt placeholder qlineedit

3
推荐指数
1
解决办法
6430
查看次数

QFile::copy 是否在复制的文件中保留源文件权限?

我正在尝试使用 Qt 将游戏从磁盘或 USB 闪存驱动器复制到计算机中的硬盘驱动器,并且我想使用,QFile::copy并且保留可执行和可写等权限对我来说很重要。

在复制函数调用中我是否必须使用QFile::setPermissions或者默认情况下权限不会更改?

c++ permissions qt copy qfile

3
推荐指数
1
解决办法
702
查看次数

如何以编程方式将 ScrollView 滚动到底部?

我一直在尝试创建一个使用 Qt Quick Controls 2 以编程方式滚动到ScrollView底部的函数。我尝试了各种选项,但我在网上找到的大部分支持都是指 Qt Quick Controls 1,而不是 2。这就是我试过了:

import QtQuick 2.8
import QtQuick.Controls 2.4

ScrollView {
    id: chatView

    anchors.top: parent.top
    anchors.left: parent.left
    anchors.right: parent.right
    anchors.bottom: inputTextAreaContainer.top

    function scrollToBottom() {
        // Try #1
//      chatView.contentItem.contentY = chatBox.height - chatView.contentItem.height
//      console.log(chatView.contentItem.contentY)

        // Try #2
//      flickableItem.contentY = flickableItem.contentHeight / 2 - height / 2
//      flickableItem.contentX = flickableItem.contentWidth / 2 - width / 2

        // Try #3
        chatView.ScrollBar.position = 0.0 // Tried also with 1.0
    } …
Run Code Online (Sandbox Code Playgroud)

qt qml qtquick2 qtquickcontrols2

3
推荐指数
1
解决办法
1560
查看次数

如何使用 Qt Creator 6.0.0 打开 QML-Form 文件?

我刚刚将 Qt Creator 更新到 6.0.0,QML-Designer 不再可用。

我打开了一个使用 Qt Creator 5.0.3 创建的项目,更新后无法编辑表单:

Qt创建者

安装的Qt版本是5.15.2。

如何打开 *.ui.qml 文件?

qt qt-creator

3
推荐指数
1
解决办法
1264
查看次数