小编Jac*_*ieg的帖子

Qt样式表.背景颜色,是的.背景图像,没有

这是样式表的一个奇怪的问题:我有一个窗口,类QWidget的孩子.我将样式表应用于它,以理想地将整个窗口的背景更改为具有repeat-x和repeat-y的图像,将其平铺.

样式表"管道"有效.如果我使用"background-color"并将其设置为红色,整个窗口将被涂成红色.但是,如果我使用背景图像,则不会.如果我在窗口内添加一个CHILD WIDGET(使用Qt-Designer),那么background-image将在父窗口的整个内部工作,但不在其外部.

显然我做错了什么,但是为什么背景颜色在整个窗口上工作真的很无能,但背景图像不会,除非有一个子窗口小部件,然后,只有它内部.

qt

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

Qt 4.7.4的PyQt设置

我尝试使用Qt安装PyQt来开发Python应用程序.我从http://www.riverbankcomputing.co.uk下载了SIP和PyQt4 并编译了软件包.

但是我在编译PyQt4时遇到了一个问题:

我在终端中运行了python configure.py,我得到了:

Error: Make sure you have a working Qt v4 qmake on your PATH or use the -q
argument to explicitly specify a working Qt v4 qmake.
Run Code Online (Sandbox Code Playgroud)

我查看了Qt设置,我看到qmake的路径在这里定义'home/user/.QtSDK/Simulator/Qt/gcc/bin/qmake'.这个路径应该在哪里设置?

我如何配置qt所以我可以直接将代码写入Qt Creator并从那里执行它,就像任何其他c ++文件一样.我从诺基亚网站安装了Qt,它安装在/home/user/.QtSDK文件夹中.

谢谢.

python qt compilation pyqt configure

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

POSIX C线程.pthread_cond_t例子.不能按预期工作

我写了一个写了一个程序,它没有像我期望的那样工作.我有两个线程:thread触发器funcanotherThread触发器anotherFunc.我想做的是当cont达到值10func,anotherThread使用pthread_cond_wait和触发pthread_cond_signal.奇怪的是,如果我取消注释,一切正常sleep(1).我是线程的新手,我在这里遵循教程,如果我sleep在他们的例子中评论该行,它也会中断.

我的问题是如何在没有任何sleep()电话的情况下完成这项工作?如果在我的代码中func达到pthread_mutex_lock之后会发生什么anotherFunc?我该如何控制这些东西?这是我的代码:

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>

pthread_mutex_t myMutex;
pthread_cond_t cond;
pthread_attr_t attr;

int cont;

void *func(void*)
{
    printf("func\n");

    for(int i = 0; i < 20; i++)
    {
        pthread_mutex_lock(&myMutex);

        cont++;
        printf("%d\n", cont);
        if(cont == 10)
        {
            printf("signal:\n");
            pthread_cond_signal(&cond);
//            sleep(1);
        }
        pthread_mutex_unlock(&myMutex);
    } …
Run Code Online (Sandbox Code Playgroud)

c++ variables pthreads multitasking conditional-statements

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

将QByteArray转换为std :: vector <unsigned char>

我试图转换QByteArraystd::vector<unsigned char>使用此代码:

unsigned char* buffer = (unsigned char*)byteArrayBuffer.constData();
std::vector<unsigned char>::size_type size = strlen((const char*)buffer);
std::vector<unsigned char> bufferToCompress(buffer, buffer + size);
Run Code Online (Sandbox Code Playgroud)

但是,假设这byteArrayBuffer是一个QByteArray充满数据,我认为它在线上不能很好地工作,unsigned char* buffer = (unsigned char*)byteArrayBuffer.constData();因为byteArrayBuffer.size()返回的值不同于bufferToCompress.size().

我怎样才能让它运转起来?

c++ vector std unsigned-char qbytearray

6
推荐指数
1
解决办法
8950
查看次数

为什么没有报告所有变量的"未使用的变量"警告?

我有这个代码:

// initializer lists
#include <iostream>
#include <vector>

int main()
{
    int values[] { 1, 2, 3 };

    std::vector<int> v { 4, 5, 6 };

    std::vector<std::string> cities {
        "London", "New York", "Paris", "Tokio"
    };

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

但是gcc编译器unused variable只给出了values数组警告.为什么vcities没有报道?

c++ gcc c++11 unused-variables

6
推荐指数
1
解决办法
864
查看次数

从 QML 动态创建 C++ 对象

我想C++QML. 我创建了一个QObject名为的派生类Car并将其公开给QML使用qmlRegisterType<Car>("org.qtproject.models", 1, 0, "Car");. 在里面,QML我能够实例化一个Car这样的对象:

Car {
    id : car_1
    carName : "H1"
    carBrand : "Hummer"
    carPrice : 125000
} 
Run Code Online (Sandbox Code Playgroud)

然后使用该car_1对象并C++在需要时轻松将其传回。但我想是创建一个Car动态的对象QML,这样我就可以把它传递回C++

我试过:

MouseArea
{
    anchors.fill: parent
    onClicked: {
        component = Qt.createQmlObject("Car { id: car_1; carName : \"H1\"; carBrand : \"Hummer\"; carPrice : 125000; }",
                                       parent, "dynamicSnippet1");

        myCarModel.appendRowFromQml(component);
    }
}
Run Code Online (Sandbox Code Playgroud)

但没有运气。使用静态方法,工作正常:

MouseArea
{
    anchors.fill: …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qt-quick qtquick2

6
推荐指数
1
解决办法
3943
查看次数

Git:别名错误:使用“--”将路径与修订版分开

我创建了一个 git 命令来显示 HEAD 和最后一次 Git-SVN 提交之间的差异。

Git 是命令

git diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD
Run Code Online (Sandbox Code Playgroud)

我想为它创建一个别名,我这样做了:

git config --global alias.diffsvn 'diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD'
Run Code Online (Sandbox Code Playgroud)

但是当我运行git diffsvn并获得该命令的输出时,我得到了

致命:不明确的参数“git”:未知修订版或路径不在工作树中。使用“--”将路径与修订版分开,如下所示:“git [...] -- [...]”

我怎样才能让这个别名起作用?

git git-config git-alias

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

将QWidget升级到QMainWindow或从Qt Designer将QMainWindow添加到QWidget

我的问题:

我想自定义title bar工作方式并查找我的应用程序。

我的想法:

我在中创建了一个新QWidget表单Qt Designer并添加了一个QWidget。我在构造函数中添加了以下代码:

setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(Qt::FramelessWindowHint);

QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect();
effect->setBlurRadius(20);
effect->setXOffset(0);
effect->setYOffset(0);
setGraphicsEffect(effect);
Run Code Online (Sandbox Code Playgroud)

这使外部小部件透明,并向我的内部小部件添加阴影。由此,我可以创建一个自定义标题栏小部件,可以根据需要实现它。

结果如下:

在此处输入图片说明

我的问题

我想打从设计师这个可以作为一个主窗口和QWidget不允许我添加从设计师tool barsmenu barstatus bar

我想到的是添加一个QMainWindow小部件作为外部QWidget的子小部件(它是透明的,并充当对我的阴影的支持(在其上绘制阴影))。我成功完成了此操作,但仅通过代码完成了:

QMainWindow *centralwidget = new QMainWindow();
centralwidget->setStyleSheet("background-color: lightgray;");
centralwidget->setGeometry(0, 0, 50, 20);
centralwidget->setWindowFlags(Qt::Widget);
this->layout()->addWidget(centralwidget);

QMenuBar *menuBar = new QMenuBar(centralwidget);
menuBar->addAction("Action");

QStatusBar *statusBar = new QStatusBar;
statusBar->showMessage("Status bar here");

centralwidget->addToolBar("tool bar");
centralwidget->setMenuBar(menuBar);
centralwidget->setStatusBar(statusBar);
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此处输入图片说明

我的问题:

我如何从中获得此结果Qt Designer?是否有可能推广QWidget到 …

c++ qt qwidget qmainwindow qt5

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

以编程方式调用Snap / Aero最大化

有没有办法针对特定的窗口/窗口ID使用C或C ++以编程方式调用Aera最大化效果?

例如:

在此处输入图片说明

要么

在此处输入链接说明
(来源:thebuzzmedia.com

我正在使用无边界的Qt窗口,并且Qt具有用于获取窗口ID的API。我想以编程方式触发没有已知触发器的Windows效果。

c++ winapi qt aero aero-snap

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

使用 JavaCPP 在 Java Android 应用程序中运行 C++ 代码

我是 Android 开发的初学者,我正在尝试了解JavaCPP。我想C++从应用程序Java内部执行一个函数Android。在我的示例中,我只使用一个简单的TextView小部件来打印我从C++. 按照文档,在应用程序中,build.gradle我包含了我的javacpp库依赖项

dependencies {
    implementation 'org.bytedeco:javacpp:1.5.4'
}
Run Code Online (Sandbox Code Playgroud)

为了在我的应用程序中使用它。我正在本地 C++ Android Studio 模板项目中进行测试。

我已经在 GitHub 上上传了完整的项目以供参考:https : //github.com/jacobkrieg10/javacppnewexample

而且,下面是我认为需要注意的项目中的相关文件:

NativeLibrary.java :

package com.example.javacplusplus;
import org.bytedeco.javacpp.*;
import org.bytedeco.javacpp.annotation.*;

@Platform(include="NativeLibrary.h")
@Namespace("NativeLibrary")
public class NativeLibrary {
    public static class NativeClass extends Pointer {
        static { Loader.load(); }
        public NativeClass() { allocate(); }
        private native void allocate();

        // to call the getter and setter functions …
Run Code Online (Sandbox Code Playgroud)

c++ java javac android-ndk javacpp

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