小编cha*_*m15的帖子

如何在Qt的正确区域(考虑样式表)中绘制文本?

我正在尝试删除QLabel(子类为Label)中的文本。问题在于自定义项paintEvent()不遵守样式表设置的变量(尤其是填充/边距)。我该如何解决?

如您所见,我有一个解决方案,大多数情况下都是正确的,但是边距不能正常运行。另一个解决方案远没有奏效,而是走了正确的道路。我知道我需要做一些事情QStyle来获取区域的大小,但是我不明白。该文档确实令人困惑。

void Label::paintEvent(QPaintEvent *event){
    if (this->elide == Qt::ElideNone){
        QLabel::paintEvent(event);
        return;
    }

    QPainter p(this);
    QFontMetrics fm(font());
    if (fm.width(text()) > contentsRect().width()) {
        if (1){ //this kind of works...
            QRect rect = this->contentsRect();
            rect.adjust(this->margin(), this->margin(), -this->margin(), -this->margin());
            QString elided_txt = this->fontMetrics().elidedText(text(), this->elide, rect.width(), Qt::TextShowMnemonic); //This is the key line.

            p.drawText(rect(), elided_txt, QTextOption(Qt::AlignVCenter | Qt::AlignLeft));
        } else { //the correct solution should look something like this:


            QStyle *style = this->style();

            QRect rect = style->itemTextRect(fm, this->rect(), Qt::AlignVCenter | …
Run Code Online (Sandbox Code Playgroud)

c c++ qt

5
推荐指数
0
解决办法
1123
查看次数

如何插入到sqlite视图中?

我有一个数据库架构,它在文件1.sqlitedb到n.sqlitedb中是相同的。我使用一个视图来“合并”所有数据库。我的问题是:当我插入视图时,数据将插入哪个数据库?有什么方法可以控制获取数据的方式吗?我需要分割数据的方式取决于数据本身。本质上,我使用字段的首字母来确定将其插入的文件。任何帮助,将不胜感激。谢谢!

sqlite insert view

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

如何在C中生成GUID?

我想生成guid以插入到SQLite数据库中(即不支持db本身).但是,我想控制某些属性:

  1. 用于生成增加的guid值的顺序.
  2. 电脑独立.数据库是公共的,可能/可能不希望guids允许某人将数据跟踪回特定的计算机.
  3. '足够'随机性.guid是db中的键,它将与许多其他dbs合并,并且可以变得非常大,这意味着伪造像许多算法那样的guid是不行的.
  4. 我可以处理使用系统特定的API,但请链接Windows和Linux功能,并且首选SQLite之类的东西,我可以使用别人写的代码.
  5. 我也更喜欢在商业应用程序中使用的代码.

c uuid guid

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

如果拖动到无效的droppable上,如何才能使draggable恢复到原始位置?

我有一个我想允许被拖到任何地方的元素.但是,如果它被丢弃到拒绝它的droppable(通过接受),我希望它在拖动之前恢复到原始位置.我怎么能做到这一点?

编辑:更具体一点:我希望满足两个条件,以便将项目移回:1.它被放置在一个droppable和2. droppable没有接受所述项目.Draggable的还原选项仅检查条件2.

javascript jquery jquery-ui

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

是否可以创建没有参数的C varargs函数?

可能重复:
是否可以在C中具有可变参数函数且没有非可变参数?

是否可以创建没有参数的C varargs函数?

例如:

int foo(...);
Run Code Online (Sandbox Code Playgroud)

我想做类似以下的事情:

list* create_list(...){
    list *mylist = list_create();
    void *current_arg = va_arg(void*);
    while (current_arg != NULL){
        list_add(mylist, current_arg);
        current_arg = va_arg(void*);
    }
    return mylist;
}
Run Code Online (Sandbox Code Playgroud)

c

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

如何在Qt中绘制关闭,最小化和最大化按钮?

我创建了一个this->setWindowFlags(Qt::FramelessWindowHint);,所以没有标题栏.因此,我正在实施自己的.然而,在我继续之前,我想知道是否有一种标准的方法来以原生os的方式添加关闭,最小化和最大化按钮(即在Windows上它应该看起来像关闭窗口关闭按钮和osx相同和linux).

c++ qt

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

你如何处理内存管理和信号/插槽?

我有一个对象,它发出一个带有对象的信号:

MyObj *obj = this->generateObj();
emit newObjSignal(obj);
delete obj;
Run Code Online (Sandbox Code Playgroud)

我有一个或多个人连接到这个.问题是在对象接收信号之前调用delete调用.我该如何处理?

c++ qt memory-management

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

如何将计算状态添加到 React Apollo 中的图形对象?

我真的很喜欢让组件请求他们自己的数据的 graphQL 模式,但是一些数据属性的计算成本很高,所以我想本地化逻辑(和代码)来这样做。

function CheaterList({ data: { PlayerList: players } }) {
  return (
    <ul>
      {players && players.map(({ name, isCheater }) => (
        <li key={name}>{name} seems to be a {isCheater ? 'cheater' : 'normal player'}</li>
      ))}
    </ul>
  );
}

export default graphql(gql`
  query GetList {
    PlayerList {
      name,
      isCheater
    }
  }
`)(CheaterList);
Run Code Online (Sandbox Code Playgroud)

架构看起来像:

type Queries {
    PlayerList: [Player]
}

type Player {
    name: String,
    kills: Integer,
    deaths: Integer
}
Run Code Online (Sandbox Code Playgroud)

所以我想将该isCheater属性添加到 Player 并使其代码为:

function computeIsCheater(player: Player){
    // This is …
Run Code Online (Sandbox Code Playgroud)

javascript apollo reactjs graphql react-apollo

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

MySQL:进行基本搜索

我的数据库中有一个名称表,我希望对它进行模糊搜索,例如我的数据库包含:

Name         ID
John Smith   1
Edward Smith 2
Gabriel Gray 3
Paul Roberts 4
Run Code Online (Sandbox Code Playgroud)

在我通过python搜索数据库的那一刻,我只能进行完全匹配搜索.但我希望能够进行模糊搜索,在那里我可以搜索"史密斯"这个名字并带回约翰史密斯和爱德华史密斯.

python mysql

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

如何在SQLite中合并多个数据库文件?

我有多个数据库文件,它们存在于多个位置,结构完全相同.我理解attach函数可以用于将多个文件连接到一个数据库连接,但是,它将它们视为单独的数据库.我想做的事情如下:

SELECT uid, name FROM ALL_DATABASES.Users;
Run Code Online (Sandbox Code Playgroud)

也,

SELECT uid, name FROM DB1.Users UNION SELECT uid, name FROM DB2.Users ;
Run Code Online (Sandbox Code Playgroud)

不是一个有效的答案,因为我需要合并任意数量的数据库文件.最后,数据库文件必须保持独立.有谁知道怎么做到这一点?

编辑:一个答案给了我一个想法:是否可以创建一个视图,它是所有不同表的组合?是否可以查询所有数据库文件以及它们"挂载"的数据库,然后在视图查询中使用它来创建"主表"?

sql sqlite multiple-databases

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