问题列表 - 第36028页

gui应用的面向对象设计问题

伙计们,我正在编写一个应用程序的GUI,一个插入cd的cd容器,目前我不是很清楚,我想我需要一些帮助来澄清我对面向对象设计的理解.

所以,首先,我使用观察者模式来构建抽象的Model和View类,以及具体模型(cd容器)和具体视图(cd容器视图).然后我开始使用wxwidget框架设计和图形外观或布局(CDContainerWidget,来自wxPanel)为cd容器和其他gui控件MainFrame(来自wxFrame)等.

所以现在我有三个类:CDContainerModel(cd容器),CDContainerView(观察者模式的类)和CDContainerWidget(gui控件).然后我不清楚我应该怎么做CDContainerViewCDContainerWidget

我认为CDContainerWidget和CDContainerView都需要CDContainerModel.我想了四种方法,但不知道哪一种是合适的:

1).将CDContainerWidget作为成员变量关联到CDContainerView中,然后将CDContainerView作为成员变量放入主框架中.

class CDContainerView:
  def __init__:
     self.gui=CDContainerWidget

class MainFrame:
  def __init__:
     CDContainerView
Run Code Online (Sandbox Code Playgroud)

2).CDContainerView子类CDContainerWidget:

class CDContainerView(CDContainerWidget):

class MainFrame:

   def __init__:

     CDContainerView
Run Code Online (Sandbox Code Playgroud)

3).CDContainerWidget子类CDContainerView:

class CDContainerWidget(CDContainerView):

class MainFrame:
  def __init__:
     CDContainerWidget
Run Code Online (Sandbox Code Playgroud)

4).而不是使用CDContainerWidget和CDContainerView,只使用单个类CDContainerBig,它是抽象类View和wxPanel的子类

class CDContainerBig(View, wxPanel)
Run Code Online (Sandbox Code Playgroud)

我的问题是什么是正确的解决方案?我已经阅读了MVC模式的维基页面,但我并不真正理解它的描述,也不知道如何并且也不知道将它应用于我的问题是否合适.

好吧,我补充一些评论.最初,当我开始设计编程时,我没有多想,只是选择,2)方法.但现在,我认为3)是好的.因为将widget放在widget中是合理的(CDContainerWidget放入MainFrame).但我不太确定.此外,它似乎与观察者模式,三个类扭曲和awkard.有时,在我看来,这4个可能是相同的,只包括谁或谁向谁发送信息.好吧,我想我真的需要澄清这一点.

另外,我赞成3)因为实用点.CDContainerWidget实际上包含几个子窗口小部件组件(按钮,输入框等),如果我们通过子组件小部件改变设置新值,那么对于1),我们需要CDContainerWidget来了解CDContainerView,让CDContainerView通知其他视图.2)更糟糕的是,CDContainerWidget必须知道它的儿童CDContainerView.3)CDContainerWidget本身就是CDContainerView,所以非常合理.4)好,容易,但没有逻辑分离.这是我自己的想法,不知道是不是正确的.

谢谢!!

python oop user-interface wxwidgets design-patterns

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

将UIImage转换为CVPixelBufferRef

我想将UIImage对象转换为CVPixelBufferRef对象,但我绝对不知道.而我找不到任何示例代码做这样的事情.

有人可以帮帮我吗?THX提前!

C YA

iphone objective-c uiimage

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

TextMate - 查找和替换所选文本

在TextMate中,有谁知道如何查找和替换所选文本?

macos textmate keyboard-shortcuts

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

如何在https上使用Google自定义搜索以避免非安全内容提示?

有没有办法从HTTPS站点获取搜索结果的脚本而不是 http://www.google.com/afsonline/show_afs_search.js

我在HTTPS网站上使用自定义Google商家搜索.提交搜索时,Web浏览器会显示警告:

"This page contains both secure and nonsecure items"
Run Code Online (Sandbox Code Playgroud)

我试图修改源,https://www.google.com/afsonline/show_afs_search.js但这不起作用.从该链接返回的JavaScript仍然连接到http链接而不是https链接.

有谁知道如何解决这个问题?

https google-custom-search

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

记录跨越graphviz中的多行

我试图想象点语言中一个相当复杂的结构.因为记录很大,我想用多行来编写代码.所以代替:

A11[label="A.11 Access Control|{A.11.1 Business requirements for access control|A.11.2 User access management}|{A.11.3 User responsibilities|A.11.4 Network access control}|{A.11.5 Operating System access control|A.11.6 Application & information access control}|A.11.7 Mobile computing & teleworking"];
Run Code Online (Sandbox Code Playgroud)

我想进入它有点像这样

A11[label="A.11 Access Control|
           {A.11.1 Business requirements for access control|A.11.2 User access management}|
           {A.11.3 User responsibilities|A.11.4 Network access control}|
           {A.11.5 Operating System access control|A.11.6 Application & information access control}|
           A.11.7 Mobile computing & teleworking"];
Run Code Online (Sandbox Code Playgroud)

不幸的是,dot的解析器抱怨"字符串运行过去的行结束"或类似的东西.有谁知道如何在代码中表示换行符?我尝试了\最后一行,但它似乎没有用.

提前致谢

visualization dot graphviz

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

UIImageView和drawInRect有什么区别?

我想在表格单元格中显示这么多图像.我知道两种显示图像的方法.

一个是为UIImageView创建一个实例并显示它

CGRect rect=CGRectMake(x,y,width,height);
UIImageView *image=[[UIImageView alloc]initWithFrame:rect];
[image setImage:[UIImage imageNamed:@"sample.jpg"]];
Run Code Online (Sandbox Code Playgroud)

另一种方法是,

CGRect rect=CGRectMake(x,y,width,height);
[[UIImage imageNamed:@"sample.jpg"] drawInRect:rect];
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,这两者有什么区别?哪一个有效?还是有其他功能比这更好?

提前致谢....

iphone uiimageview uiimage drawrect

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

用于网站登台的Git Post-Receive Hook

我正在尝试设置Git来暂存我的网站,以便我可以git pull让当前版本在本地工作,然后git push将更改推送到远程服务器.我已经设置它以便按照我想要的方式工作,但是在我推动之后,我必须手动运行git checkout -fgit reset --hard HEAD在远程服务器上运行.

我已经尝试将这些作为服务器上的post-receive挂钩添加到shell脚本中,但它似乎没有任何效果.我知道脚本正在运行,因为我在推送后看到"更改推送到服务器".这是post-receive钩子:

#!/bin/sh
git reset --hard HEAD
echo "Changes pushed to server."
Run Code Online (Sandbox Code Playgroud)

git git-post-receive

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

如何切出部分NSString?

@"/News/some news text/" 
@"/News/some other news text/" 
@"/About/Some about text/" 
@"/Abcdefg/Some abcdefg text/some more abcdefg text"
Run Code Online (Sandbox Code Playgroud)

如何剪切字符串的第一部分,以便最终得到以下字符串?

@"/News/"
@"/News/"
@"/About/"
@"/Abcdefg/"
Run Code Online (Sandbox Code Playgroud)

iphone cocoa objective-c nsstring

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

在每个单词周围添加引号

我想用Java进行转换:

dd fdas dd fdas fads f das fdasf + - || dasf
into:
"dd""fdas""dd""fdas""fads""f""das""fdasf"+ - || "dasf"

基本上我想在单词周围添加引号.\ w* - >"\ w*\"

java regex

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

可以通过查找图的最小生成树来解决TSP问题

我们可以通过查找有节点是要访问的城市的有向图的最小生成树来解决旅行商问题,权重是城市之间的距离吗?定向图只是为了考虑距离(城市-A,城市-B)!=距离(城市-B,城市-A)的情景.

algorithm

11
推荐指数
2
解决办法
9837
查看次数