小编gor*_*orn的帖子

为什么Qt会滥用模型/视图术语?

我认为Qt中使用的模型/视图控件的术语是有缺陷的.在他们的解释页面上,他们说,他们通过合并View和Controller将MVC简化为MV,他们给出了以下图片:

解释Qt MVC的图片

不过我认为,他们错误地命名了对象的角色,我认为,

  1. 他们所谓的View with merged Controller实际上只是一个View.
  2. 他们所谓的模型实际上只是控制器.
  3. 如果你真的想拥有一个模型,那么它就是"数据"所在的地方.

我说的是你在应用程序中使用Qt模型/视图组件的通常和理智的方式.原因如下:

  1. 这通常是Qt组件,它按原样使用,不添加任何特定于您的对象的Controller逻辑)
  2. 这不是一个模型,只是因为你应该实现几个Qt方法,如rowCount,columnCount,data等,这与你的模型无关.事实上,控制器中有典型的模型方法.当然,你可以在这里实现控制器模型逻辑,但首先它将是非常糟糕的代码设计,其次你将控制器和模型合并而不是控制器和视图.
  3. 如上所述2.如果你想分离模型逻辑,它肯定不是图片上的蓝色框,而是虚线"数据"框(当然是与真实数据通信).

Qt在他们的术语中是错误的,还是只是我不懂的?(顺便说一句:这不是学术问题的原因是我已经开始按照命名开始对我的项目进行编码,我很快就发现,代码显然不对.只有在我意识到之后,我应该不要尝试将模型逻辑放在他们称之为Model的模型中)

model-view-controller qt

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

如何在rails中为url helpers设置默认主机?

我想做这样的事情

config.default_host = 'www.subdomain.example.com'
Run Code Online (Sandbox Code Playgroud)

在我的一些配置文件中,object_urlhelpers(ActionView::Helpers::UrlHelper)生成以http://www.subdomain.example.com开头的链接

我试图搜索文档,但除了ActionMailer文档和http://api.rubyonrails.org/classes/Rails/Configuration.html之外我没有找到任何对我没用的东西,因为我不知道在哪个方面看起来.有没有描述Rails :: Initializer.config整个结构的地方?

url configuration ruby-on-rails

61
推荐指数
3
解决办法
6万
查看次数

git commit停止工作 - 构建树时出错

我不能做出改变:

$ git commit
error: invalid object 100644 13da9eeff5a9150cf2135aaed4d2e337f97b8114 for 'spec/routing/splits_routing_spec.rb'
error: Error building trees
Run Code Online (Sandbox Code Playgroud)

我到目前为止尝试过:

$ git fsck | grep 13da
missing blob 13da9eeff5a9150cf2135aaed4d2e337f97b8114
Run Code Online (Sandbox Code Playgroud)

并且:

$ git prune
error: Could not read 1394dce6fd1ad15a70b2f2623509082007dc5b6c
fatal: bad tree object 1394dce6fd1ad15a70b2f2623509082007dc5b6c
Run Code Online (Sandbox Code Playgroud)

并且:

$ git fsck | grep 13da
missing blob 13da9eeff5a9150cf2135aaed4d2e337f97b8114
Run Code Online (Sandbox Code Playgroud)

但没有任何帮助.我应该删除文件,提交并重新引入吗?如果它带回git提交,我愿意失去一点历史.

git

61
推荐指数
7
解决办法
3万
查看次数

没有任何类的元素是否有CSS选择器?

没有任何类的元素是否有CSS选择器?例如在HTML中

<section>Section A</section>
<section class="special">Section B</section>
<section class="">Section C</section>
Run Code Online (Sandbox Code Playgroud)

我想通过说出类似的东西来选择A部分(或者可能是A部分和C部分,这并不重要)

section:not(.*) { color: gray } 
Run Code Online (Sandbox Code Playgroud)

我知道我可以将它定义为section并将其重置回所有特定类中,例如

section { color: gray } 
section.special { color: black } 
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的,因为一旦样式变得复杂就不易管理,在某些情况下很难正确地进行"重置"(当然不是在这个简化的例子中).

css css-selectors

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

Regexp找到两个字符串的最长公共前缀

是否有正则表达式可以找到两个字符串中最长的公共前缀?如果一个正则表达式无法解决这个问题,那么使用regexp(perl,ruby,python,any)的最优雅的代码或oneliner是什么.

PS:我可以通过编程轻松地做到这一点,我要求好奇心,因为在我看来这可以通过regexp解决.

PPS:使用正则表达式的O(n)解决方案的额外奖励.来吧,它应该存在!

ruby python regex perl replace

27
推荐指数
5
解决办法
9410
查看次数

如何在Qt Designer中插入QTabBar?

这可能是一个非常愚蠢的问题,但我在Qt Designer中找不到QTabBar."容器"组中有QTabWidged,但它不一样 - 我不需要不同的页面,我只需要标签栏.

(我在debian上使用KDE4下的Qt Designer 4.7.2版本.)

qt qt4 qt-designer

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

如何在仪表上显示<meter>标签中的文字

鉴于html

<meter value="0.55" high="0.999" optimum="1">
  <span class="meter-value">0.5491</span>
</meter>
Run Code Online (Sandbox Code Playgroud)

我希望文本0.5491在上面meter.我尝试使用常用的CSS技术设置文本样式,但它根本不会显示.在检查员中,无论我说多少,都说宽度和高度都是0

.meter-value {
  display: block; width: 50px; height: 20px;
}
Run Code Online (Sandbox Code Playgroud)

我做了更多尝试,这些例子都是简化的.我使用Firefox进行测试,兼容性并不紧迫(内部项目).

我更喜欢"丑陋的hss"解决方案之上的"丑陋的CSS"解决方案.

更新:(总结一些评论)

在Firefox中,似乎有一些魔法使得来自米的内容不可见(包括来自meter :: after,meter span :: after和simillar组件的内容).所以问题是是否有一个可以覆盖它的CSS.设置宽度,高度和能见度没有帮助.

html css firefox

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

午夜指挥官不尊重umask

当我在午夜指挥官中创建新文件并保存它(Shift + F4,写点东西,F2,命名文件)时,即使我的umask设置为0007,它也会创建640个,因此应该使用权限660创建它.有没有秘密的地方设置mc umask?我没找到一个.

configuration umask mc

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

使用git时如何查找所有空文件夹和未跟踪的文件?

基于这篇文章这篇文章
git ls-files --others --exclude-standard可以列出所有未跟踪的文件
但我对其进行了测试,无法列出空文件夹(已跟踪和未跟踪)。

例如,不能列出archiver folder如下空文件夹:

.
??? admin.php
??? api
?   ??? index.htm
?   ??? remote
?       ??? mod
?           ??? index.htm
?           ??? mod_cron.php
?           ??? mod_index.php
??? archiver folder
Run Code Online (Sandbox Code Playgroud)

那么我的问题是:如何列出所有未跟踪的文件和空文件夹

git bash

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

哈希值与`<<`运算符之间的交互

我期望:

h = Hash.new([])
h['a'] << 'b'
h['a'] << 'c'
h # => {}
Run Code Online (Sandbox Code Playgroud)

{'a' => ['b','c']}.我还发现插入操作的目标是默认值:

h.default # => ['b','c']
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个解释为什么它不起作用,以及如何以最佳方式做到这一点,所以它的工作原理.

ruby hash

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

Ubuntu 如何创建执行命令的快捷方式

当我工作时,我经常这样做:

cd ~/dev/lab/prod/
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,但我希望能够运行:

prod
Run Code Online (Sandbox Code Playgroud)

具有相同的效果(更改为 ~/dev/lab/prod 文件夹)。

shell ubuntu command-line

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

工作区根目录下的 Cargo.toml 文件中应该包含哪些内容,以便 Visual Studio Code 支持所有功能?

Visual Studio Code 说:

Cargo.toml 文件必须位于工作区的根目录以支持所有功能

但是我没有在位于工作区根目录的Cargo.toml 文件中找到什么。所有项目子目录都通用吗?

我已经阅读了你好,货物一章!的文档,但它只讨论了项目目录中的 Cargo.toml 文件。

通过试验,我发现只有一行的文件[workspace]会使 VS Code 注释消失,但是现在每次我设置一个新项目时,它都会让我烦恼这个项目在此的成员数组中没有提到的事实“工作区” Cargo.toml

Visual Studio Code 目录结构如下

workspace
  |
  ---> project1
  |
  ---> project2
Run Code Online (Sandbox Code Playgroud)

cargo new project3新建项目3目录中生成Cargo.toml,但Visual Studio代码预计该工作区目录本身内的另一Cargo.toml。

rust visual-studio-code

-2
推荐指数
1
解决办法
3232
查看次数