问题列表 - 第37816页

QTreeview mousePressEvent实现可防止选择项目

大家好,我有从Qtreeview继承的类,我实现了简单(空)mousePressEvent函数
但是每当我尝试这样做时,Qtreeview中的项目选择都被禁用,当我删除这个函数时一切正常工作
我在这里缺少什么?
这是代码:

void MyTreeWidget::mousePressEvent(QMouseEvent *event)
    {   
        QModelIndex index =  this->indexAt(event->pos());
        QAbstractItemModel *model = this->model();
        QMap<int, QVariant> ItemData = model->itemData(index);
        QMap<int, QVariant>::const_iterator i = ItemData.constBegin();
        while (i != ItemData.constEnd()) {
            QString k = QString::number(i.key());
            QString v = i.value().toString();

         ++i;
        }
        if (event->button() == Qt::LeftButton) {
             QByteArray itemData ;
             QString urlTo;
             itemData.append(urlTo);
             QDrag *drag = new QDrag(this);
             QMimeData *mimeData = new QMimeData;
             mimeData->setData("application/x-dnditemdata", itemData);
             drag->setMimeData(mimeData);

             Qt::DropAction dropAction = drag->exec(Qt::MoveAction);
             if (dropAction == Qt::MoveAction)
             {
                UT::getInstance()->LogToFile("dropAction");
             }


        }
        QTreeView::mousePressEvent(event);
    }
Run Code Online (Sandbox Code Playgroud)

qt qtreeview

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

Java方法调用解析器?

我需要解析某些方法调用调用,包括一些Java类的整个签名,例如

public class MyClass {
    public void myMthod() {
        // ... some code here
        result = someInstance.someOtherMethod(param1, param2);
        // ... some other code here
    }
}
Run Code Online (Sandbox Code Playgroud)

结果我想得到类似的东西:

serviceName = someInstance
methodName = someOtherMethod
arguments = {
   argument = java.lang.String,
   argument = boolean
}
result = java.lang.Long
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最快方法是什么?我在考虑使用RegEx解析器.问题在于存在几种出现模式,例如

a)
result = someInstance.someOtherMethod(getSomething(), param);

b)
result = 
    getSomeInstance().someOtherMethod(param);

c)
result = getSomeInstance()
            .someOtherMethod(
                    getSomethingElse(), null, param);
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!谢谢!

java parsing

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

如何将Ruby模块包含在内并不是"多重继承",Ruby样式如何避免与多重继承相关的问题?

据称Matz说"mixins几乎可以完成多重继承所做的一切,没有相关的缺点"(Matz的话)."

首先,为什么Ruby模块包含不是'多重继承'?在我看来,模块和类之间几乎没有什么区别.当它用作超类时,无法实例化模块这一事实无关紧要.

我也知道,连续的模块包含形成了从类向上扩展的单个继承链(不是树).但是,对我来说,这不足以将它与"多重继承"区分开来,因为Python多重继承系统也"线性化"超类链(使用C3算法),只是Ruby'线性化'过程非常简单.

那么,对于像Python这样的语言,Ruby模块混合与多重继承的确切区别是什么呢?为什么Python采用c3 MRO算法背后的论据不适用于Ruby?如果他们确实适用 - 为什么Ruby决定不采用这种算法?

谢谢

ruby multiple-inheritance mixins

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

如何在Python中访问命令行参数?

我使用python来创建我的项目设置设置,但我需要帮助获取命令行参数.

我在终端试了这个:

$python myfile.py var1 var2 var3
Run Code Online (Sandbox Code Playgroud)

在我的Python文件中,我想使用所有输入的变量.

python command-line

328
推荐指数
9
解决办法
29万
查看次数

VB.NET:Lambda表达式,使用赋值运算符而不是相等

我有一个方法,需要一个System.Action,这是我正在尝试提供它:

Function() Me._existingImports = Me.GetImportedAds()
Run Code Online (Sandbox Code Playgroud)

事情是,它抱怨=符号,因为它认为我正在尝试进行比较,我不是.我想为Me.GetImportedAds()分配Me._existingImports,但VB.NET抱怨DataTable没有=运算符.

如何强制它使用赋值运算符而不是相等运算符?

在C#中,这非常好用:

() => this.existingImports = this.GetImportedAds()
Run Code Online (Sandbox Code Playgroud)

目前解决方案是使用独立的方法,但这需要的代码多于所需的代码.

vb.net

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

我在PHP,Ruby,Python,.NET等上构建我的alpha平台是什么?

我正在facebook/foursquare-ish空间开发一个社交网站.关于我应该开发什么平台,我得到了各种各样的反馈.当然,它会受到我雇用的人的影响很大,但我希望能从更大的社区获得一些额外的反馈.谢谢.

.net php python ruby-on-rails

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

彼得森的算法是否满足饥饿?

我一直在搜索关于彼得森算法的信息,但是已经遇到过参考文献,说明它不满足饥饿但只是死锁.这是真的?若有,有人可以详细说明为什么不呢?

彼得森的算法:

flag[0]   = 0;
flag[1]   = 0;
turn;

P0: flag[0] = 1;                                       
    turn = 1;                                               
    while (flag[1] == 1 && turn == 1)                        
    {                                                       
           // busy wait                                             
    }                                                                                      
    // critical section                                     
       ...                                                     
    // end of critical section                              
    flag[0] = 0;   

P1: flag[1] = 1;                                       
    turn = 0;                                               
    while (flag[0] == 1 && turn == 0)                        
    {                                                       
           // busy wait                                             
    }                                                                                      
    // critical section                                     
       ...                                                     
    // end of critical section                              
    flag[1] = 0;
Run Code Online (Sandbox Code Playgroud)

该算法使用两个变量,flag和turn.标志值为1表示进程想要进入临界区.变量turn保存转过程的ID.如果P1不想进入其临界区,或者如果P1通过将转到0设置为P0优先级,则允许进程P0进入临界区.

algorithm deadlock solution

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

我应该使用什么格式器模式来相应地从数字'123'和'1'获取'00123','00001'字符串?

我需要以一种它们应该以零开头的方式格式化数字以包含5位数.

我不知道如何为java格式化程序创建模式.

我试过%4d但它没有添加零.

java string string-formatting formatter

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

播放框架weblogic 10.3.3.0部署

我构建了一个Play应用程序,并尝试使用以下命令在weblogic上进行部署:

play war -o myApp myApp
Run Code Online (Sandbox Code Playgroud)

后来我刚刚将爆炸的war目录部署到weblogic,一切正常,但每次我尝试访问一条路线.我收到以下错误:

Not found

GET /myApp/params
Run Code Online (Sandbox Code Playgroud)

这是一个休息服务而不是具有UI的应用程序.我尝试在tomcat上部署,一切正常,但我必须使应用程序上下文为/.我尝试使用weblogic做同样的事情,但它没有用.

这是我的路线文件:

GET     /                                        Application.index

GET  /sectorinformer/{telephone}  Application.show

GET     /sectorinformer/public/                     staticDir:public

*       /{controller}/{action}                  {controller}.{action}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器代码:

package controllers;

import models.InstalAddress;
import models.SectorInfo;
import play.Logger;
import play.mvc.Controller;

public class Application extends Controller {

    public static void index() {
       render();
}

public static void show(String telephone) {
    Logger.debug("Starting request");
    Logger.debug("domain: '%s'", request.domain);
    String instalAddressId = InstalAddress.getInstalAddressId(telephone);
    SectorInfo si = new SectorInfo();
    si.initializeSectorInfo(instalAddressId);
    renderXml(si.generateXmlResponse());
}

}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

deployment weblogic-10.x playframework

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

C#中的堆栈溢出错误 - 但如何解决?

我遇到了一个非常有趣的运行时错误,它会产生一个流氓堆栈溢出.

我已经定义了如下结构:

public enum EnumDataType { Raspberry, Orange, Pear, Apple };

public class DataRequest
{
    public long DataSize 
    { 
        get { return 0; } 
        set { DataSize = value; } 
    }

    public EnumDataType DataType  
    { 
        get { return EnumDataType.Apple; } 
        set { DataType = value; } 
    }
}
Run Code Online (Sandbox Code Playgroud)

以下几行非常有效:

DataRequest request = new DataRequest();
request.DataSize = 60;
Run Code Online (Sandbox Code Playgroud)

但是,当我在代码中跳过以下行时,它会生成堆栈溢出:

request.DataType = EnumDataType.Raspberry;
Run Code Online (Sandbox Code Playgroud)

当然,我可以通过删除默认值或使用auto get/set来修复它,但我需要它既可读又可写,并返回默认值 - 任何想法?

c# stack-overflow

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