我经常QListWidget有几个信号和插槽连接.一切都按照我的预期运作.我可以更新,检索,清除等
但UI不支持多种选择.
如何"启用"多项选择QListWidget?我对PyQt的有限经验告诉我,我需要QListWidget通过子类创建一个自定义..但接下来呢?
Google给了我C++答案,但我正在寻找Python
http://www.qtforum.org/article/26320/qlistwidget-multiple-selection.html
http://www.qtcentre.org/threads/11721-QListWidget-multi-selection
我将在大学学习Ruby,Haskell和Prolog.现在,我想知道什么应该得到我的大部分注意力.我有半年的时间来做这三个,这意味着我需要决定一种语言来获得我的课外时间.其他我将学到的就是在课程中做得非常好.
我对Haskell和Prolog很熟悉,知道学习它们会教会我一些非常重要的计算机科学概念.我不太确定红宝石.
通过一些教程和介绍,我得到的印象是红宝石有很多浅薄的魔力.现在我问红宝石人:在我花了半年的时间学习它之后,我决定再也不用它了,我会得到什么,Python还没教过我.
这个问题并非旨在为红宝石"提出理由",尽管我意识到这是一个很有争议的潜在话题.
我现在使用Python进行所有CS工作.我也用它做了很多函数式编程.我也已经非常熟悉面向对象编程(在Java,Python和C#中).正如我所说,我会用Prolog做一些逻辑编程.
然后留给Ruby教我什么?
进一步淡化问题:
我对编写有趣的程序或酷的Web应用程序不感兴趣.我只对计算机科学课感兴趣.实现算法,数据结构等.(虽然玩得开心肯定不会受伤)
理想情况下,所讨论的概念需要在大约1.000小时内可以学习.
我对Rails一点也不感兴趣.在这种情况下,任何隐藏复杂性的技术都是有害的.
我无法帮助这个问题具有争议性.但是这个问题的理想答案将提到一个非常重要的理论计算机科学概念,红宝石帮助程序员使用和理解,以获得科学的辅助知识.
我想到的候选人是元编程和多线程.我不知道红宝石是否特别适合学习其中任何一种.
我有一个Eclipse插件(A),它依赖于另一个插件(B).插件B只是一个jar包装器,它包含一个本机dll,并执行jni功能.鉴于此设置,我在A的Activator类的start方法中有以下代码:
MessageConsole jniConsole = new MessageConsole("Opereffa Output", null);
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { jniConsole });
ConsolePlugin.getDefault().getConsoleManager().showConsoleView(jniConsole);
MessageConsoleStream stream = jniConsole.newMessageStream();
System.setOut(new PrintStream(stream));
System.setErr(new PrintStream(stream));
Run Code Online (Sandbox Code Playgroud)
当插件A执行其功能时,System.out的任何使用实际上都会进入Eclipse中的控制台.但是JNI使用的本机代码也会写入输出流,这是我无法抓取的.在开发期间,JNI的输出转到Eclipse实例的控制台,该实例已启动包含插件的运行实例.
那么如何获取JNI输出并在控制台中显示?
我需要嘲笑以下内容:
Class User
def facebook
#returns an instance of a facebook gem
end
end
Run Code Online (Sandbox Code Playgroud)
因此,在我的用户测试中,要访问用户的Facebook信息,我需要调用它user.facebook.me.info来检索其信息.如果我想嘲笑这个,我目前正在使用以下内容:
@user = Factory(:user)
facebook = mock()
me = mock()
me.expects(:info).returns({"name" => "John Doe"})
facebook.expects(:me).returns(me)
@user.expects(:facebook).returns(facebook)
assert_equal "John Doe", @user.facebook.me.info["name"]
Run Code Online (Sandbox Code Playgroud)
这有效,但似乎有点笨拙,有没有更好的方法来做到这一点?
[编辑]我正在使用mocha作为模拟框架
我正在开发一个使用NHibernate的项目.我的问题是当我尝试添加包含对象列表的对象时,我收到以下异常:
非法尝试将集合与Session.Save方法中的两个打开会话相关联
我不知道是什么问题或如何解决它,如果任何人可以帮助我,我将不胜感激.
所以我已经阅读了一些有关多线程和NSOperation的内容,并想知道如何使用它来改进我的应用程序.使用乐器我已经隔离了一些我的应用程序绝对可以使用速度改进的地方.我的问题是,这些类型的东西是否适合使用NSOperation的另一个线程?
绘制视图:我有一个相当复杂的视图,需要一点时间来绘制.当它被绘制时,我经历了一些滞后.
分配和播放音频:我正在AVAudioPlayer播放一些背景音乐.当我分配它时,又一些滞后.
计算:我也在进行一些计算并与大量整数进行一些比较.
我力求为我的应用程序提供最佳性能,那么你会做什么?
我看不出为什么我们不能做Heroku为ASP.NET网站做同样的事情的原因.
有人反对吗?
当我进入.NET源代码(在调试选项中启用了.NET源步进并且禁用了我的代码)时,出于某种原因,在VS2010的Autos和Watch窗口中,我无法在.NET框架函数中查看参数.手表或汽车窗格.但是我可以看到局部变量.为什么是这样?
更新:这是一个没有优化的调试64位(x64)版本.没有错误,我只是不能在以下函数中"观察"参数:
// Enumerable.cs
public class Lookup<TKey, TElement> : IEnumerable<IGrouping<TKey, TElement>>, ILookup<TKey, TElement>{
...
internal static Lookup<TKey, TElement> Create<TSource>(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer) {
Run Code Online (Sandbox Code Playgroud)
更新2:默认情况下,似乎只安装了.NET 4.0框架的发布版本.你仍然可以进入它,但你可能看不到一些函数参数和局部变量(并在某些行上设置断点).我想我真的想要使用.NET 4.0框架的Debug构建,这样我就可以看到所有的params,locals并在所有行上放置断点.如果我已经安装了VS2010 Premium,我该如何安装呢?
我写了一个类来包含我的对象.代码是:
class objectPool
{
private:
struct itemType_{uint count; void* object;};
std::multimap< std::string, itemType_ > pool_;
public:
template<class T>
bool addItem(std::string key, T*& object)
{
std::multimap< std::string, itemType_ >::iterator
i = pool_.find(key);
if(i != pool_.end())
{
object = (T*)(*i).second.object;
(*i).second.count++;
return true;
}
i = pool_.insert(std::pair<std::string,itemType_>(key, (itemType_){1, NULL}));
object = (T*)(*i).second.object;
return false;
}
template<class T>
bool removeItem(std::string key)
{
std::multimap< std::string, itemType_ >::iterator
i = pool_.find(key);
if(i != pool_.end())
{
if((*i).second.count == 1)
{
//important to call the appropriate destructor …Run Code Online (Sandbox Code Playgroud) 我有一个对象,我想动态地进行交互.我想重命名game1_team1:
$default_value = $individual_match->field_match_game1_team1[0]['value'];
Run Code Online (Sandbox Code Playgroud)
是game1_team2,game2_team1,game2_team2,game3_team1等.基于他们所处的循环.
我试过了:
$dynamic = 'field_match_game'.$i.'_team'.$j;
$default_value = $individual_match->$dynamic[0]['value'];
Run Code Online (Sandbox Code Playgroud)
但它回来了
致命错误:不能将字符串偏移用作数组
更新:根据Saul的回答,我将代码修改为:
$default_value = $individual_match->{'field_match_game'.$i.'_team'.$j}[0]['value'];
Run Code Online (Sandbox Code Playgroud)
摆脱了致命错误,但没有返回值.
ruby ×2
asp.net ×1
c# ×1
c#-4.0 ×1
c++ ×1
console ×1
eclipse ×1
heroku ×1
ios ×1
iphone ×1
mocha.js ×1
nhibernate ×1
nsoperation ×1
objective-c ×1
oop ×1
paas ×1
performance ×1
php ×1
plugins ×1
pyqt ×1
python ×1
qlistwidget ×1
redirect ×1