小编Fre*_*Ben的帖子

Qt颜色选择器小工具?

我有一个QDialog子类,为用户选择提供了一些选项.其中一个选项是颜色.我已经看过了QColorDialog,我需要更简单的东西,这也是一个常规的小部件,所以我可以添加到我的布局作为我的对话框的一部分.Qt会提供这样的东西,还是我必须自己创作?如果是后者,最好的策略是什么?

qt dialog qt4 color-picker qt5

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

static const类成员

我需要在整个程序中引用各种常量.我一直在使用静态const类成员,而不是使用全局变量:

class Human
{
public:
    static const int HANDS = 2;
    static const int FINGERS = 10;
};
Run Code Online (Sandbox Code Playgroud)

问题是我需要从XML数据文件中读取值.我知道我可以用函数初始化一个静态成员:

const int Human::HANDS = ReadDataFromFile();
Run Code Online (Sandbox Code Playgroud)

由于初始化顺序只能在同一个编译单元中预测,因此我必须在同一个CPP文件中定义所有这些顺序.这不是一个真正的问题,但它有点混乱.

真正的问题是,在我的代码甚至有机会运行之前,我的ReadDataFromFile()函数中的所有内容都需要准备好使用.例如,我有一个XML类,通常处理从文件中读取XML数据.但是,我不能在这种情况下使用它,因为静态成员在我的XML类对象构造之前被初始化.

除了随处可见的全局变量之外,还有更好的解决方案来组织常量吗?

c++ static const global-variables

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

git gc和git pull锁定机器并且永远不会完成

运行时git gc,git完成最多99%,然后锁定.我让它整夜运行,它从未完成,似乎没有进展.通常我必须硬重置机器才能恢复,因为一切都锁定了.因为机器变得完全没有反应,我无法得到tophtop统计.

我决定暂时忽略这个问题.然而今天,当运行a时git pull,git决定自动打包存储库,这会触发同样的错误.

这是它被卡住的地方:

Auto packing the repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 428464, done.
Delta compression using up to 4 threads.
Compressing objects:  99% (93702/93718)
Run Code Online (Sandbox Code Playgroud)

这是Fedora 17上的Qt 4.8 C++项目.我有8GB的RAM,持有该项目的分区是33G,使用了27G(88%已满).

什么可能导致这个问题?如果机器缺乏运行资源git gc,有没有办法告诉git不要自动打包?

git git-pull git-gc

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

捕获修改键Qt

我试图了解如何使用Qt处理各种事件,并发现了一个我无法理解的关键修饰符Ctrl Shift Alt等问题.我在Qt Creator中创建了一个默认的Qt GUI应用程序,扩展了QMainWindow并且发现以下示例不会产生可理解的结果.

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    qDebug() << "Modifier " << event->modifiers().testFlag(Qt::ControlModifier);
    qDebug() << "Key " << event->key();
    qDebug() << "Brute force " << (event->key() == Qt::Key_Control);
}
Run Code Online (Sandbox Code Playgroud)

当暴力方法返回正确的值时,对事件使用modifiers()函数永远不会成立.

我做错了什么?

c++ qt keyboard-events

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

获得两个QLists之间交集的Qt方法是什么?

我有两个QLists,我需要确定交叉点(在这个特定的情况下,两个QStringLists,但我会认为这将适用于每个容器,只要T实现operator==()).

确定列表之间交集的Qt方法是什么?

编辑:

订单和重复不是问题.我只是在寻找两个列表中存在的项目.

c++ qt intersection qt4 qlist

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

GDB初始化文件.gdbinit中的Python代码

我正在尝试创建一个~/.gdbinit包含一些Qt漂亮的打印机,用于各种Qt对象,尤其是QStrings.我想在没有Qt Creator的情况下使用常规GDB执行此操作.这就是我放入文件中的内容(这个脚本是我在Niko博客中修改的scipts形式):

# -*- coding: iso-8859-1 -*-
# Pretty-printers for Qt4.

# Copyright (C) 2009 Niko Sams <niko.sams@gmail.com>

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be …
Run Code Online (Sandbox Code Playgroud)

python qt gdb

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

使用foreach循环修改Qt数据结构的正确方法

我正在迭代QLinkedList使用foreach循环,但我需要删除项目,如果它们匹配某个条件.在不搞乱循环的情况下,这样做的正确方法是什么?

foreach( Object obj, myLinkedList )
{
    if( obj.val == BAD_VAL )
        // remove the item from myLinkedList
}
Run Code Online (Sandbox Code Playgroud)

我发现了其他一些解决这个问题的问题,但不是针对链表等一般情况.

如果可能的话QSet,我也想知道其他数据结构(如QHash,等等).谢谢

c++ foreach qt iterator qt4

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

如何迭代 QMultiHash 中的所有 values()

我需要遍历 aQMultiHash并检查与每个键对应的值列表。我需要使用可变迭代器,以便在满足特定条件时从哈希中删除项目。 该文档没有解释如何访问所有值,只是第一个。此外,API 仅提供一种value()方法。如何获取特定键的所有值?

这就是我想要做的:

QMutableHashIterator<Key, Value*> iter( _myMultiHash );
while( iter.hasNext() )
{
    QList<Value*> list = iter.values();  // there is no values() method, only value()
    foreach( Value *val, list )
    {
        // call iter.remove() if one of the values meets the criteria
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ qt iterator qt4 multimap

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

如何将Ruby awesome_print发送到文件?

我试图awesome_print输出到文件而不是控制台,但我不知道如何做到这一点?

require "awesome_print"

mySymbolizedHash = {'blah' => 'blabbbb', 'this' => 'that'}
Run Code Online (Sandbox Code Playgroud)

这将写入控制台,我需要将格式化的输出写入文件.

如果我将哈希直接写入文件,它的格式不是我想要的.

ap mySymbolizedHash  
Run Code Online (Sandbox Code Playgroud)

ruby file output awesomeprint

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

如何将多个QHashes组合成一个QHash

我有两个QHashes,我想把它们组合成一个QHash.两个哈希都是相同的类型(即两者都是QHash<QString, qint32>).我如何有效地(和/或Qt)这样做?

就像是:

hash1 << hash2;
Run Code Online (Sandbox Code Playgroud)

要么

hash1.append( hash2 );
Run Code Online (Sandbox Code Playgroud)

或类似的,会很棒.如果那是不可能的,我将循环遍历较小的哈希并将其插入第一个哈希.

c++ hash qt

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