小编san*_*ood的帖子

在QThread中启动QTimer

我试图在特定的线程中启动QTimer.但是,计时器似乎没有执行,也没有打印出来.是与计时器,插槽还是线程有关?

main.cpp中

    #include "MyThread.h"
    #include <iostream>
    using namespace std;

    int main(int argc, char *argv[]) {
        MyThread t;
        t.start();
        while(1);
    }
Run Code Online (Sandbox Code Playgroud)

MyThread.h

    #ifndef MYTHREAD_H
    #define MYTHREAD_H

    #include <QTimer>
    #include <QThread>
    #include <iostream>

    class MyThread : public QThread {
        Q_OBJECT
    public:
        MyThread();
    public slots:
        void doIt();
    protected:
        void run();
    };

    #endif  /* MYTHREAD_H */
Run Code Online (Sandbox Code Playgroud)

MyThread.cpp

    #include "MyThread.h"

    using namespace std;

    MyThread::MyThread() {
        moveToThread(this);
    }

    void MyThread::run() {
        QTimer* timer = new QTimer(this);
        timer->setInterval(1);
        timer->connect(timer, SIGNAL(timeout()), this, SLOT(doIt()));
        timer->start();
    }

    void MyThread::doIt(){
        cout …
Run Code Online (Sandbox Code Playgroud)

c++ qt multithreading timer qthread

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

如何按列对QTableView进行排序?

我正在使用它QTableView来显示QAbstractTableModel:

#include <QtGui/QApplication>
#include <QAbstractTableModel>
#include <QTableView>

class TestModel : public QAbstractTableModel
{
public:
    int rowCount(const QModelIndex &parent = QModelIndex()) const
    {
        return 2;
    }
    int columnCount(const QModelIndex &parent = QModelIndex()) const
    {
        return 2;
    }
    QVariant data(const QModelIndex &index, int role) const
    {
        switch (role)
        {
        case Qt::DisplayRole:
        {
            return 4 - index.row() + index.column();
        }
        }
        return QVariant();
    }
};

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

    QTableView table;
    TestModel model;
    table.setModel(&model);
    table.setSortingEnabled(true);
    table.sortByColumn(0, …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtableview

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

C++/Qt - QThread与QRunnable

QThreads和QRunnable有什么区别?

什么时候应该使用QThread和QRunnable?

c++ concurrency qt qthread

14
推荐指数
2
解决办法
3355
查看次数

在QTableView中更改列的顺序

我想知道如何通过拖动改变QtableView中列的顺序?我目前有一个派生自FilterProxyModel的类作为QtableView的源代码.我使用的是QT 4.8

c++ qt qtableview

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

无法编译QT创建快速应用程序项目

我是QT Creator的新手,我已经安装了QT Creator 5.6.2和MinGW 4.9.2 32bit.编译快速应用程序项目时遇到问题,因为它始终显示此错误消息:

Could not create directory "C:\Users\Hello\Documents\Error in " Util.asciify("build-untitled-Desktop_Qt_5_6_2_MinGW_32bit-Debug")": TypeError: Property 'asciify' of object Core::Internal::UtilsJsExtension(0xb05718) is not a function"
Error while building/deploying project untitled (kit: Desktop Qt 5.6.2 MinGW 32bit)
When executing step "qmake"
Run Code Online (Sandbox Code Playgroud)

c++ qt-creator

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

无法修改Qt Creator中的选项卡设置

我希望标签插入2个空格.所有其他解决方案似乎都是旧版Qt Creator的参考.

工具 - >选项 - >文本编辑器 - >行为 - >制表符和缩进

下拉菜单中没有"选项"选项.

工具 - >选项 - > C++ - >代码样式 - >编辑

"代码样式"在该路径中不存在.

Qt Creator - >首选项 - >行为>文本编辑器

这似乎是修改整个IDE设置的合适位置,但它们似乎没有保存到项目中.

在此输入图像描述 Qt 5.2.1

c++ qt qt-creator

9
推荐指数
1
解决办法
5630
查看次数

如何使用cabal安装我自己的候选包?

我刚刚创建了一个新的cabal包(http://hackage.haskell.org/package/json-python-0.1.0.0/candidate).我想在发布之前在单独的计算机上测试它.跑步cabal install json-python无法找到候选人,这是有道理的.有没有办法告诉cabal目标候选人,或tarball的特定网址?否则,是wget从我的其他计算机安装包到tarball网址,运行tar xf,然后从本地包安装cabal 的最佳方法?如果有人可以将这些信息添加到http://hackage.haskell.org/upload上的其他不错的介绍中,那将是很棒的.

haskell cabal

9
推荐指数
1
解决办法
254
查看次数

Qt在QTableview问题中自动完成QCombobox

我有一个QTableView,它有一个带有QComboBox QItemDelegate的列.有一个组合框的完成列表.当您开始输入并按Enter键时,完成正确完成(请注意大写字母)
在进入之前 (按回车) - > 在此输入图像描述

但是,当我按Tab键时,它不会包含大写字母.
在进入之前(按标签) - > 在此输入图像描述

但是当我在一个免费的ComboBox上尝试这个时,它会正确地自动完成
在此输入图像描述(按标签) - > 在此输入图像描述

我没有在任何地方捕获Tab输入事件,所以我不确定是什么导致了这个问题.会是什么呢?

c++ qt qtableview

9
推荐指数
1
解决办法
263
查看次数

Qt:qthread在关闭期间线程仍在运行时被破坏

我有一节课:

class centralDataPool : public QObject
{
    Q_OBJECT
public:
    centralDataPool(QObject * parent = 0);
    ~centralDataPool();
    commMonitor commOverWatch;

private:
    QThread monitorThread;
    int totalNum;

signals:
    void createMonitor(int);
};
Run Code Online (Sandbox Code Playgroud)

在它的构造函数中我做了:

centralDataPool::centralDataPool(QObject* parent) : QObject(parent),totalNum(0)
{
    connect(this, SIGNAL(createMonitor(int)), &commOverWatch, SLOT(createMonitor(int)));
    commOverWatch.moveToThread(&monitorThread);
    monitorThread.start();
}
Run Code Online (Sandbox Code Playgroud)

当我调用此类的析构函数时,我收到错误消息:

qthread destroyed while thread is still running
Run Code Online (Sandbox Code Playgroud)

但是当我试图在类centralDataPool的析构函数中终止monitorThread时,

centralDataPool::~centralDataPool()
{
    monitorThread.terminate();
}
Run Code Online (Sandbox Code Playgroud)

我得到内存泄漏.

在销毁其所有者对象期间终止线程的正确方法是什么?

c++ qt multithreading qthread

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

在Mac OS X中进行make时出现错误的未知类型名称'constexpr'

当我使用scons编写一些程序时,会发生类似的错误,

错误:未知类型名称'constexpr'

错误:预期的不合格ID

我已经安装了xcode和xquartz最新版本。这是我的Mac clang版本

Apple LLVM版本8.1.0(clang-802.0.42)目标:x86_64-apple-darwin16.6.0线程模型:posix InstalledDir:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

而且,我附上我的整个错误日志,以防万一。

/Users/jeon.hk/Documents/geant4/geant4.10.3-install/bin/../include/Geant4/CLHEP/Units/SystemOfUnits.h:54:10: error: unknown type name 'constexpr'
static constexpr double     pi  = 3.1415;
       ^
/Users/jeon.hk/Documents/geant4/geant4.10.3-install/bin/../include/Geant4/CLHEP/Units/SystemOfUnits.h:54:20: error: expected unqualified-id
static constexpr double     pi  = 3.1415;
                 ^
/Users/jeon.hk/Documents/geant4/geant4.10.3-install/bin/../include/Geant4/CLHEP/Units/SystemOfUnits.h:55:10: error: unknown type name 'constexpr'
static constexpr double  twopi  = 2*pi;
       ^
/Users/jeon.hk/Documents/geant4/geant4.10.3-install/bin/../include/Geant4/CLHEP/Units/SystemOfUnits.h:55:20: error: expected unqualified-id
static constexpr double  twopi  = 2*pi;
                 ^
/Users/jeon.hk/Documents/geant4/geant4.10.3-install/bin/../include/Geant4/CLHEP/Units/SystemOfUnits.h:56:10: error: unknown type name 'constexpr'
static constexpr double halfpi  = pi/2;
       ^
/Users/jeon.hk/Documents/geant4/geant4.10.3-install/bin/../include/Geant4/CLHEP/Units/SystemOfUnits.h:56:20: error: expected unqualified-id
static constexpr double halfpi  = pi/2; …
Run Code Online (Sandbox Code Playgroud)

c++ constexpr c++11

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