小编Jan*_*Jan的帖子

QMessageBox中的HTML

我有一个创建QMessageBox的动作.在该对话框中,我想打印一个包含多个项目的列表.我有以下代码:

void MainWindow::onAboutActivated(){
qDebug() << "about";
QMessageBox::about(this,
                   "Autor: \n"
                   "\n"
                   "Umoznuje:"
                   "<ul>"
                   "<li> Item 1 </li>"
                   "<li> Item 2 </li>"
                   "<li> Item 3 </li>"
                   "</ul>");
Run Code Online (Sandbox Code Playgroud)

但是,这不会打印列表,而是带有html标签的文本.我该如何打印清单?有任何想法吗?

c++ qt qmessagebox

14
推荐指数
1
解决办法
4930
查看次数

使用bulletspan时的Incorect换行

我现在试图解决我的问题2天,但没有任何成功.

问题是:当我将BulletSpan设置为文本然后在EditText中显示时,一切正常,直到我开始输入另一个文本.当文本被包裹在屏幕的末尾时,缩进工作但光标指向实际位置,并且光​​标之后还添加了前一行中的一些字符.为了更好地说明此问题,请参阅附图.

跨度错误

还值得一提的是,只有当我输入文本时才会发生这种情况,当我在源文本中设置文本并且文本太长而不能只在一行上时,包装工作正常并且没有添加额外的字符也没有添加光标位置是错的.

我也试过LeadingMarginSpan.Standart,行为是一样的.

在代码我设置开始标记:

private void handleListStart(SpannableStringBuilder text) {
    int len = text.length();
    text.setSpan(new ListItem(), len, len, Spannable.SPAN_MARK_MARK);
}
Run Code Online (Sandbox Code Playgroud)

然后设置范围:

private void handleListEnd(SpannableStringBuilder text) {
    int len = text.length();
    Object obj = getLast(text, ListItem.class);
    int where = text.getSpanStart(obj);

    text.removeSpan(obj);

    if (where != len) {
        text.setSpan(new BulletSpan(listIndent * 15), where, len, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
    }
}
Run Code Online (Sandbox Code Playgroud)

我从xml文件中获取数据.

谢谢你的帮助

编辑:我忘了补充一点,我在Android 4.1和4.4上尝试了这一点,两者表现相同

android text textedit spannablestring

7
推荐指数
1
解决办法
589
查看次数

QTextEdit背景颜色也改变了滚动条的颜色

我希望我的应用程序中的QtextEdit为绿色,因此我将样式表设置为

background-color: rgb(109, 255, 99);
Run Code Online (Sandbox Code Playgroud)

然而,这也改变了滚动条的背景颜色,甚至当我在短信中单击鼠标右键时,显示的菜单也是绿色的,这不是我所期望的.

我正在使用Qt Designer来设计gui然后我使用uic来生成c ++文件.

在c ++文件中,它看起来像这样:

textEdit->setAutoFillBackground(false);
textEdit->setStyleSheet(QString::fromUtf8("background-color: rgb(109, 255, 99);"));
textEdit->setReadOnly(true);
Run Code Online (Sandbox Code Playgroud)

有人知道如何仅为文本区域设置背景颜色吗?

谢谢

c++ qt

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

在项目设置中为每个文件添加标题(gcc -include)

我有一个使用gcc -include file.h的项目

正如gcc文档所说,这确保了file.h包含在以这种方式编译的每个文件中(意味着在每个其他文件中都有#include"file.h").

现在我已经将这个项目导入到eclipse中,并且我设置了该文件所在的包含路径,但无法弄清楚如何在eclipse项目设置中执行类似gcc -include的操作.结果是在编辑器中我有很多" 符号xy无法解决 ",但项目编译得很好.

谢谢你的帮助.

c++ eclipse ide gcc eclipse-cdt

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

从gdb中的模板类的成员函数打印静态变量

我有一个简单的模板类:

namespace test
{

template< class Key, class Value, class Container = std::map< Key, Value > >
class DB
{
public:

    static DB& instance()
    {
        static DB _instance;

        return _instance;
    }
private:
    DB(){};
    DB( DB const& ){};
    void operator=( DB const& ){};

    Container _db_internal;
};
}
Run Code Online (Sandbox Code Playgroud)

当我在gdb中调试时,我想查看_db_internal容器,但不知道如何访问它。

我试着用gdb编写:

p 'test::DB<std::string, someclass*, std::tr1::unordered_map< std::string, someclass* > >::instance()::_instance'._db_internal
Run Code Online (Sandbox Code Playgroud)

它给我:在当前情况下没有符号...

也尝试没有单引号但没有运气。

如何在gdb中打印该容器?我正在使用gdb版本:7.6.1

谢谢

正如使用gdb自动完成功能所建议的那样,我能够获得以下信息:

p 'test::DB<std::string, std::string, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > >::instance()::_instance'
Run Code Online (Sandbox Code Playgroud)

但这给了我0,这不好

然后,如果我尝试:

p 'test::DB<std::string, std::string, std::map<std::string, std::string, …
Run Code Online (Sandbox Code Playgroud)

c++ debugging gcc gdb

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

使用pcap获取Linux接口的IP地址

有没有办法如何使用libpcap在Linux中获取接口的IP地址?

我找到了这个, 在Linux上获取接口的IP地址,但是没有使用pcap.

此外,在PCAP例子是说,像应该得到你的IP,但它给你的网络地址.

c linux pcap

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

使用pyparsing解析行数据直到关键字

我正在尝试解析行数据,然后将它们分组到列表中。

这是我的脚本:

from pyparsing import *

data = """START
line 2
line 3
line 4
END
START
line a
line b
line c
END
"""

EOL = LineEnd().suppress()
start = Keyword('START').suppress() + EOL
end = Keyword('END').suppress() + EOL

line = SkipTo(LineEnd()) + EOL
lines = start + OneOrMore(start | end | Group(line))

start.setDebug()
end.setDebug()
line.setDebug()

result = lines.parseString(data)
results_list = result.asList()

print(results_list)
Run Code Online (Sandbox Code Playgroud)

这段代码的灵感来自另一个 stackoverflow 问题: Matching nonempty lines with pyparsing

我需要的是逐行解析从 START 到 END 的所有内容并将其保存到每个组的列表中(从 START 到匹配 END 的所有内容都是一个组)。然而,这个脚本把每一行都放在新组中。

这是结果: …

python pyparsing python-3.x

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

没有<>的模板方法实现

我在课堂上有一个模板方法:

template<class T>
    A& doSomething(T value)
Run Code Online (Sandbox Code Playgroud)

然后我有一个实现

template<class T>
    A& A::doSomething(T value){
        // do something with value
        return *this;
    }
Run Code Online (Sandbox Code Playgroud)

然后,我有一个专业,让我们说bool

template<>
    A& A::doSomething(bool value){
        // do something special with value of type bool
        return *this
    }
Run Code Online (Sandbox Code Playgroud)

这是我的理解,现在在代码中有类似的东西我不知道是什么意思:

template A& A::doSomething(char const*);
template A& A::doSomething(char);
template A& A::doSomething(int);
template A& A::doSomething(int*);
template A& A::doSomething(double);
...
Run Code Online (Sandbox Code Playgroud)

具有模板的最后5行的确切含义是什么?

谢谢

c++ gcc templates c++03

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

C++ stl :: map find with structs

我有结构存储有关ARP数据包的信息,我需要保存ARP请求并一起回复数据包.我想使用std :: map为此,键和映射值是ARP结构,我将使用find运算符来计算带有请求的回复.

我的问题是如何说map :: find只比较struct中的一些成员.

我想要描述的例子

struct arp_packet : public packet_info
{
    u_short type;   // 0x0001 request
                    // 0x0002 reply

    struct ipv4_address ip_sender;
    struct ipv4_address ip_target;
};
Run Code Online (Sandbox Code Playgroud)

我会像这样在地图中保存所有请求

std::map<arp_packet*, arp_packet*>
Run Code Online (Sandbox Code Playgroud)

首先映射的值为NULL,但是当回复数据包到来时,我将使用find方法将其与请求匹配.

那么我应该如何完成地图将arp_packet*作为关键字,并在发现它将采用另一个arp_packet*并使用ip_sender和ip_target匹配它?

c++ map

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