小编Mr_*_*s_D的帖子

Qt:从文本连接信号和插槽

当对象名称,信号和插槽都在文本文件中指定时,如何连接2个对象的信号和插槽?

获取正确的对象名称不是问题,因为我可以轻松地遍历数组并将名称与文件中的位置进行比较,但必须有某种方式可以从文件中返回信号和插槽并在connect函数中使用它,如:

connect(rtnObj1(line),SIGNAL(rtnSignal(line)),rtnObj2(line),SLOT(rtnSlot(line)));
Run Code Online (Sandbox Code Playgroud)

其中rtn函数返回对象名称/信号/槽,"line"是文件中的当前QString行.

我所知道的唯一方法是通过对每个组合进行字面编码并将QStrings与if语句进行比较,但这将是非常繁琐的,因为组合的数量将非常高.

注意: 这里有一个简单的例子证明基本上是这个问题如何存在.

第1帧:4个QComboBoxes.第一个和第三个保持对象名称,第二个保持信号,第四个保持槽.每个项目当然都是这些列表中的QString.点击按钮会在文件中添加一个新行,写入从每个框中选择的文本.

第2帧:已经拥有所需的对象.读取文件时,它会将列表中定义的对象与已创建的对象进行匹配,并在文件描述时将它们连接起来.

基于文件保存的数据创建对象很容易,但是如何从文件创建/拉出信号和插槽?

编辑: 除非,是否能够像这样连接?

connect(objectA, "", objectB, "");
Run Code Online (Sandbox Code Playgroud)

因为我发现我的代码会像那样编译,但每当我尝试插入插槽或信号名称时,我只会收到如下错误:

QObject :: connect:使用SIGNAL宏绑定Tile :: clicked

c++ qt signals signals-slots slot

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

使用3D坐标计算三点之间角度的python代码

我写下了一个代码,用三维坐标计算三点之间的角度.

import  numpy as np

a = np.array([32.49, -39.96,-3.86])

b = np.array([31.39, -39.28, -4.66])

c = np.array([31.14, -38.09,-4.49])

f = a-b # normalization of vectors
e = b-c # normalization of vectors

angle = dot(f, e) # calculates dot product 
print degrees(cos(angle))  # calculated angle in radians to degree 
Run Code Online (Sandbox Code Playgroud)

输出代码:

degree 33.4118214995
Run Code Online (Sandbox Code Playgroud)

但是当我使用其中一个软件来计算相同时,它会使输出位不同120度.请帮忙

参考我以前用来编写程序:

(如何计算蛋白质db文件中的键角?)

python math numpy

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

C++,Qt:包含外部库中名为"slots"的变量

我正在使用Qt编写包含外部库的桌面应用程序.问题是我在包含外部库时遇到错误:

.../sc_containers.h:667: error: expected unqualified-id before ';' token
   sc_array_t         *slots;
                            ^
Run Code Online (Sandbox Code Playgroud)

我成功地在包括非QT项目相同的库之前,所以我认为这个错误与Qt所使用的事实,slots作为一个特殊的关键字(见这里 Qt的文档).

有没有办法可以在我的程序中使用该外部库?由于这不是我自己的库,因此将变量名称更改为其他名称并不是一种选择.

提前致谢!

c++ qt slot qt5

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

如何使用TensorFlow tf.train.string_input_producer生成多个epochs数据?

当我想用于tf.train.string_input_producer加载2个时期的数据时,我使用了

filename_queue = tf.train.string_input_producer(filenames=['data.csv'], num_epochs=2, shuffle=True)

col1_batch, col2_batch, col3_batch = tf.train.shuffle_batch([col1, col2, col3], batch_size=batch_size, capacity=capacity,\min_after_dequeue=min_after_dequeue, allow_smaller_final_batch=True)
Run Code Online (Sandbox Code Playgroud)

但后来我发现这个操作并没有产生我想要的东西.

它只能生成每个样品data.csv2次,但生成的顺序不清楚.例如,3行数据data.csv

[[1]
[2]
[3]]
Run Code Online (Sandbox Code Playgroud)

它会产生(每个样品只出现2次,但顺序是可选的)

[1]
[1]
[3]
[2]
[2]
[3]
Run Code Online (Sandbox Code Playgroud)

但我想要的是(每个时代都是分开的,在每个时代都是洗牌)

(epoch 1:)
[1]
[2]
[3]
(epoch 2:)
[1]
[3]
[2]
Run Code Online (Sandbox Code Playgroud)

另外,如何知道1个纪元何时完成?有一些标志变量吗?谢谢!

我的代码在这里.

import tensorflow as tf

def read_my_file_format(filename_queue):
    reader = tf.TextLineReader()
    key, value = reader.read(filename_queue)
    record_defaults = [['1'], ['1'], ['1']]  
    col1, col2, col3 = tf.decode_csv(value, record_defaults=record_defaults, field_delim='-')
    # col1 = list(map(int, col1.split(',')))
    # col2 = list(map(int, …
Run Code Online (Sandbox Code Playgroud)

python neural-network tensorflow

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

为什么 Pycharm 不能运行具有相对导入的代码?

我的包结构:

root_pkg
root_pkg/__init__.py # empty
root_pkg/game
root_pkg/game/__init__.py # empty
root_pkg/game/game1.py
root_pkg/utils
root_pkg/utils/__init__.py # empty
root_pkg/utils/lib.py
Run Code Online (Sandbox Code Playgroud)

root_pkg/game/game1.py 包含:

"""File root_pkg/game/game1.py"""

from ..utils import lib
Run Code Online (Sandbox Code Playgroud)

不会发出任何错误

然而,在 pycharm 中运行它:

C:\_\Python363-64\python.exe C:/Dropbox/eclipse_workspaces/python/test_imports/root_pkg/game/game1.py
Traceback (most recent call last):
  File "C:/Dropbox/eclipse_workspaces/python/test_imports/root_pkg/game/game1.py", line 3, in <module>
    from ..utils import lib
ValueError: attempted relative import beyond top-level package

Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)

但是,内容和源路径被添加到运行配置中的 python 路径:

在此处输入图片说明

那么为什么 Pycharm 不能运行这个呢?它不应该将项目文件夹添加到 PYTHONPATH 吗?使用正确的导入样式吗?

编辑:更改运行配置中的工作目录会C:\Dropbox\eclipse_workspaces\python\test_imports\导致相同的错误:

C:\_\Python363-64\python.exe C:/Dropbox/eclipse_workspaces/python/test_imports/root_pkg/game/game1.py
Traceback (most recent call last):
  File "C:/Dropbox/eclipse_workspaces/python/test_imports/root_pkg/game/game1.py", line 3, …
Run Code Online (Sandbox Code Playgroud)

python python-import pycharm python-3.x relative-import

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

Pandas 对数据框中不同的多列进行计数并按多列进行分组

我找到了答案 test2 = test_pd.groupby(by = ['ID'])['country','color'].nunique().reset_index()

我不知道当拉斐尔提供的链接没有回答问题时,为什么这个问题被标记为重复

我有一个包含 3 列的数据框:

   country    color    ID 
0  Germany    Red      12     
1  France     Red      13
2  US         Blue     11
3  France     Red      11
Run Code Online (Sandbox Code Playgroud)

如果我想找出 SQL 中每个 ID 的不同国家/地区和颜色的数量,那就是

select  ID
  , count(distinct(country)) as num_countries
  , count(distinct(color)) as num_color
from table_name
group by ID;
Run Code Online (Sandbox Code Playgroud)

结果看起来像这样

select  ID
  , count(distinct(country)) as num_countries
  , count(distinct(color)) as num_color
from table_name
group by ID;
Run Code Online (Sandbox Code Playgroud)

如何在 Pandas 中获得相同的结果?

python pandas pandas-groupby

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

文件上传:要保存的文件名称应该是什么?

我将把文件上传控件添加到我的ASP.NET 2.0网页,以便用户可以上传文件.文件将存储在服务器中,文件名为用户名.我想知道保存到服务器时命名文件的最佳选项是什么.需要考虑安全性,性能,灵活性来处理文件等.如果我错过任何内容,请指导我

我正在考虑的选项:

  1. 使用与输入文件名相同的名称上载
  2. 添加用户ID +随机数+文件名作为输入文件名
  3. 以秒为单位创建随机数+当前时间并使用该数字保存文件.将有一个表来映射此号码与用户上传

还要别的吗?什么是最好的方法?

提前致谢

asp.net file-upload

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

c ++按引用传递:错误:没有匹配的调用函数

我有这个代码:

bool Port::add_app_from_wlist(App* a){
 stringstream namesurn;
 string name, surname;
 namesurn << a->get_name();
 namesurn >> name >> surname;
 return add_application(a->get_id(),name,surname,a->arrived_at_port_by(),a->arrived_by(),a->is_luxury_class());
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

air_classes.cpp:153:错误:没有匹配函数来调用`Port :: add_application(int,std :: string&,std :: string&,time_t,time_t,bool)'

air_classes.cpp:98:注意:候选者是:bool Port :: add_application(int,std :: string,std :: string,std :: string,time_t,time_t,bool)

我不明白这个字符串来自哪里错误 - 也不知道如何修改它 - 请帮忙.

c++ string compiler-errors parameter-passing

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

带有静态初始化程序的java嵌套类

正在读一本名为Emergent Design的书,关于单身人士的话题......

public class MyApp {
 private class SingletonHolder {
  public Object singleton; 
  static {
   singleton = new Object(); 
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

然后eclipse一直抱怨静态{}

正在阅读Java,类应该能够拥有多个静态初始化器.那么我怎样才能完成上述工作呢?


/tmp/jc_4873/MyApp.java:5: non-static variable singleton cannot be referenced from a static context
   singleton = new Object(); 
   ^
/tmp/jc_4873/MyApp.java:4: inner classes cannot have static declarations
  static {
  ^
2 errors
Run Code Online (Sandbox Code Playgroud)
public class MyApp {
 private class SingletonHolder {
  public static Object singleton; 
  static {
   singleton = new Object(); 
  }
 }
}

/tmp/jc_8488/MyApp.java:3: inner classes cannot have static declarations …
Run Code Online (Sandbox Code Playgroud)

java static initialization

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

Android - 在用户访问PreferenceActivity后确定Preference是否已更改

我正在做一个相当基本的游戏.在我的偏好中,可以选择更改难度设置.我希望能够以某种方式,在调用它的主要活动中,感觉他们是否已经改变了难度.(然后重启游戏)

由于异步处理偏好活动的方式,我遇到了困难.如果我在将意图发送到PreferenceActivity之前和之后添加逻辑来检查值(从菜单选择中),它确实不起作用......

有人能指出我如何序列化通常异步处理的一大块代码,或者知道如何改变偏好的想法?某个地方是否隐藏了一个监听器类?

为了后人的缘故,这里是处理意图的代码以及我如何失败.(片段,从内部菜单onOptionsItemSelected,在开关内)

case R.id.menuOptions:
    String currentDifficulty = preferences.getString("difficulty","problem!");
    Intent i = new Intent(this, prefs.class);
    startActivity(i);
    if (currentDifficulty.equals(preferences.getString("difficulty","problem!")))
        return true;
    else doNewGame();
    return true;
Run Code Online (Sandbox Code Playgroud)

android asynchronous preferenceactivity

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