小编rou*_*rld的帖子

CMake缺少模块目录

我已经从CMake的Mac 64位网站安装了CMake 2.8.11.2软件包.我们最近将一个项目从Qt 4升级到Qt 5,并且CMake升级是强制要求CMake使用Qt 5.但是,当我键入时,cmake .我收到以下错误:

CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/Applications/CMake 2.8-11.app/Contents/bin
CMake Error: Error executing cmake::LoadCache(). Aborting.
Run Code Online (Sandbox Code Playgroud)

我可以确认,bin文件夹中没有modules目录.我真的不知道如何解决这个错误,或者如何获得所需的模块.

cmake

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

使用Docker我收到错误:"SQLSTATE [HY000] [2002]没有这样的文件或目录"

我正在使用Docker创建一个容器来测试我的Mac上基于PHP和MySQL构建的Web应用程序.我的PHP应用程序是使用Fat-Free Framework for MVC和路由构建的.我有两个Dockerfiles,一个用于MySQL,一个用于PHP.我已经成功使用了测试Docker应用程序,所以我相信我的图像安装正确.

错误的主要部分:

Internal Server Error

SQLSTATE[HY000] [2002] No such file or directory

[fatfree/lib/DB/SQL.php:466] PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password',array(1002=>'SET NAMES utf8;'))
[fatfree/app/Controllers/Controller.php:24] DB\SQL->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password')
Run Code Online (Sandbox Code Playgroud)

注意,如果我使用127.0.0.1而不是我连接localhost得到一个略有不同的错误,说:SQLSTATE[HY000] [2002] Connection refused

我的PHP Dockerfile:

FROM php:5.6-apache

RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

我的MySQL Dockerfile:

FROM mysql:5.7

ENV MYSQL_ROOT_PASSWORD password
ENV MYSQL_DATABASE robohome

COPY ./schema.sql /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

我的Controller.php文件错误提及第24行:

<?php

namespace Controllers;

class Controller
{
    protected $f3;
    protected $db;

    public function __construct()
    {
        $f3 = \Base::instance();
        $this->f3 = $f3;

        $mysqlServerName = …
Run Code Online (Sandbox Code Playgroud)

php mysql docker dockerfile docker-compose

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

如何查找Qt应用程序的安装目录?

我有一个基于Qt的应用程序,适用于Mac和Windows.当用户安装软件时,它还会安装包含大量HTML文档页面的文件夹.我如何找到程序安装的位置,以便当用户尝试从应用程序中打开"帮助"时,它们会被带到index.html.

我的程序安装在Windows和Mac的正常位置.在Mac上,我的程序安装到/Users/username/Applications/MyProgram其中MyProgram是包含"MyProgram.app"和"文档"文件夹中的文件夹.

#ifdef Q_OS_MACX
    docPath = executablePath + "/Doc/index.html";
#elif Q_OS_WIN
    docPath = executablePath + "/Doc/index.html";
#endif

    QDesktopServices::openUrl(QUrl::fromLocalFile(docPath));
Run Code Online (Sandbox Code Playgroud)

所以,我的最终问题是,应该executablePath是什么?此外,这假设用户可以在除默认位置之外的其他地方安装程序,或者可以从快捷方式启动程序.

c++ qt

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

在Mac 10.8.2上缺少开发人员SDK

我最近从10.6.8升级到10.8.2.我需要编译使用10.7 SDK的软件.但是,每当我进入/Developer/SDKs/所有我看到的是:MacOSX10.4u.sdk,MacOSX10.5.sdk和MacOSX10.6.sdk.我希望我至少拥有MacOSX10.7.sdk,但它不存在.我不确定这是否相关,但我正在使用Xcode 4.6.

任何人都知道如何获得更新的SDK或至少解释为什么我的遗失?

macos sdk xcode

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

更改QML控件的文本颜色

我使用了一些QML控制一样GroupBox,并CheckBox具有与之相关联的文本.文本的默认颜色为黑色.但是,我在深色背景上有这些项目,并且更喜欢使用白色作为文本颜色.这些项目没有颜色属性,所以我不知道该怎么做.

CheckBox {
    text: "Check Me"
}
Run Code Online (Sandbox Code Playgroud)

qt styling qml qtquick2

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

将 tqdm 与多处理结合使用

我在 Python 3.7 中使用多处理来启动几个长时间运行的操作。每个单独的过程都需要几分钟才能完成。我想要同时显示正在运行的每个单独进程的进度条。我一直无法让它工作,因为进度条在我当前徒劳的尝试中不断跳跃并相互替换。

我这样创建我的流程:

with Pool(processes=cpu_count()) as pool:
    return pool.starmap(_execute_long_running_process, items)
Run Code Online (Sandbox Code Playgroud)

_execute_long_running_process我的函数内部有一个for循环,我希望进度条跟踪它。

for i in tqdm(list_of_things_to_process, leave=False):
    # do a thing
Run Code Online (Sandbox Code Playgroud)

我相信我的问题是由于每个tqdm进度条存在于与主流程分开的自己的流程中而产生的。我不确定有什么解决方法可以使它们按照我的预期运行,其中有几个进度条正在更新。

python multiprocessing tqdm

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

在QML中接收C++信号

我发出信号然后用QML捕获; 但是,当我尝试读取附加到信号的参数时,我得到"未定义".以下是一些代码片段.谢谢你的帮助提前!

mymodel.h

class MyModel : public QObject
{
    Q_OBJECT

    ...

    signals:
        void mySignal(float a, some::enum b)

    ...
}
Run Code Online (Sandbox Code Playgroud)

mymodel.cpp

做一些事情来发出信号(这不是问题,简单emit mySignal(1.0, 2.0);)

someotherclass.cpp

void SomeOtherClass :: setupQML(){...

QQuickView *view = new QQuickView();

QWidget *container = QWidget::createWindowContainer(view);

...

QmlRootData = new RootData();

view->rootContext()->setContextObject(QmlRootData);
view->rootContext()->setContextProperty("MyModel", model);
view->setSource(QUrl("main.qml"));
view->setResizeMode(QQuickView::SizeRootObjectToView);

QObject* rootObj = view->rootObject();

...
Run Code Online (Sandbox Code Playgroud)

}

main.qml

Rectangle {
    Connections {
        target: MyModel
        onMySignal: console.log(a)
    }
}
Run Code Online (Sandbox Code Playgroud)

上述内容console.log(a)在预期时被调用; 但是,我希望输出为"1.0",但它只是说"未定义",我不知道为什么.我正在使用Qt 5.1和Qt Quick 2.0.

c++ qt qml

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

QMetaProperty::read:无法处理未注册的数据类型“QAbstractListModel*”

我正在尝试创建一个自定义QQuickItem来在我的应用程序中显示图表。我的 C++ 版本可以工作,但我的 Python 版本无法工作。我相信这是因为Q_DECLARE_METATYPEqRegisterMetaType没有移植到 PySide2。虽然我下面的示例没有演示这一点,但我的要求是饼图不是静态的(它可以随时更改),并且我可以拥有可以在运行时添加或删除的任意数量的饼图。

我的程序将运行,但它不显示任何内容,并且我在控制台上收到以下错误:

QMetaProperty::read: Unable to handle unregistered datatype 'QAbstractListModel*' for property 'CustomPieChart::model'
QMetaProperty::read: Unable to handle unregistered datatype 'QAbstractListModel*' for property 'CustomPieChart::model'
qrc:/PieChartView.qml:24:17: Unable to assign [undefined] to QAbstractItemModel*
Run Code Online (Sandbox Code Playgroud)

我的代码的精简版本如下:

主要.py

QMetaProperty::read: Unable to handle unregistered datatype 'QAbstractListModel*' for property 'CustomPieChart::model'
QMetaProperty::read: Unable to handle unregistered datatype 'QAbstractListModel*' for property 'CustomPieChart::model'
qrc:/PieChartView.qml:24:17: Unable to assign [undefined] to QAbstractItemModel*
Run Code Online (Sandbox Code Playgroud)

饼图模型.py

import sys

from PySide2.QtCore import QUrl
from PySide2.QtGui import QIcon …
Run Code Online (Sandbox Code Playgroud)

python qml pyside2

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

QML,在运行时创建LineSeries

我的目标是在运行时添加ChartView数量可变的QML LineSeriesLineSeries在用户选择并加载其中包含数据的文件之前,未知需要添加多少个。

我试图创建所有的LineSeries内部Repeater,没有运气。我怀疑这是因为ChartView不知道该怎么办Item。由于不适用于,因此无法直接进行Repeater创建:LineSeriesRepeaterQObject

Repeater {
    model: numberOfColumnsInModel / 2

    delegate: Item {
        LineSeries {
            id: lineSeries
            axisX: xAxis
            axisY: yAxis

            VXYModelMapper {
                id: modelMapper
                model: lineChart.model //Reimplemented QAbstractTableModel
                xColumn: index * 2
                yColumn: index * 2 + 1
            }

            onHovered: {
                console.log("Do something...");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我在线上看到的示例中,每个示例LineSeries都是硬编码的(对于其中的每一行一次),ChartView对我没有用。

charts qt qml lineseries

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

QML Charts 导致启动时崩溃

我正在尝试制作一个使用 QML QCharts 来可视化数据的应用程序。该程序在启动时甚至在窗口出现之前就崩溃了。我在 macOS 和 Windows 10 上都进行了尝试,结果相同。我在下面提供了一个最低限度的工作示例。

main.py:

import sys

from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
from PySide2.QtCore import QUrl

import qml_rc

if __name__ == "__main__":
    app = QGuiApplication(sys.argv)

    engine = QQmlApplicationEngine()
    engine.load(QUrl("qrc:/main.qml"))

    if not engine.rootObjects():
        sys.exit(-1)

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

main.qml:

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtCharts 2.13

ApplicationWindow {
    visible: true

    // Example taken from: https://doc.qt.io/qt-5/qtcharts-qmlchart-example.html
    ChartView {
        id: chart
        title: "Top-5 car brand shares in Finland"
        anchors.fill: parent
        legend.alignment: Qt.AlignBottom
        antialiasing: true …
Run Code Online (Sandbox Code Playgroud)

python qml python-3.x qtcharts pyside2

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

具有动态宽度列的 QML TableView

TableView在 PySide2 Qt 5.13.0 中创建了一个。我想要TableView填充父项的宽度,但除非我拖动表格,否则它不会调整列的大小。从程序开始,我希望列更宽。

在此处输入图片说明

主文件

import sys

from PySide2.QtCore import QUrl
from PySide2.QtQml import QQmlApplicationEngine, qmlRegisterType
from PySide2.QtWidgets import QApplication

from table_model import TableModel

import qml_rc  # noqa: F401


if __name__ == "__main__":
    app = QApplication(sys.argv)

    engine = QQmlApplicationEngine()

    qmlRegisterType(TableModel, "TableModel", 1, 0, "TableModel")

    engine.load(QUrl("qrc:/main.qml"))

    if not engine.rootObjects():
        sys.exit(-1)

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

主文件

import QtQuick 2.13
import QtQuick.Controls 2.13

import TableModel 1.0

ApplicationWindow {
    visible: true

    Component.onCompleted: {
        showMaximized()
    }

    TableView {
        id: tableView
        clip: true
        anchors.fill: …
Run Code Online (Sandbox Code Playgroud)

python qt qml pyside2

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

为什么removeClass()和addClass()不起作用?

我有一个将成功执行的AJAX调用,但当它到达该done()部分时,它将打印出我的消息"SUCCESS",但不会更改按钮的类.

$(".btn").click(function () {
    $.ajax({
        method: "POST",
        url: $(this).data("action"),
        data: {
            aId: $(this).data("a-id"),
            bId: $(this).data("b-id"),
            cId: $(this).data("c-id")
        }
    })
    .done(function () {
        console.log("SUCCESS");
        $(this).removeClass("btn-default");
        $(this).addClass("btn-success");
    })
    .fail(function (jqXHR, textStatus, errorThrown) {
        alert("FAILURE");
        $(this).removeClass("btn-default").addClass("btn-danger");
    });
});
Run Code Online (Sandbox Code Playgroud)

我的猜测是,它与我没有给函数提供按钮的ID来处理这个事实有关,而是对任何被点击的具有"btn"类的东西采取行动.这个源自的页面有一长串按钮,这就是为什么他们没有ID,因为页面会给他们所有相同的ID.我想我可以在ID上附加一个数字,但我宁愿不这样做.它也没有解释为什么$(this)在检索值时在我的其余AJAX函数中起作用.

javascript ajax jquery

0
推荐指数
1
解决办法
48
查看次数

Fedora Docker 镜像没有 xargs

我有以下 Dockerfile:

FROM fedora:27

RUN xargs
Run Code Online (Sandbox Code Playgroud)

当我运行时,docker build -t test .我得到以下输出:

$ docker build -t test .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM fedora:27
 ---> 7a2e85963474
Step 2/2 : RUN xargs
 ---> Running in fbe9bfbedfe0
/bin/sh: xargs: command not found
The command '/bin/sh -c xargs' returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud)

我希望 Fedoraxargs默认具有,但它似乎不可用。我还应该尝试什么?

fedora xargs docker dockerfile

-1
推荐指数
1
解决办法
1151
查看次数