小编kha*_*vah的帖子

django中的复合主键

我有一个遗留的db表,它有复合主键.我不认为我能够更改结构以包含代理键,因为有一些代码使用该表编写.在django中,我不能使用该表,因为它没有主键(非复合).

django模型是否支持复合主键?如果没有,是否有任何解决方法而不改变表的结构?

PS我正在使用postgresql.

python django postgresql

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

列自动调整大小为QTableView的大小

我是QT的新手,我刚刚设法让QTableView与我的模型一起工作.它固定了3列.当我打开一个窗口时,它看起来不错但是当我调整窗口大小时,QTableView本身会调整大小,但列的宽度保持不变.是否有任何内置方式使其工作?我希望每个窗口调整大小时调整列的大小以适应QTableView的边缘.

c++ qt qtableview

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

使用C-string:"返回与本地变量关联的堆栈内存的地址"

我不是C程序员,所以我不熟悉C-string但新的我必须使用C库,所以这里是我的代码的缩短版本来演示我的问题:

char** ReadLineImpl::my_completion () {

    char* matches[1];


    matches[0] = "add";

    return matches;

}
Run Code Online (Sandbox Code Playgroud)

我收到警告:

警告 - 与返回的本地变量"matches"关联的堆栈内存的地址

我的应用程序似乎没有正常工作(可能是因为这个警告).

什么是警告,是否会引起任何问题?

c++ pointers c-strings

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

gdb'x'命令有什么作用?

我正在读一关于黑客攻击的,它有一章关于装配.

以下是我用C编写的小程序.

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int i;

    for (i = 0; i < 10; i++) {
        puts("Hello World!");
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

以下是gdb测试:

(gdb) break main
Breakpoint 1 at 0x40050f: file main.c, line 7.
(gdb) run
Breakpoint 1, main (argc=1, argv=0x7fffffffe708) at main.c:7
7       for (i = 0; i < 10; i++) {
(gdb) disassemble main
Dump of assembler code for function main:
   0x0000000000400500 <+0>: push   rbp
   0x0000000000400501 …
Run Code Online (Sandbox Code Playgroud)

c assembly gdb

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

如何使用QML模型?

我有一个用qml和c ++编写的GUI.有2个组合框(qt control 5.1).只要第一个组合的值发生变化,第二个组合框就必须在运行时更新.

maincontext->setContextProperty("typemodel", QVariant::fromValue(m_typemodel));

maincontext->setContextProperty("unitmodel", QVariant::fromValue(m_unitmodel));
Run Code Online (Sandbox Code Playgroud)

这是我从c ++给qml的两个模型.

ComboBox {
    id: typebox

    anchors.left: text1.right
    anchors.leftMargin: 5
    signal changed(string newtext)

    width: 70
    height: 23
    anchors.top: parent.top
    anchors.topMargin: 37
    model: typemodel

    onCurrentTextChanged: {

        mainwin.unitGenerator(typebox.currentText);

    }
Run Code Online (Sandbox Code Playgroud)

这是第一个组合框.如您所见,每次更改第一个组合框的值时,第二个组合框的c ++模型都会更新(mainwin.unitGenerator(typebox.currentText)).但它似乎没有更新组合框的模型.

如何在运行时更新qml的模型?

c++ qt combobox qml

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

隐藏c ++库的私有成员

我写了一个库(无论它做什么),它显然有它的头文件.现在,我想隐藏该头文件的私有元素,所以如果我向某人提供我的库,他/她应该只看到公共成员(最好没有类定义,除了函数定义之外).一种方法是创建C风格的头文件,它将包含某种"init"方法,该方法将用于创建实际类库的实例,并且用户必须将该对象的指针传递给每个函数做好这份工作.

这是一个好习惯吗?

有没有其他公开接受的方式做这样的事情?

提前致谢.

c++ shared-libraries static-libraries

9
推荐指数
3
解决办法
8745
查看次数

Qt:使用c ++和xml与qml的UI

我今天开始学习qt并有一个问题.当我创建一个项目时,它带有*.ui文件,它是XML类型的文件,但在书中,我只使用纯c ++(类)创建UI.我听说有另一种用qml创建UI的方法.

那么,每个UI创建方式的优缺点是什么?

提前致谢

编辑:我正在使用QT 5.1.0

c++ xml qt qml qt5.1

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

使用C++自动完成(不使用Shell)

我试图在我的命令行应用程序中添加自动完成功能.到目前为止,所有答案都说它是shell的优先级,但在我的情况下它是不同的.我的程序进入循环(获取命令)main(),所以我认为它与shell无关.我怎样才能实现这样的目标?

以下是我的计划.当用户点击enter(std::getline())时,它开始解析.如何在不使用任何外部库的情况下在运行时获取用户输入?

while (input != "exit") {

  std::cout << "\nCommand >> ";
  std::getline(std::cin, input);

  com.parse(input);
}
Run Code Online (Sandbox Code Playgroud)

c++ autocomplete

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

检查类是否派生自特定类(编译,运行时两个答案都可用)

这样一个例子更容易解释,

class base {
//....
}

class derived1 : public base {
//...
}
Run Code Online (Sandbox Code Playgroud)

在我的库中,有一个基类指针.库的用户必须创建从base或derived1派生的类,并分配指向该类的指针.

如何检查从哪个类派生的用户定义类?

c++ encapsulation class c++11

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

使用qt quick 2应用程序的qml和c ++

我有一个主窗口的qml GUI.我刚创建了一个qt quick2应用程序,并将主窗口的qml GUI复制并粘贴到main.qml.当我运行应用程序时,它显示空白窗口,以下是我的qml日志:

    QML debugging is enabled. Only use this in a safe environment.
Both point size and pixel size set. Using pixel size. 
Both point size and pixel size set. Using pixel size. 
Both point size and pixel size set. Using pixel size. 
file:///home/khajvah/build-convQML-Desktop_Qt_5_1_0_GCC_64bit-Debug/qml/convQML/main.qml:99:9: QML Text: Cannot anchor to an item that isn't a parent or sibling.
file:///home/khajvah/build-convQML-Desktop_Qt_5_1_0_GCC_64bit-Debug/qml/convQML/main.qml:31:9: QML BasicButton: Cannot anchor to an item that isn't a parent or sibling.
file:///home/khajvah/Qt5.1.0/5.1.0/gcc_64/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qml:73:9: QML Image: Cannot open: file:///home/khajvah/build-convQML-Desktop_Qt_5_1_0_GCC_64bit-Debug/logout-512.png
file:///home/khajvah/Qt5.1.0/5.1.0/gcc_64/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qml:73:9: …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml

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