小编moz*_*ozz的帖子

qDebug()线程安全吗?

qDebug()线程安全的?通过线程安全我不仅仅意味着不崩溃,而且如果我qDebug()从不同的线程调用,输出是否可能变得混乱?我用这个代码测试了它,但它看起来并不是这样,但是,我在文档中的任何地方都找不到它们所讨论的内容.

这是我的测试代码:

#include <QtConcurrent>
#include <QApplication>
void print_a() {
    for (int ii = 0; ii < 10000; ii++) {
        qDebug("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    }
}
void print_b()
{
    for (int ii = 0; ii < 10000; ii++) {
        qDebug("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
    }
}
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtConcurrent::run(print_a);
    QtConcurrent::run(print_b);
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

任何地方没有'a'和'b'混合在同一行,但我仍然不确定它是否100%线程安全......

c++ qt multithreading qdebug

25
推荐指数
4
解决办法
5176
查看次数

QT 5.0 - 内置日志记录?

我正在对Qt 5.0 Logging进行一些研究,它似乎已经内置了日志记录类.我找不到一个例子.我找到了我认为与此相关的课程.

QMessageLogger

QMessageLogContext

我可以大致看到如何从文档中创建QMessageLogger对象,但是如何创建日志文件并附加到它?

c++ logging qt

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

如何使用gnuplot的print语句写入stdout?

当我在我的脚本中使用以下内容时,gnuplot将打印teststderr:

print "test"
Run Code Online (Sandbox Code Playgroud)

但是,我想写入test,stdout因为只应写入错误stderr.

gnuplot

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

使用gcc(resp.MinGW)编译器,C中的函数是否有最大数量的参数?

我知道在遵循良好做法时我永远不会达到这样的限度.但是,我需要使用一个带有大量参数的自动生成的函数(我不能用它改变任何东西,我从别人那里接收函数).

那么:我可以在gcc resp中使用的最大参数数量是多少.MinGW的?

我发现了这个关于C++语言规范的内容.而关于C语言标准的限制.我感兴趣的是"现实世界"限制/实施细节是什么的问题.特别是在gcc和MinGW.

另外:达到这样的限制时,我可以期待什么样的错误消息?当通过extern "C"声明在C++应用程序中使用C代码时,这是否会对"正常"C限制产生任何影响?这里可能适用除参数数量之外的其他限制,例如最大线长度?或者最大堆栈大小?

谢谢!

c gcc mingw

10
推荐指数
2
解决办法
9058
查看次数

qmake命令将文件和文件夹复制到输出目录中

我正在开发一个应该使用QtCreator和Qt 5.3在Windows,Linux和OS X上构建的应用程序.我想将文件夹中的所有文件和子文件夹复制到输出文件夹中.我已经将它用于Linux和OS X,但不适用于Windows.这是我的.pro文件的相关部分:

win32 {
    PWD_WIN = $${PWD}
    DESTDIR_WIN = $${OUT_PWD}
    copyfiles.commands = $$quote(cmd /c xcopy /S /I $${PWD_WIN}\copy_to_output $${DESTDIR_WIN})
}
macx {
    copyfiles.commands = cp -r $$PWD/copy_to_output/* $$OUT_PWD
}
linux {
    copyfiles.commands = cp -r $$PWD/copy_to_output/* $$OUT_PWD
}
QMAKE_EXTRA_TARGETS += copyfiles
POST_TARGETDEPS += copyfiles
Run Code Online (Sandbox Code Playgroud)

我在Windows上遇到的错误是"参数数量无效".

windows qt qmake xcopy

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

使用Qt-GUI的Python程序中的简单文件浏览器/文件选择器?

我目前正在尝试将某种文件浏览器/"explorer"实现到程序中...我正在使用Python和PySide与Qt-window-toolkit相关联.或多或少这个youtube视频显示了我想要的结果.但是,本教程使用C++作为编程语言,我还没有能够从C++示例中推断出正确的python代码.

基本上,我的问题是获得正确的列(文件视图),显示在左列(树型文件夹视图)中单击的文件夹的内容.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from PySide import QtGui, QtCore

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.resize(600, 600)
        self.fileBrowserWidget = QtGui.QWidget(self)
        self.setCentralWidget(self.fileBrowserWidget)

        self.dirmodel = QtGui.QFileSystemModel()
        # Don't show files, just folders
        self.dirmodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.AllDirs)
        self.folder_view = QtGui.QTreeView(parent=self);
        self.folder_view.setModel(self.dirmodel)
        self.folder_view.clicked[QtCore.QModelIndex].connect(self.clicked)

        # Don't show columns for size, file type, and last modified
        self.folder_view.setHeaderHidden(True)
        self.folder_view.hideColumn(1)
        self.folder_view.hideColumn(2)
        self.folder_view.hideColumn(3)

        self.selectionModel = self.folder_view.selectionModel()
        self.filemodel = QtGui.QFileSystemModel()
        # Don't show folders, just files
        self.filemodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files)
        self.file_view = QtGui.QListView(parent=self);
        self.file_view.setModel(self.filemodel) …
Run Code Online (Sandbox Code Playgroud)

python browser file pyqt pyside

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

将 QStandardItemModel 从 C++ 传递给 QtQuick / QML TableView 并显示它

我目前正在尝试将 a 传递QStandardItemModel给 QtQuickTableView然后显示它。这基本上是我的代码(只是一个简化的摘录,所以我希望我没有在这里添加任何额外的错误)。

C++/Qt 部分:

foo.cpp

[...]

QStandardItemModel *Foo::getModel()
{
    QStandardItemModel *model = new QStandardItemModel(this);
    QList<QStandardItem*> standardItemList;

    QList<QString> data;
    data.append("Cat");
    data.append("Dog");
    data.append("Mouse");

    foreach (QString cell, comInputData->getHeadings()) {
        QStandardItem *item = new QStandardItem(cell);
        standardItemList.append(item);
    }

    // we only add one row here for now; more will come later
    model->appendRow(standardItemList);
    standardItemList.clear();
    return model;
}

[...]
Run Code Online (Sandbox Code Playgroud)

main.cpp

Foo f;
QQmlApplicationEngine engine;
engine.rootContext()->setContextProperty("myModel", f.getModel());
engine.load(QUrl(QStringLiteral("qrc:///InputView.qml")));
Run Code Online (Sandbox Code Playgroud)

QtQuick / QML 部分:

InputView.qml

TableView {
    id: monitorInputVectorsTable
    [... positioning and sizing ...] …
Run Code Online (Sandbox Code Playgroud)

c++ qt tableview qml qtquick2

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

QList:length()和count()函数之间的区别?

我想知道功能QList::length()QList::count()真正的区别是什么.

文件说:

int QList::length() const

此函数与count()相同.

int QList::count(const T & value) const

返回列表中值的出现次数.

此函数要求值类型具有operator ==()的实现.

但是没有参数(length())的函数如何与带参数()的函数相同count()count()函数的描述对我来说很有意义.

但是,length()-function究竟做了什么?他们是否意味着它与size()功能相同QList

qt qlist

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

弄乱了本地git存储库 - 如何"恢复恢复"以再次匹配最后一次远程提交?

我在bitbucket上有一个远程git存储库(它是私有的,所以我不能在这里共享一个链接,我害怕)......我有几个分支,其中两个是:

  • cert_creation

昨天我在分支*cert_creation*,我做了一个

git add --all
git commit -m "changes blabla"
git push origin cert_creation
Run Code Online (Sandbox Code Playgroud)

......一切都很好.当我查看Bitbucket网站上的最新提交时,所有更改似乎都得到了保存.

但是,当我今天在我的本地计算机上打开一些文件时,我想,它们不是最新的.

所以我想将本地计算机上的所有更改恢复为最新的远程提交(我知道这是正确的).我用谷歌搜索将本地git存储库恢复到最新的远程提交.我使用了这些命令:

git reset HEAD --hard
git clean -fd
git fetch origin
git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)

(以及其他一些不起作用的人).现在的问题是,我已经搞砸了一切.现在我在我的本地机器上有一个非常古老的git提交(这是我最后一次将cert_creation合并到master).

现在的问题是如何"恢复恢复",即将我的本地git存储库更新为最后一次远程提交.可能这已经在互联网上的某个地方被问了100次,但我找不到正确的关键词:[]而且我已经搞砸了一些东西我真的很想确保做正确的事情.

非常感谢您的回答,我非常感谢您的帮助!

git bitbucket

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

如何使用 sed 减少(减去)文件中的数字

我有一些源代码,如下所示,我在其中调用函数C

void myFunction (
    &((int) table[1, 0]),
    &((int) table[2, 0]),
    &((int) table[3, 0])
);
Run Code Online (Sandbox Code Playgroud)

...唯一的问题是该函数有 >300 个参数(它是一个自动生成的包装器,用于初始化和调用整个模块;它是给我的,我无法更改它)。1正如您所看到的:我开始使用 a而不是 a 来访问数组0来访问数组...伟大的时光,修改了所有 300 个参数,即手动减少 300 x 数组的 x 坐标。

我正在寻找的解决方案是我如何强迫sed为我做这项工作;)

编辑:请注意,上面在 C 中访问二维数组的语法无论如何都是错误的!当然应该是[1][0]......(所以不要只是复制粘贴;))

unix bash sed

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

如何调用子类函数实现的纯虚基类方法?

我有两个班:AbstractClassSubClass.

这基本上是我的代码(嗯,只是一些示例代码):

abstractclass.h

class AbstractClass
{
public:
    AbstractClass();
    void doSomething();

protected:
    virtual void implementMe() = 0;
    int a;
};
Run Code Online (Sandbox Code Playgroud)

abstractclass.cpp

#include "abstractclass.h"
AbstractClass::AbstractClass(){}

void AbstractClass::doSomething()
{
    implementMe();  // compiler error: "implementMe() was not declared in this scope"
    a = 0;          // same compiler error here...
}
Run Code Online (Sandbox Code Playgroud)

subclass.h

#include "abstractclass.h"
class SubClass : public AbstractClass
{
public:
    SubClass();

protected:
    void implementMe();
};
Run Code Online (Sandbox Code Playgroud)

subclass.cpp

#include "subclass.h"
SubClass::SubClass() {}

void SubClass::implementMe()
{
    // do some stuff
}
Run Code Online (Sandbox Code Playgroud)

AbstractClass但是,在这里,我不断收到编译器错误(对于虚函数以及类变量): …

c++ qt

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

标签 统计

qt ×6

c++ ×4

bash ×1

bitbucket ×1

browser ×1

c ×1

file ×1

gcc ×1

git ×1

gnuplot ×1

logging ×1

mingw ×1

multithreading ×1

pyqt ×1

pyside ×1

python ×1

qdebug ×1

qlist ×1

qmake ×1

qml ×1

qtquick2 ×1

sed ×1

tableview ×1

unix ×1

windows ×1

xcopy ×1