我想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结尾,但事实并非如此.
我有一个看起来有点像这样的模型:
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 有一些支持?我尝试编写一个验证器,但不知道该怎么做。
我正在开发一个 Qt 应用程序,我试图找到一种方法来使用 QTextEdit 作为label没有滚动条的长文本。在我的 ui 中,我有一个QScrollArea,在它里面我想放置几个QTextEdit小部件,我只想在里面使用滚动QScrollArea。问题是,无论我如何尝试调整大小,QTextEdit它似乎都有最大高度和文本剪切,即使我手动设置大小并QTextEdit::size返回正确的值。
我做了同样的事情,QLabel它工作正常,但在这种情况下,我需要一些仅在QTextEdit.
我找到了这篇文章: 调整 QT 的 QTextEdit 以匹配文本高度:maximumViewportSize()
给出的答案如下:
我已经解决了这个问题。为了让它工作,我必须做两件事:
- 向上走小部件层次结构并确保所有大小策略都有意义,以确保如果任何子小部件想要变大/变小,那么父小部件将希望成为相同的东西。
- 这是修复的主要来源。事实证明,由于 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以完全适合其内容的方法吗?
是否可以在Windows上从cmd安装Python?如果是这样,怎么办?
我正在寻找一种方法来查找 QTabWidget 中某个选项卡的索引,因此我可以将当前索引设置为此索引。我删除了一些选项卡,因此我不想仅使用 int 来设置当前选项卡,因为将来这些删除的选项卡将再次可见,并且我不希望代码依赖于此。
所以理想情况下我希望能够写出这样的东西:
ui->tabWidget->setCurrentIndex(ui->tab->getIndex());
Run Code Online (Sandbox Code Playgroud)
有类似的方法getIndex()吗?
qt ×2
c ×1
c++ ×1
cmd ×1
django ×1
eol ×1
installation ×1
parsing ×1
python ×1
qscrollarea ×1
qtabwidget ×1
qtextedit ×1
resize ×1
scanf ×1
tabs ×1