小编mad*_*nka的帖子

如何sscanf确保缓冲区正是我想要的?

我想sscanf一行,并确保没有什么比我想要的更多了.代码如下所示:

void parse_init_command(char *buffer, command *new_command) {
    if (sscanf(buffer, 
        "%s %d %d %d %d %d %d %d\n",
        new_command->name,
        &new_command->data[0],
        &new_command->data[1],
        &new_command->data[2],
        &new_command->data[3],
        &new_command->data[4],
        &new_command->data[5],
        &new_command->data[6]) != 8) {
        strncpy(new_command->name, "WRONG_INPUT", 15);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我收到如下输入时:

INIT 9 11 3 1 1 1 9
Run Code Online (Sandbox Code Playgroud)

一切都很好,但接下来是这样的输入

INIT 9 11 3 1 1 1 9 s
Run Code Online (Sandbox Code Playgroud)

也被接受.我想如果我添加"\n",一切都会正常工作,因为我知道每个输入行都以EOL结尾,但事实并非如此.

c parsing scanf eol

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

Django 模型在添加之前验证 ManyToMany 字段

我有一个看起来有点像这样的模型:

class Passenger(models.Model):
    name = models.CharField(max_length=50)
    surname = models.CharField(max_length=50)


class Flight(models.Model):
    capacity = models.IntegerField()
    passengers = models.ManyToManyField(Passenger)
Run Code Online (Sandbox Code Playgroud)

在向航班添加新乘客之前,我想验证乘客数量是否不会超过容量。我想知道解决这个问题的最佳方法是什么。

显然我可以在添加新乘客之前手动检查乘客数量,但也许 django 有一些支持?我尝试编写一个验证器,但不知道该怎么做。

django django-models

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

如何调整 QTextEdit 以适应其内容

我正在开发一个 Qt 应用程序,我试图找到一种方法来使用 QTextEdit 作为label没有滚动条的长文本。在我的 ui 中,我有一个QScrollArea,在它里面我想放置几个QTextEdit小部件,我只想在里面使用滚动QScrollArea。问题是,无论我如何尝试调整大小,QTextEdit它似乎都有最大高度和文本剪切,即使我手动设置大小并QTextEdit::size返回正确的值。

我做了同样的事情,QLabel它工作正常,但在这种情况下,我需要一些仅在QTextEdit.

我找到了这篇文章: 调整 QT 的 QTextEdit 以匹配文本高度:maximumViewportSize()

给出的答案如下:

我已经解决了这个问题。为了让它工作,我必须做两件事:

  1. 向上走小部件层次结构并确保所有大小策略都有意义,以确保如果任何子小部件想要变大/变小,那么父小部件将希望成为相同的东西。
  2. 这是修复的主要来源。事实证明,由于 QTextEdit 位于 QScrollArea 中的主要小部件 QFrame 内,因此 QScrollArea 有一个约束,除非“widgetResizable”属性为真,否则它不会调整内部小部件的大小。文档在这里:http : //doc.qt.io/qt-4.8/qscrollarea.html#widgetResizable-prop. 在我尝试使用此设置并使其工作之前,文档对我来说并不清楚。从文档来看,这个属性似乎只处理主滚动区域想要调整小部件大小的时间(即从父滚动到子滚动)。这实际上意味着如果滚动区域中的主要小部件想要调整大小(即从子到父),则必须将此设置设置为 true。因此,故事的寓意是 QTextEdit 代码在覆盖 sizeHint 方面是正确的,但 QScrollArea 忽略了从主框架的 sizeHint 返回的值。

问题是我不知道如何访问QTextEdit's QScrollArea以启用widgetResizable. 任何人都可以解释我如何实现这一目标或建议一种不同的调整大小QTextEdit以完全适合其内容的方法吗?

c++ qt resize qtextedit qscrollarea

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

如何使用Windows命令提示符安装Python

是否可以在Windows上从cmd安装Python?如果是这样,怎么办?

python installation cmd python-install

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

在 QTabWidget 中查找选项卡的索引

我正在寻找一种方法来查找 QTabWidget 中某个选项卡的索引,因此我可以将当​​前索引设置为此索引。我删除了一些选项卡,因此我不想仅使用 int 来设置当前选项卡,因为将来这些删除的选项卡将再次可见,并且我不希望代码依赖于此。

所以理想情况下我希望能够写出这样的东西:

ui->tabWidget->setCurrentIndex(ui->tab->getIndex());
Run Code Online (Sandbox Code Playgroud)

有类似的方法getIndex()吗?

qt tabs qtabwidget

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